Morning, guys. Can everyone hear me in the back? Okay. So my name is Magna Logan. I'm gonna be your host for the rest of the day, just introducing the speakers here. It's an honor to be here and be volunteering and helping this village. So yeah, without further ado, I'd like to introduce Yangyang Wang. She's a cloud security architect leading implementation of security tests at high trust. She has led integration security into various CICD pipelines and created successful security programs and culture. And she's going to be talking about automated pain testing in dockerized CICD environments. Give her a round of applause. Thank you. Good morning. Thanks for coming. And I hope you're happy by the end of the presentation. So today's topic is about automation, automating dynamic application security testing in CICD pipelines. So before I start, how many people are actually very familiar with the CICD pipelines? Okay. How many people here are security professional? Okay. I see some overlapping here. All right. That's good. So before I start, I wanted to say that I'm here on my personal capacity. And what I say, what I express in this presentation does not represent my organization. So the outline of the presentation is that, well, you know, in the me and I age, I have to introduce myself, obviously. And then I'm gonna briefly talk about the CICD pipelines because I know some people probably are not I mean, probably know something or not a lot or some people don't know. So I'm just going to cover it quickly. And then I'm going to talk about some characteristics of CICD that's relevant to pain testing. And then I'm going to talk about the reasons of this project, which is the challenges that I encountered, trying to automate the dynamic testing or dust in CICD environment. And then I'm going to introduce the approach that we did and then how we integrated with the Selenium test to make it even more awesome. So who I am? I'm a cloud application security architect. And so it's a month full, I know. And it means a lot of different things to different organizations. But I live in San Francisco in Bay Area. I think generally architect, particularly in startups, it means you do everything, really. So I want to talk about the CICD. So CICD stands for Continuous Integration, which means you commit your code multiple times a day into a centralized repo that is shared with your team. And then continuous delivery, that's what CD stands for. That just means every code should be releaseable and that you can deploy a code on the push of a button. And the pipeline means from the automation of the entire process, starting from when developers commit their code and then build tests and deployment. All of this is automated, meaning everything is powered by code. There is no physical environment that you have to deal with anymore. So why does it matter? So I wanted to just compare what software integration is before the CI and what software delivery is before continuous delivery. And so that way it will be clear why the existing tools, the pen testing tools are not suitable for the environment. So before continuous integration, when engineers write their code on their own and they test in their own local environment and then they integrate. Sometimes it's a week, sometimes it's a month, and then that big bang happens and things will fail in avoidability.  And I don't know how many of you are actually in the ICD environment, but if you're not in this environment, it's pretty hard. And if you are, it's still hard, but slightly easier. So when continuous integration comes and engineers have controls of almost everything, they write code, they write the tests and all the tests are automated happening as they're writing the code, merge the code, and then the build happens right there after they merge the code automatically. And so it's all together. By the time the codes get to integration stage, the test will happen automatically too. And if there is any issue against the commit fails and they have to fix issues, whatever that is. And then for software delivery, before the continuous delivery, and you have to have someone to do the test after integration, and you have to have a team to do the deployment. And obviously there are human interactions there to get it to make it happen. And with continuous delivery, and it's same thing when engineers commit their code or the test or the release test deployment test, they all happen there. And so theoretically when you have, when your code is done, it's committed and it's merged into the master branch. And sometimes it's even in local branch and your code is, everything is okay. It's ready to be deployed supposedly. However, when it comes to implementation, there are shades of grade obviously. And most of the time, there is still some kind of human interaction for deployment. It really depends on the company. So this is something I found online from Instagram, Instagram website. I don't work for Instagram. And that's just to illustrate how fast things are moving today. And they deploy their back end the code 30 to 50 times a day. And oftentimes most of the time it was no human interaction at all. And what they're saying is that their engineering moves fast. So that's one of the key words for CI-CD fast. And then make it easier to find your bad commits and fix them. So that's another keyword too, then particularly in the sense of finding your security box. Well, I will come to it later. So I just touched the characteristics of CI-CD pipelines in terms of dust testing. I haven't explained what dust is. And I assume most people here already know. And if you don't know, can you raise your hand? Okay. So dynamic application security testing basically means you have to have a running app. And then you either manually or use a tool or both to point it to your running app and look for security vulnerabilities. So anyway, the characteristics that's relevant to automate your dust is the build are repeatable and deterministic. And then also that everything is automated on all the release, all the testing, testing, different testing. And also they're really fast. So the reason that's relevant is because when the build is, when the entire process is repeatable and deterministic, obviously, if you think about it, if you can automate your security testing here, then you have a repeatable and deterministic way to do that as well. So that's why it's relevant here. And then that's automated. That means, you know how oftentimes security teams would chase after the engineering team. And oftentimes it would say, that's deployed, I don't know. Oh, that's what happens. No one told me. I mean, every one of you said that.  I've been in this field long enough, I know. So if you think about the automation and it's deterministic, then that means you can automate your security steps and do the same thing, which is a plus sign. And that to me, it's a good thing. And then also testing environment, in the past, you have to set up an environment specifically for testing. And you have to wait for people to tell you which was going to be released, and you're going to deploy into the testing environment, and you're going to test. None of them is necessary anymore for CICD pipeline. So challenges. If you look at the existing DAS tools, oftentimes it needs some kind of human interactions. They want you to put a URL in there. They want you to put the credential in there. They want you to put parameters there, what to exclude, what to include this and that. It almost seems like it's even worse to automate that because some tools does offer API tools to let you automate that. But it's just like this still involves a lot of human steps. And then also, this is irrelevant if you're running in a containerized environment, you have to have a running app. And I'll touch that later a little more. And also oftentimes with the existing DAS tools, you have to have a separate reporting system where someone else, where whoever is doing the test, have to log into the UI, find the vulnerabilities, and generally you create a Jira ticket or some other system, whatever. You know, if you wanted to make an engineer do that, you know what they're saying because I haven't taught that. I have too many tools to run. I don't want to log into another tool. So if you think about all the CICD and the state and the state of the DAS tool, you would be thinking about panicking, what do I do? Because it's a black box. Code gets into the pipeline and production website comes out of that pipeline. So fear not. So what we can do is unpack one of this CICD pipeline, one of the processes from beginning to end. So oftentimes you would always have SCM, let it be GitHub, GitHub, whatever you're using. And then you always have to have some kind of built testing. And in CICD environment, it's automated. But most of the time, built testing are automated to some degree today anyway. And then you generally have some kind of integration test. And then in a very automated environment, the built test and integration tests are usually combined. And then you have production. So built server, what is the built server? It's nothing but a server that you can do anything in it, run anything in it. So awesome. You can run any kind of security testing there too. And then so that means you have two places. It depends on your environment. You may have one or two places that you can do security testing. And that's during built tests or integration tests. So with that knowledge and the knowledge of, well, with that knowledge, so I know my requirements for a Duster tool is that this tool needs to be completely automated. And no matter which environment I'm testing, I have to be able to integrate it easily. And then it should produce a report within the CICD pipelines, whichever tool that you're using. And then it should be relatively fast because fast is one of the characteristics of CICD pipelines. And it needs to be scalable. So before I get into the details of how we implemented it, I want to talk about a little bit of container images or containers, just in case that any one of you are not familiar with it. Container, basically, think about the OS in the old time. Basically, everything, you have everything in code of that OS. So it's lightweight, standalone, executable, package of software that includes your code library and configurations, everything you need. So no matter where you have this container, you just start it and run it. So that's the idea. And then with container, oftentimes, companies would do orchestration, meaning manage the life cycle of the container. So you can think about that, I say, abstraction of network layer. So you know how you have to set up, you used to have to work with the DevOps engineers to set up the environment and the network interface or how the servers talk to each other, how the servers can be accessed internally, all of those can be taken care of, can be taken care by orchestration layer. And that's code as well. So that's what I was trying to say. There's no physical servers anymore. Everything's code. I know those of you who were here for the last presentation and Jim talked about how he thinks serverless is the future and then dockerization and orchestration is going to die. Well, I don't know if it's going to die in the future. I know that's what's happening right now where I am. I live in San Francisco and in the area, containerization is huge. So this is just some statistics I found on Datadog. So this was, this data was like March last year and they were saying docker runs on 20% of all the servers they monitor. And then there was a 75% increase of using docker. It's like March the year prior to that. So you can imagine it's a lot more now. Actually where I am, it feels like it's 100%. I mean, I'm biased stats obviously. And also another thing to be noticed is when companies use orchestration, servers goes up and down all the time. That's another challenge for dust testing, obviously. So now I know what we want from a dust tour in dust environment. I know where we can integrate it. And I start looking for tools. And I know I want to dockerize the solution because that's what works best for us. And then I know there's a plus thing. I mean, it's a nice to have thing which is integrated with the Selenium test automation. And because when you integrate with the Selenium test, then you test exactly what's released, no more, no less. And that's, to me, that's a somewhat important in CICD pipelines because we start the tour often time. You have to crawl the entire website and you have to test them more than what you need to. And obviously that slows down the tests. So, and then you wanted the resort to be available in the engineering CICD pipeline. To me, it's Jenkins UI. And then the tour should find meaningful vulnerabilities out of the box. So that leave me with two choices, zap and burp. And so there's an existing darker image and it's well maintained with a zap image and it's well maintained by OSP. But the findings are kind of limited. And so I looked into burp and there is some kind of open source, the darker images, but usually it's only suitable for interactive use. It's not for automation. And so what that makes me think that I can automate it with the headless, headless extension anyway. And the important thing is burp out of box produces a lot of meaningful findings. And to me that is important.  I don't want to just check another box and that's not what I'm here for. So burp, I know you can integrate with the Selenium test. And zap, I looked for information, I didn't find any, so I'm not sure. And adding that, I think the findings was insufficient, so I decided to go with burp. So here's, I guess it's unfortunate for now. I got this acceptance for the talk like two, three weeks ago. I didn't have enough time to work with my organization to open source it. But we're working on that. I work in a highly regulated environment. We have, we have HEPA data. It's very restrictive. So I have to go through a lot of hoops to get it open source, but I'm getting there. So with that being said, I can talk to you on what I did, but I won't be able to show you the source code. Not today. So headless burp extension, if you haven't used it, it's a command line interface that you can use with burp suite and then it's usually used for automation. And one of the, another, some of the good things that when you actually integrate with the Selenium tests is beyond the test, exactly what you release no more or less. And you can pass the URL and you can pass the TLS cert wall and credentials. Pass.   So they have that part set up and you set up burp to listen to the Selenium traffic and it's passive listen. It captures all the credentials, URLs, and then the search is set up from QAs ID. You don't have to worry about anything. And imagine if you were going to actually deal with any other. Those are the things you have to do manually. So integration with the Selenium helps tremendously when it comes to automation. And then with the headless burp, it also produces JUnit and HTML reports and also I might integrate that with Jenkins UI. And also the headless burp has a feature that you can tune the fast positive off and that will just produce actionable findings. So the steps of Dockerize headless burp is this, that's what I did. And there are about like four, five different open source burp dog images on GitHub. You can find them but this particular one I found it most useful. If you follow this guy's interaction, you will get to the UI phase. And then after you have the dog image created locally, then you have to build the proxy and scanner, the headless burp proxy and scanner. And then copy that into the dog image you have. Sounds straightforward enough, right?  Hopefully you don't have to do it. Actually, if you knew exactly what I'm talking about here, your speed of Dockerizing headless burp is going to be a lot shorter than mine. And so basically the only way to active burp license is through the UI. There is no other way. And then use Docker volume option to persist your data, whatever you need to persist. And then this reference is actually from Burp Suite.  And so if you have questions, I suggest you to go there, check it out there, and you will find some valuable information. And then you have to build the headless proxy and scanner because the app in the Burp B app does not work. It didn't work with me. I don't know why. And so I built it myself and it worked. So another thing is if you want your Burp to work with Selenium, you have to set the listening mode to all interface because you have to listen externally versus internally. And then, yeah, I can't stress enough. And so I followed the disguises in instruction and then I forgot to restart my computer and it didn't work. And I stuck it and I was like, what's going on? And I had to post the issue on his GitHub repo. And turns out I just need to restart my computer. I just read the instructions more carefully. Problem solved. So any questions about this? I think I'm using 1717 or 177, something like that. Yeah, the newest way I tested, it didn't work with the headless proxy and scanner, unfortunately. This is kind of a boring question, so I apologize guys. How does the licensing model for Burp work for if you're spending on multiple Docker containers? Yeah, I think that's the question you should talk to Portzweiger. I practiced like a hundred times. So the Docker license is different than the Burp suite for a license. You need a separate license for Docker version? I checked online. I don't think they have that model right now. So if I have a Burp suite for a license, I can get the help check. Yeah, so yeah, license question, you should all talk to the company because I have no idea how they do it. The reason I don't know either yet, I'm going to talk about it in a bit. So once you have a Docker and if you work in a company, you're doing this project for your company and this is the time you hand the Docker repo to your DevOps guy and then tell them what you want and the magic will happen. So basically that's what happened to me. And so what happened is I checked in the Docker image and it immediately tricked a build in our build server and then the image got pushed to our image registry. And then the rest I pure seeded out and worked with a QA team and we tested it out with Selenium and everything worked out like much better than I thought. I can't complain really. I thought it was better than I ever asked. So unfortunately, like I said, I'm here on my personal capacity. I couldn't show you live demo. There's no way I'm going to show live demo in DevCon anyway. But I recorded my screens to go through the entire process in this image to just give you an idea of what happened and what the end result is. So before I move on to that demo, I just want to talk about it. So we actually integrated with the integration tests and so we haven't done for like all the engineers when they run their tests that we haven't done there yet because right now we have other issues to solve before we can move there. So that's another reason I didn't know. So okay, I'm going to do the demo. Oh, I guess it's going to go through very fast. I can pause it looks like. So this is a, I'm showing you, I'm just trying to show that I made changes to the Git repo. And it's going to show up and will trigger a CICD, will trigger a build in the CI server. So I made changes in the README file and then I had to commit it. So now the code is committed, Git push made it happen. So I'm going to refresh the page and this wasn't there, the DevCon demo online wasn't there and now it's there.  So those are the steps that happened. I wish I could pause it. Maybe I could, yeah. So those are the steps that happened after the build was triggered. So I think this is okay to talk about it. We actually use the SoCoCI. And in SoCoCI they spin up a Docker image, they set up the environment, they do whatever task you ask it to do. So in this case build the Docker image, inner Docker image and then it pushed the image to our image registry. So this is where the integration happens in our environment. We're still trying to move it into one environment but suffice it to say once it gets into integration environment it triggered a burp proxy. It started it up. All of this is automated. No one did and I mean no humans is doing anything behind. Go ahead. You committed to your own branch. I mean it depends on how your organization is set up but unless you're doing it yourself I would imagine you have to have your own branch. So I had my own branch and it got pushed to the master because that yeah Exactly. Everything is done and I'm finished working on this project. I'm sure they will be maintenance but right now it's pretty much done. So that's why I was committed to master. So this test took 23 minutes. It's relatively long but I also had a test that took about five minutes. So this is another thing to be considered when you want to do integration. How long it takes to actually do the test for your environment. If it's too long you probably won't be able to integrate with the development pipeline. So that's what happened in Jenkins. All the reports was generated and then they will actually post it into Jenkins and then there is a stack message sent to me so I know that a report is done because it's still kind of early for me. I'm still manually tuning the tool so that way I can feel comfortable handed it to everyone. Just say hey go ahead and take it and everything's okay. There's very few fast positive because with all the security testing tool I mean I'm sure you all know it always has the fast positive and then a lot of things is environmental we have to tune them off. Then we haven't done it yet because like I said I don't feel 100% comfortable that I can just feel built yet because I haven't finished tuning the reports yet like the fast positive. Good question so right now it's an integration test it's the UI. It's actually powered by the Selenium test. So I have thought about the UI. I thought that I can probably integrate it with a REST API tool. That's my next step. Oh and so you see that the step here published HTML report so once this gets done it produces a report. So when the report is produced and in Jenkins you can actually post the using code to post it into the UI. Actually it's not webhook. We use I don't know if I can talk about our environment yeah but we use a specific kind of way to post the things in Jenkins but it's code it's not webhote. It's customer code. It's not that customer yeah you can find the sample code so I think that part I should be able to open source it once I go through all the hook and I'll post the sample code online you should be able to see it and you can just use it. Yeah yeah that's the idea. Yeah you know it's a QA tool it does all the function tests for the particular feature you're going to release and Burp it just out of box. I didn't do anything special. I haven't started tuning it yet but I'm curious to see what I can find once I start tuning it. So theoretically you could replace Burp with a commercial availability list. That's what I'm thinking. Yeah that's what I think I hope the commercial tours if there are any representatives here they're listening.  Yeah so so I can see that on so I did the integration phase so it's a little bit later already and usually QA that's QA's group and usually they're tested take an hour to anyway so they don't mind but I know what you're saying so what I was just thinking is to make it happen we see the depth environment I might try I might try out this app that's what I was thinking for what I'm going to do next. Like remember the engineers develop their code and then they trigger the build and it goes through all kinds of tests sometimes coverage and quality tests all of those you can add zap there that's my next step. Yeah if the test or if the code is the same the findings are the same no difference at all it works pretty well. Yeah so that's the part of where I said it works pretty amazingly when you use the Selenium. Initially I thought I have to set up a verb but it turns out none of those it's necessary because the Selenium has to handle the credential itself and once it locks in the tokens get carried out in the subsequent requests so there you have it you don't have to deal with the credentials. Yes all right no problem so that's the report out of box that's the findings I have I would say it's pretty good and for how cheap a verb suite is I really can't complain so yeah and that's the end of the presentation any any other questions. Yeah so with headless verb that's the part where I was hoping that there does the representatives here that they can come up with the commercial tool you have there's a configuration file you can add specific findings there as a filter but you have to do it manually you can do it but it's kind of there's a lot of work that's finding type yeah unfortunately so right yeah yeah have you given any consideration to figuring out a way just to test what's changed to make it even faster? You mean when you said test do you mean in the CI server? Well when you run the verb task kind of thing oh you could think your verb so say it knows from a manifest or something you know that it's five changes ended up with so so I okay so I know where the confusion comes from so the committing part and then trigger a test in CI and commit the and then push the image to image registry that's for the test is not for verb I use that I put the image down so if I show you this diagram what I did is I commit the code that triggered this entire process and then the image got pushed here and this part doesn't have anything to do with how I create the verb image anymore yeah I just put the image what do you mean when you say it doesn't know how so like you know man that's not correct but when you're testing on the death side does it know anything about that? Yeah well so in this step update deployment if you're using some kind of orchestration orchestration yeah the orchestration actually sends a request to your environment so if you're in a Kubernetes environment Kubernetes receives the request and it updates your environment by pulling the newest image to here so if you make changes and another environment that's using the image it will get updated but we don't have to worry about it because all those are set up via the orchestration yeah yeah yeah the infrastructure team infrastructure code takes care of it yeah yeah only if there are changes to the verb suite image that I made it will the information will get updated via the update deployment part like the orchestration part takes care of that to pull the new image and know when to pull new image it only pulls the new image if there are changes if there's no changes obviously it doesn't pull new images yes but um so what my username is pink gladiator on github actually none of us once it's set up it's none of us does anything so selenium sends all the requests to the web website you're testing and verb proxy passively listens and record all the traffic and then take the information the data that it recorded from verb proxy and then and then I when that's done when selenium test is done I kill um verb proxy set up a verb scanner to scan the information I just collected from selenium the app inside the container you could test whether you can break out of the container or whether you can achieve root ownership of the container which of those three did you test um this is a test a application outside of the container so they basically it's nothing fancy I didn't try to to you're saying if I tried to escape the privilege to get the root privilege yeah none of those yeah we have hack one for that we have okay sure yeah those things and you can't find them via this kind of automated testing yeah it's a lot more complicated yeah yeah that needs human involvement that's why we always have jobs yeah I think that's that's it my time's up thank you


This is hands down my favorite lunch. I mean, how could you not be nourished from this huge bowl? Yeah, I mean, how could you not, right? All right guys, welcome back to the channel. If you're new, my name's Bobby. Guys, today we're going to react again to Hitomi, Hitomi Mochizuki with her video, What I Eat in a Day to Feel Fully Nourished, Delicious and Vegan. We all know it is impossible to be fully nourished on a vegan diet because a vegan diet is deficient in plenty of fat soluble vitamins and many other amino acids as well. Therefore, it is said to see that Hitomi is still under the vegan spell and is still torturing herself. A young girl in her prime simply malnourishing herself and telling herself that a vegan diet is healthy. Let's have a look. Why? Why people? Why did it become the norm to show yourself in underwear for everybody to see? A little bit more self-respect, please. More dignity. Hello. Okay, looks very nutritious. Such a chill morning. It's a Sunday. Okay, so she got out of bed, took her camera, put her in the bed, got back into bed, covered herself and acts as if she's waking up. Which really excites me because I don't have any plans today. I literally just want to spend the day reading, going for a walk or three, catching up on text messages.  I might walk around and fall in love. I might walk around and feel enough. I guess I'm just too old. For breakfast, I'm starting out with one of my favorite fall fruits in upstate New York. Apples. Three apples. Okay, cute music, very nostalgic, beautiful, but the point of the story is that this won't nourish you. This is junk food. Quite simple. You have puff pastry, super unhealthy, a bunch of gluten in there and you have more sugar in the middle, aka the apple. We all know that apples nowadays are bred to contain more sugar. You would never find such an apple in a natural environment. Wild apples are usually this small and very, very sour, actually not enjoyable at all. So you simply consume carbs for breakfast. You have zero protein. And after I was done assembling, I placed them in the oven at 350 degrees for about 350 degrees. Actually, at 100 degrees already, you would destroy all the vitamin C that is in the apples. Therefore, you're left just with sugar. 12 minutes. I recommend keeping an eye on them because puff pastry cooks really fast. Okay. That is so good. Let me just share an anecdote with you really quickly. And as you can see here, her skin is getting worse every video that comes through excessive sugar and hormonal disruption, of course. I would stop by this orchard usually after every game with my dad called Salinger's Orchard in Brewster, New York. I'm just tapping into that timeline really quick because that was always my favorite thing after the games. And this is just warm and flaky and it's like an unbeatable experience. Unbeatable. I'm sure. I'm really astonished that people feel no shame at all. I mean, look at this. She shows her cleavage. Here she shows her butt. Why? I guess for clicks. But is it worth it? To sell your soul for clicks? More nourishing food. Fantastic. What is that? Burnt tempeh? This is hands down my favorite lunch. I mean, how could you not be nourished from this huge bowl? Yeah, I mean, how could you not, right? Yeah. Well, all you have here is a bit of plant oils in the avocado.   Again, you have no vitamin A, vitamin D3. You don't even have vitamin K2 in this or any creatin cholesterol or any really bioavailable protein. Greens. It's really good to eat a diversity of vegetables that helps to diversify your gut microbiome and also to eat colorful. The vegans are obsessed with their gut microbiome because they're farting all day and they're running to the toilet. That's pretty much it. Your digestion is a mess and that is not due to you. Don't feel ashamed.   Not this much.  Well, food. So, we got some kale in here. Kale is super toxic. Not even sheep would eat it. Bobby is repeating himself. I love broccolini so much. This I just cooked with lemon, liquid aminos, garlic and onion powder. That's how much you love it. You have to pour all kinds of things on it. This is how amazing it tastes. Man, don't you get it? If you would eat some sashimi, just salmon, just tuna, shark, you wouldn't need any condiments because it tastes amazing. Your body recognizes it. And it is so well balanced. That is my favorite way to cook and saute vegetables. She's just lying to herself. I also love sauteing kale with that little combo. I roasted some tempeh just with coconut minos. I like it kind of crispy and the coconut minos really do a lot. I have some cabbage and beet, little kraut here, cucumber, avo, and of course my kaboka squash. She could be so pretty if she would start introducing some eggs, some fish. She's one of my favorite fall vegetables. Kaboka squash. I feel like my ancestors ate this a lot. I love the flavor. Yes, that's what your ancestors ate a lot. So well. Just not my favorite. I think I like it more than potatoes, which is saying a lot for me. But yeah, this is my lunch and I'm so excited.  Also put a little bit of garlic powder in here as well. I really love a good well combined salad. I also love a good balance of every meal having good amount of healthy fats, a good amount of protein. But you don't have a good amount of protein and you don't have a good amount of healthy fats.  You're under the spell. In some vitamins from the greens, a little bit of probiotics. And again, little side note, this video is not against you. I'm never making videos against somebody. I'm not a bully even though I look like that. I know beard and bold. I'm just here to help from something fermented. That feels really balanced to me, as well as having cooling. It feels really balanced to you because you're completely detached of your human nature. Try some sushi and see how you feel them and warming food. And my body has been responding to it so so well. My body has just been like really happy like so happy right now. And I'm really grateful for me eating stuff like this really helps as well as eating some carbs every single day. Like some really good as well. Some carbs or bread as if that is not what they eat all day because it's actually not the best just to eat greens all day long. I mean, with my digestion, no, we need something dense to hold it all together. So yeah, exactly. There you go. So she just admitted that her digestion is an absolute mess. Therefore she eats bread because bread is binding. It covers for your bad digestion. That's all. Potatoes are definitely that for me. But I usually have one big bowl filled with veggies every single day and then one meal that has more carbs in it. And that really, really works for me. But everyone's body is unique. So keep on listening to your internal landscape and try not to get used to a body that is tired, lethargic, your internal landscape or having brain fog. You know, these are all I feel like our body trying to communicate something to us. Sometimes I like to ask myself what areas of my life have I adapted to that actually aren't good for me that aren't serving me that maybe veganism just got an idea with existing and you know what paradigms or ways of being are actually toxic to me. But they just haven't like gotten to that with how about those plants, especially the kale, which is literally toxic yet for dinner. I made another staple go to recipe. It's a mix of quinoa, corn, black beans, kabocha squash, garlic, onion powder and chili spices all mixed together. You can even add curry spices and you don't have to use squash for this. You can use sweet potato. Look at this.  This is a lectin ball. Beans have the highest content of anti nutrients. They will tell you well, the nutrition content goes down as well when you cook them. What? Bro, what are you talking about, man?  You're simply eating carbs and fiber. Yet again, this is pig food, not an insult. This is really pig food. I'm from the Balkans. This is what we feed two pigs.  And mix that all together. I also added in some oats to stick everything together and I just formed some veggie burgers. This is such easy meal prep to have in your freezer. I'm currently sauteing some onions. Watching those videos, I always get the urge just to take them by the hand and cook a steak for them. A potato bun and I also made some steak fries. I think that's what these kinds of fries are called. I just wanted to have a nice dinner. I wanted to have a nice meal. I heated up one of the veggie burgers and I feel like when I cook for myself, I'm just making love to myself in a different way and showing myself so much respect and sweetness. What are you talking about? Honestly, how are you showing love and sweetness to yourself? You seem very alone, by the way. Wouldn't it be much more loving to give your body all the nutrients it needs? Look it up. It is very, very simple to find out. Simply look up which nutrients you're lacking on a vegan diet. Please don't get duped into the propaganda when they tell you, plants have vitamin A. They don't have vitamin A. They have beta carotene. Beta carotene needs to be converted in your body. It doesn't always work. Omega three doesn't work either in all people. ALA has to be converted into DHA, EPA, etc. B12 non-existent creatin non-existent cholesterol bad cholesterol non-existent. Simply look into it. If you love yourself, you would eat meat. Bring one of these to my friend just because feeding other people that I love makes me literally so happy. Yes, this is human nature and I feel the same way about you. I want to feed you a delicious potato bun and some wedge fries. This is such a good dinner. I want to see I cooked this burger in the oven for I think about 25 minutes at 350. I have absolutely no idea. I just monitor the way it looks and when it starts to get a little bit brown on either side, I take it out. But I do want to manage your expectations. As I said, those plants don't have any fat, first and foremost.  Most plants just come with a little bit of vitamin C and a bunch of other nutrients that are then destroyed within the cooking process because in order to make those plants somewhat enjoyable, you need to grind them up. You need to process them. You need to super overheat them until you can eat them. If you have a regular burger patty, you can simply flip it from side to side. One to two minutes each is usually enough. Leave the middle nice and raw and keep all the B vitamins preserved. You don't even have those B vitamins in your plants and you cook them down to a goo where nothing is left. This is not nourishing. This is obviously going to be a super meaty burger that's easily held together like a kind of mushy. I personally like that. I like a burger that will mush into the bun a little bit and that's what this is and it does have a really good texture. You want a regular burger? Sure and just feel like it just tastes really good especially with those seasonings in it. I think it tastes great with guac. The dilution is so huge man. You woke up with Apfelstrudel and now you're eating a burger. How is that healthy? So great. Fantastic. One of my favorites. Get some tea. Why an underwear again? Which is really random. I try to eat a few carrots a day for those vitamins. Again you've been told that the carrots have vitamin A. They don't. They only have beta carotene. How much do you absorb? He told me. He told me. He's really craving these. Leah's here and we are eating none other than a macro bowl and this one has buffalo tempeh and just roasted sweet potato and broccoli so you can literally put anything in your macro bowls. Yeah you can put literally anything into it and this is what you did. You literally put in anything and this is what you get out of it. Nothing. The only protein that you consumed until now is a little bit of soy protein, a little bit of bean protein. The whole day maybe has 30 grams of protein.   The key thing is that you need a good spot. Yeah that's the key thing because your food tastes absolutely repulsive and disgusting. A good steak, a good sashimi, a good tartare doesn't need anything. That's what we got going on. I can't wait to eat it. It looks so good. Let's do it. Let's eat. Thank you so much. Thank you. Thank you.  I hope this food blesses our tummies. Food digest effortlessly. It's very interesting to see this whole new agey yoga thing that people keep up nowadays. They want to practice gratitude. They want to be thankful because that is healthy for their self-improvement. It's all about I, I, I, me, me, super ego driven. It all seems quite nice. We're just vegans but you're simply feeding your ego. You need a husband and you need meat. It is very, very simple. Aside from that praise and thanks can only be given to God. You can try to replicate it because it is your human nature. It is written in your heart. We all have it. We have the urge to worship God. You don't do that. So you worship your Buddha bowl and your friends. It's so good. I love you. What? I literally made myself a kale salad the other day and it was so sad. I just like massaged avocado into it and like it just didn't have any flavor. It is always terrible. You have to mask the real flavor of your plants with sauces. Vegans will say, oh well the sauce are made of plants as well. It's ridiculous. Those sauces are made from ground up seeds, vegetable oils. That oily consistency tries to replicate animal foods. This is why it seems tasty. However, it doesn't deliver any nutrition. I can't eat salad. It's just not for me. It's all about the sauce. Yeah. More of this. It's always super narcissistic, self obsessed portrayal has nothing to do with true humility or true self love. Those women have no love at all. They're empty. This is why they do this. It's beyond just food and to the conversations we're having, the people we surround ourselves with, the music and media we're consuming and I don't sully any bit of my desire to rest in the stillness no matter where I am or who I'm with. I always try to anchor in high quality nourishment in all forms and it's so sweet to practice with friends. So here's the quality nourishment in all forms.  That is the lowest form of nutrition. Now you're reading some new age mumbo jumbo with your friend in underwear. Yeah.  Right guys. And this is it. Long enough as it is. I think I gave sufficient commentary. I'm going to cut it off here. If you enjoyed this video, I'm always surprised how I make it through them. But well, if you enjoyed it, leave it a thumbs up. If you haven't subscribed already, guys, please do so. If you want to support this channel, all the links are in the description box below. Thank you so much for your support. And as always may God bless you all guys. Much love and peace.


Okay, this is James P. Madonna speaking from MegaLife21, the hardest-hitting internet talk radio station on the planet, as seen on the web. And I would like to show you my new Talancia Airplant from plantintheair.com. As seen on Twitter and Facebook, just look it up, plantintheair.com. This is the one I got from them, beautiful specimen. Okay, I think it's Junxi. I mean, I'm not good with the botanical names, but when I post this video on their Facebook page, they'll know what it is. Beautiful specimen. I got it online and here I use floral wire, green floral wire that I get at the dollar store. In this case, a chain of dollar stores on the east coast called the Dollar Tree. Can't be beat, only a buck. I make a little hook on one end. I wrap it around the airplane, the Talancia. And hook it right onto the cord, the blind cord. And then here I have a capoot of Medusa, head of Medusa, attached the same way with the floral wire, green floral wire. And then down the line, I think it's Palatia or something, I don't know. I tend to pick out the most unusual, far-out, alien-looking airplanes. This one, I think, well, this one is a tricolor melon crater, but a young one, small one. I haven't done anything with that with the wire. This one, I believe, is Streptophilus or something. See, all unusual Talancias. Alright, this one, of course, this is Ionanthafuago, a small specimen. Okay, not a big one. Ionanthafuago is supposed to get bright red. Okay, I have that in the seashell. These are from the Marathon Key Florid, and my sister and brother-in-law brought them back. They're typical, I'm not sure what species they are, but they are the typical airplanes that you see in gift shops when you go on vacation in the tropics of Florida. I'm trying to identify it, but they're the typical ones. And I soak them once per week in dechlorinated water for one hour only. That's it. And then I drain them upside down so they don't rot. You cannot allow water to be trapped in between the leaves. You must drain them like I'm doing right now. Okay, I know it looks like an octopus that had a Medusa, but yeah, you can't allow water to be trapped inside. And they need good ventilation and they must dry out completely between waterings. Well, some people missed the tilancy, it's three times a week. I never had luck with that. The soaking method works, but what I do is I don't just soak it in a bucket of water with synthetic fertilizer. I soak them in my aquarium where I have a large goldfish and the goldfish are relatively dirty fish and the water in the aquarium is rich in natural fertilizers, almost like using manure. I've been using this system for years using my aquarium water for all of my plants, even my herb garden outside. I've done it with veggies, I've done it with pepper plants, I've done it with tomato plants, whatever. And I've had great results. I read an article online about that and I've been doing it ever since. So anyway, thank you and I just wanted to share with you my unique air plant setup.


Hi, I'm Maya and welcome to my kitchen again. Today we're going to be making an asparagus torta. It's a great kid-friendly lunch that adults also love eating and it happens to be asparagus season but you can actually do this with any kind of vegetable and it gets a lot of protein into your children's lunches as well as some nice green vegetables and they usually don't complain even though there are greens in there because it's all kind of cooked into a nice pizza-style dish. It looks a bit like a pizza. Okay, so I've chopped up my asparagus and I've also finely chopped about a half of a small onion and then I have a clove of garlic. I've also finely minced my garlic and you can just use a knife like this and hold the tip down and mince it like this or you can put it into a mortar and pestle and pound it or you can push it through a garlic press. You just want to get it into small pieces. Okay, so we've heated up a frying pan here and we're just going to pour a little bit of olive oil in to kind of get our onions and garlic to release all of their flavors. I think the smell of onions and garlic, oh my goodness that's hot, sautéing in a pan is one of the nicest flavors you can get. You don't want to let it get too hot. This is a little bit hot so I'm going to turn it down a bit and I'm just going to wait for those onions to start to look glassy and then we'll know that they've started to release all of their flavors. In general I have to say I don't like hiding vegetables from the children so this dish is nice because they can actually see the vegetables but if you have children that will not eat an entire floret of broccoli they'll probably let you chop up the broccoli and do it like this. So it's kind of a half way between hiding your vegetables from your children and getting them to eat the whole thing and appreciate the taste of an asparagus. Okay, so now we're going to add our asparagus, our onions have started to get a bit transparent or translucent and we're just going to push our asparagus into there. I didn't chop all the way to the bottom because the stems can sometimes be tough so you can leave them out of this dish. Okay, and we're just going to wait for the asparagus to just start to get tender and then we're going to remove this from the heat. So while that's cooking, because I don't like to waste time in the kitchen, I'm going to crack some eggs into a bowl. Remember I'm using flat surface so that I minimize the contact of the shell with the actual egg part and I'm going to crack these four eggs in here and then I'm just going to use a whisk to basically just whisk them together. They don't really have to be overly whisked. If you have extra time and you want it to be nice and fluffy, you can keep whisking. So we've beaten our eggs and now I'm just going to move the asparagus around a little bit in the pan. Every once in a while we lose an asparagus or two but that's okay. My mom used to say to me, cooking is about being real, not being perfect. And I live by that every day. Okay, so our asparagus, it smells so nice. It's got this fresh, you can almost smell the color green when you're sauteing asparagus. Okay, so we've got that going now and this is almost, I think this is almost ready. So the asparagus is nice and tender. We're going to let it go for a few more minutes and I'll tell you about the other things we're going to add. These are panko crumbs. I've chosen gluten-free panko crumbs because I have a child who can't have wheat in his diet but they're just as good as the regular panko crumbs. You can use any kind of bread crumbs and then the only other thing we're going to add is a bit of grated parmesan cheese and some salt and pepper to flavor. So once this is tender, we're going to actually give it a few minutes to cool. Okay, so it looks as if our asparagus is almost ready to come off of the stove. One way that I test whether the asparagus is just getting tender, I kind of push my wooden spoon down onto a piece and if I can break it apart with just a little bit of pressure, it's probably ready to come off the stove. So I'm just going to turn that off. My mother told me to always rotate the pot handle when there are small children around so that nobody comes along and pulls it down on themselves. Okay, so we've allowed that to sit for a few minutes. It doesn't really have to be completely cooled and what we're going to do now is we're just going to add everything to our egg mixture, mix it all together and pour it into this pie dish that I've greased with some butter and then we're going to put it in the oven for 20 minutes to bake. So let's do that now. I'm going to start by putting my asparagus in here and then we're going to add our panko crumbs, our parmesan cheese and then we're just going to basically mix this together. You can use a whisk or you can use a spoon for this part if you like and we're going to pour it into our dish. There we go. I can hear the excitement downstairs already as they hear me whisking away. Okay, I'm going to go and put this into the oven for 20 minutes and then we'll have a nice asparagus torta to feed the children for lunch. So we've taken our asparagus torta out of the oven and I have a taste tester here with me who's going to let us know if we did a good job. Right, Miche? Do you like asparagus torta? We might have to let it cool a little bit more, we'll see. So we're going to lift that up. How does that smell to you? Not too close.  Give it a big blow. Can you give it a big blow? Good. Where'd it go? You like it? Yeah. Want to have a little bit more?  Remember, you can substitute any other vegetables for asparagus and in general, the children tend to like this one. Thanks for joining us. This is Maya and I hope to see you soon. You all right?


People don't think about what Allah has done for them. They don't think about it. They're in heedlessness. People, there are people now that haven't remembered God for years. They don't even think about Allah subhanahu wa ta'ala. And yet every instant is completely and utterly dependent on Allah subhanahu wa ta'ala.  He is the one who has ordered the universe. He is the Qayyum. He's the one who has set it up. Allah subhanahu wa ta'ala is doing everything for us. And then he asks for us to do some things for him. To remember him at least five times a day. That's minimal. He is remembering us in every instant. Because if he didn't remember us, we wouldn't even exist.


Good morning. I am Sharon Santana. Today I'm here to present our work on building extremely fast and efficient NFVs with Unicraft. Before we start on this topic, let me introduce myself. I work as a software specialist at NEC Laboratories Europe and I'm part of a team of eight researchers who are working as a part of the systems group in our lab. One of the projects within our group is Unicraft and this work contributes towards the port of DPDK on top of Unicraft as such. So, for today's talk, we have structured it in such a way that we begin to discuss what is existing out there. Then we move on to introduce Unicraft, the motivation behind Unicraft and how everything is structured within Unicraft. Then we talk about how to integrate DPDK libraries on top of Unicraft. Then we speak about the functionalities which Unicraft should provide to support these DPDK libraries. And we make a performance evaluation between a Linux VM as well as a Unicraft image. And we discuss about the synergies of the two projects Unicraft and DPDK and how it fits into this ecosystem. So, when we began, what we had in our mind is something like the diagram in the slide where we have a guest operating system and we have KVM as a hypervisor and the host and the guest interact one another through a para-virtualized framework like Versailles. And then this framework was further optimized with something called VhostNet to further improve the performance of this communication channel. And DPDK came along with its own Vhost user which further enhances this communication model. But one part of this picture which has been left untouched is the guest operating system message. We believe we can do better with the guest operating system. We believe we can specialize the guest operating system. Where in, we take in only the required components needed by the application into the guest operating system. Thereby we optimize it for something like a boot time or image size or even memory requirements for an application. And if we are only running specific application within the guest operating system, we could also reconsider the necessity for having kernel and user space separation within the guest operating system. Thus, if you're focused on a particular use case in mind, then a unique kernel seems to be a good fit for that specific image as such. So if we were to make a comparison between a virtual machine image and that of a unique kernel image, it looks like something like something like this. In a virtual machine image, you have a number of applications and we have a large number of library pool and we have a single monolithic kernel. From an application, an application needs only some subset of these libraries from the library pool and some specific kernel components. Contrast this with that of a unique kernel image. A unique kernel image is built with one purpose in mind. Thereby, you only need an image which has the specific libraries and specific kernel components with the application as such. Just to summarize a unique kernel image, what a unique kernel image is a purpose built image with a thin layer of the kernel embedded into the application as such. Thereby, the application as such has to select which are all the libraries it needs and which are all the kernel components it needs. Since the kernel is embedded into the application image as such, the necessity for kernel and user space separation is no longer needed, and whatever was a sys call in a virtual machine image now becomes function called within the unique kernel image as such. And since we are picking and choosing components needed by the application, we can specialize the entire software stack right from the kernel to the libraries to the application as such. Where do we realize the potential of a unique kernel? We can realize it in terms of faster boot times because it needs only a few milliseconds to boot a unique kernel whereas it takes few seconds for a virtual machine image. Just lower memory footprints. For example, a unique kernel needs only a few megabytes in size whereas a typical virtual machine needs a few hundred megabytes or a few gigabytes in size. And also, it has a higher deployment density so it's easier to pack a lot of unique kernels and its performance is comparable to that of a regular virtual machine image. And also, since we are only making what is necessary for an application into the final image, it has a reduced attack surface because it contains what an application needs. And also, since it has only those necessary components, it is as a smaller trusted computing base as such. So a unique kernel looks quite promising, right? It has good performance, it has quite a nice isolation features in sensation time and image size. But why? The question is why hasn't it been adopted more often? There are a number of reasons for it. Building a unique kernel is quite tedious. It sinks a lot of development cycles to get it right. And since you are doing it for each of the specific applications, you keep repeating the same process again and again and it becomes a bit tedious as such. And the other part is specialization is quite hard to build as such. Because when you're specializing, you need a way to establish dependencies between the different components in the library pool and the different components in the kernel. And the kernel and these components need to have a well-defined interface as such. So bringing up this interface definition is also quite a difficult task as such. Also, since you want to run off-the-shelf application on top of these libraries, you need to make sure that you stick to a standard interface so these off-the-shelf applications can run on your library pool and on your kernel components as such. So with this, we decided to come up with a tool where it makes it easier to build unique kernel as such. So with that in mind, we had these common objectives in mind. We wanted to make sure most of these components were reusable so we don't have to throw away any effort taken to build a specific application as such.  We came up with a lot of basic blocks so that we can support a wide range of use cases as such. And also, we needed to make sure that we have necessary tools to make sure we can establish these links between the different libraries and the components. And also, we needed to make sure that the generic components or generic components are separated from specific platforms, specific architecture, specific components. So that you can use those generic components across the different platforms as such. And we wanted to support a wide number of hypervisors as well as architecture. So with this in mind, we came up with a tool called Unicraft where everything is a micro library or library in itself. And the two prominent components in the entire ecosystem are the library pools and the build tools. With the library pool, what you can do is you can enable or disable a specific library pool and the build system provides you the necessary convenience to do that. And also, you can establish a dependency between one library to another or one library and a kernel component approach. And this library pool also includes the OS components which are decomposed as such. So how does it affect and also Unicraft is open source, which is BSD licensed. So what does it take to build an application with Unicraft? Let's take an example and let's run through it. So if we take an application like a typical DPDK application in L2 forward, we needed to select which are all the libraries which it needs to select those libraries. These libraries also includes something specific like kernel components. For example, a net dev provides you a net device interface. So you need that in order to support an L2 forward application as such. And then Unicraft provides a different set of platform architectures which it runs on. So those specific libraries which are specific to a specific platforms needs to be selected as such. And also the architecture specific code. And once this is selected, the Unicraft build system as such bakes your final image together and you have your final executable image to run on a specific platform. So when we started our work on DPDK, this was the mental image we had to port a DPDK image to Unicraft as such. Where we have an DPDK application and we have something like a LibUK DPDK which provides the Unicraft functionality to a DPDK application and it interacts with the internal Unicraft libraries as such. But we also had some design considerations into account when we came up when we had this mental image also. One of the advantages of the DPDK library is its modularity and also the benefit of Unicraft is its modularity. So we wanted to retain as much modularity as possible. So to do that, we needed to make sure that the build system of Unicraft can understand the build system of DPDK, thereby it can use its modular libraries as such. And we wanted to find out where are all the possible cases where we can optimize the guest operating system where you can simplify a lot of operations for a DPDK application as such. And also the final constraint which is for quoting any libraries, we wanted to minimize the changes within the upstream code within DPDK as such. So to make sure these build system compatibilities are matched, we first compare and contrast the two build systems as such. Unicraft build system is K-config based whereas DPDK build system has some auto config generation happening. And also Unicraft build system has some specific library variable naming convention whereas DPDK also has a similar naming convention which needs to be translated from one to another. And also it had something called export sims in Unicraft which tries to hide unnecessary functionalities from a library to other libraries as such. Similarly DPDK had a version map equivalent. So in order to address these differences, we came up with a solution using a typical Unicraft approach which is to build a library around it. So we came up with this library called DPDK build library. What it does is it processes the make files of DPDK and translate it to the make files understandable to Unicraft as such. The advantage of doing it is we can add a DPDK library as such to Unicraft and Unicraft can then translate all its necessary dependencies to a Unicraft build system understandable make file as such. Thereby what advantage we gained is we were forward compatible. So as long as there was no build system change in DPDK as such, we can adapt all its libraries necessary to Unicraft without any further changes anywhere else. And also this library contained, if you have any specific configurations within DPDK, this library contained those configurations also. So with that in mind, we came up with this sort of an architecture diagram or a building block diagram where we retain as much as the DPDK libraries are concerned. For example, this RTE, ETH Dev or the memory pool M pools or M buffs were not changed one bit within Unicraft. Whereas for the abstraction layer, we needed to add some specific Unicraft specific code which we'll talk about later. And apart from that, there are two libraries which are of consequence here which are the UK Ring and the UK PMD libraries. We will talk about these libraries further down the top. So then the next part of our discussion was how to specialize the guest operating system message. We looked at three parts where we could optimize on where you could optimize the Unicraft guest operating system. One is the memory management system. The second is a device management system. And third is the scheduling part. In terms of memory management system, what Unicraft provide was a static memory image where we have huge pages of two gigabytes mapped into the first one gigabyte of the address space. So thereby we only support one gigabyte of memory and thereby we have a one-to-one translation between a PA and VA with physical address to a virtual address within that of a Unicernel lesson. And from an application perspective, an application can specify or reserve and memory range from the Unicraft Unicernel. Thereby you can make sure that this is specific to, you can reserve this memory region and you can take this memory region and use it for your memory buffers. And also it is possible to implement multiple allocators to understand which allocator is best suited for your specific application. In terms of the device management itself, what Unicraft provides you is Unicraft just probes the devices and lets the application take over the device controller altogether. So Unicraft identifies which are all the devices necessary for an application and just hands it over to the application and the application, it's up to the application how to handle these devices. You don't need any additional file system or anything else to handle these devices as such. And finally, for scheduling as such, Unicraft gives you the ability to make sure that you can run an application, an application can hog the CPU cycle until it can yield to another thread. So Unicraft uses a cooperative scheduler, thereby runs an application can run a task without minimal interference from the Unicernel as such. And also, if it is possible, if necessary, we can also completely do away with the scheduler and run the entire application within a polling mode where everything is event-driven, where everything is event-driven or interrupt-driven. So next, what is needed from Unicraft to support a DPDK library as such. So we compare and contrast how typical data flow works between a Unicraft library and a DPDK library. So on the left, you have the DPDK workflow and on the right, you have the Unicraft workflow where you have an application wanting to send calls the RTEH Dev burst in the DPDK and UK Net Dev burst. And then it calls the virtual drivers to send out the data out. So you need, and also here, DPDK libraries handle M buffs, whereas Unicraft libraries handle net buffs as such. So there is a difference in data structure between the two libraries. So we need a way to have to mangle and to mangle from one data structure to another. A similar diagram for the RX part of it. I'll skip this part. So what is the difference between a net buff and the M buff as such. So with a net buff, what you have is, you had a packet data with a net buff, you had this net buff structure and then you have the user private data within the, which is the applications usage of the net buff. And then you had the packet headers and the packet data. Whereas if you take the equivalent of an M buff, you had this M buff buffer, then you had the packet data and you had some private data for it. So we needed a way to mangle from one net buff to an M buff as such. So we came up with this UK Ring library, which does this mangling from one data structure to another. And also the pole mode driver translates the call, anything which is happening within the DPDK context to that of the Unicraft context within the net. So thereby we were able to translate from a net buff to an M buff and M buff to a net buff with just these manipulations, whereby we point the private data of an M buff to the net buff and the private data of a net buff to an M buff. So it's easier to translate from another. And finally, we talked about the performance evaluations. Here we used two systems. One was the packet generator receiver and the other system is the one which runs Linux VM or a Unicraft VM message. It is a Sandy Bridge server with six cores on it. And we were using DPDK in 1908, Kibu version four, and the Linux kernel, the host kernel and the guest kernel were 4.19 dp. And in terms of the next graph, where we show is the baseline performance. What we do here is we vary the packet sizes from 64 bytes until 1500 bytes and we measure how much throughput we get in terms of millions of packets per second. So what we gain is we, in terms of, in terms of, we measured it in four mechanisms. One is using the V host user and which is the DPDK accelerated version and the V host, then it's the kernel accelerated version. And in terms of Unicraft versus DPDK comparison, we are quite similar in transmission performance as such similar performance. We did for the RX throughput where the RX part of Unicraft with the V host user is slightly slower than it's about 11 million, 11.5 million packets. Whereas the RX of Linux VM was around 13 million packets for the minimal packet size. And for the rest of them was quite matching. So there are some bottlenecks within the RX which we need to figure out, which is part of the future work as such. So in the previous two experiments, what we did was a packet generator keeps sending packets and we drop the packet once we receive it or once we send it. Here we did another experiment, which is like key values to what we did was a packet generator sends you a stream of packets. We receive the packet, we read some specific based on the values in the packet, we read a key value store and we send out the packet out. So with that a single core is now processing the receive of packet, processing some data within the packet and sending it out. And we made a comparison of that with the Linux VM and that of a Unicraft and with DPDK and Unicraft with NetDev running. And all of them were quite similar in terms of six million packets per second. And in terms of resource usage itself, what we observed was in terms of memory usage, Unicraft needed to run the DPDK application. Unicraft is just one gigabit of memory whereas Linux VM needed a six gigabit of memory. So it's about six or the same savings. The boot times of Unicraft is about 87 milliseconds whereas the boot time of a Linux VM is unoptimized is about 12 seconds a second. And the image size comparison is the Unicraft image is about 1.4 megabytes in size whereas a Linux VM is about 2.5 gigabytes in size. So it's about a huge order of magnitude difference between in terms of resource usage. Finally, the next part of this journey is we needed to add support for SMP's drivers, SMP support so that we have multiple CPUs. And also we wanted to try out running DPDK drivers instead of Unicraft drivers which were run so that we can keep it up to date. So if you find this work interesting, you could also for further references you could I have put on some of the links, you can refer it. And that's to conclude my talk of Unicraft. We made us a comparison. Unicraft provides you multiple platform support, a specialized guest operator guest OS, whereby we optimize for image size, memory consumption, and also the boot times at the same performance. And we have a simpler manage device management, a simpler device management for a DPDK application. And we provide increased control for an application compared to that of a Linux guest VM. And in terms of DPDK, DPDK provides you the benefit of a highly optimized network stack, a specialized VNF functionality, and a lot of untapped potential from the DPDK drivers as such. So I think the two projects go hand in hand in the VNF domain. And it is a benefit that we use Unicraft as a DPDK image in the virtualized network functions. If there are further questions, I would like to leave the floor for further questions. If you have any questions, please ask. Thank you.


What's up everybody? I'm EvilRabbit. We're here on Torque Drift for a little challenges today We got some new daily challenges to run through today So we're gonna try and get those done today make you follow me in Instagram and Twitter all of your found in the description box below Hopefully we can get these done. So let's get to it. Let's get sideways So we have two daily challenge looks like we got a chase challenge and well We got a daily challenge a tunnel edge and we got a chase challenge FD special and ocean drive We're gonna try and tackle this one first. We are on my Samsung Galaxy S10 plus So it looks like we got to get 55,000 to get the title the shark so We're gonna go toe-to-toe with his own car See if we can't get 50,000 off the bat here right away in our first attempt I'm gonna start in third Kick this car up in the fourth Probably should stay in third Not as close as I want to be but we're still within the tandem proximity and now we're out of it So I probably should stay in third longer So we're gonna go try that again. I feel like I should be able to get this challenge done So we'll start in second actually Going to third there we go going to fourth out a little a little bump And Nobody saw that Nobody saw that redo So it is definitely cool that tour trips doing a lot of these daily challenges and chase challenges and stuff like that here During this, you know the COVID-19 and these uncertain times everything like that gives people something to do I feel like 55,000 is very What did I hit the wall? Hmm I Think I know what car we're gonna use But it's like I said, it's good for them to be doing this stuff out giving stuff for people to do when everybody is staying home and self-quarantining We're gonna pull out One of my favorite chase cars.  I gotta stop hitting him But we are much closer so far That grass life. Yep, and we lost him We lost him through that section. I feel like 55 is very doable Here with this car because I Was way off and I feel like I should be able to get this quite easily. I hope We're gonna try this again in Kristoff's car If you guys beat these challenges getting all this stuff, let me know down in the comments Are you guys enjoying all the? Stuff that torture springing out here on the mobile and on the PC. I'm gonna go right to fourth Kristoff's car usually likes to start for me right and forth, but apparently it did not this time But we didn't hit the dude didn't hit him Okay, okay. Yep Talking all those things saying it'd be kind of easy to get it, but you know I'm uh I'm struggling right now We're gonna stay in third I think that was a ticket for that spot Nope. Nope. Nope. Can't do it.  I should have probably gone into fifth Feel like mad Mike's car is the best option so far For this challenge for me if I had Dean Carney's car, I'd probably use the viper. So we got the first tier baby steps Which it was plus one what Torque drift, what was that? plus one All right, so I feel like we have to go into fifth gear, but I feel like fourth gear is the money gear in the beginning We're kicking in the fourth I've got a little bit wavering there and We could lose some ground so we'll pick it up in the fifth yep, nope Didn't get the best start But it looks like fifth gear Will be the gear we need to be in for the latter part of the course So we will have to switch up gears So let's go try the daily challenge here So i'm not making complete fool of myself today The slab daily challenge 40 000 chase I feel like we can use our m4 for this I feel like Against george k's car my m4 Will work But then again, we will find out Fourth kind of cut that angle really short Come back in oh my very high angle transitions By george k right now Trapped me a little off-guard But I feel like we could manage Yeah, I feel like we can manage. I feel like we can get that 40 000 because we're already almost at 30 so If I knew and he was gonna throw massive amounts of angle would have been ready for it But I was not ready. So now We will retry it And see if we can get it dialed in Start our car in third go in there on the fourth Initiate in better not as shallow Anticipate his high angle It was just a little bomb Didn't anticipate that angle though Kind of got to catch back up Little clutch kick there Not the 40 000 or even the 30 something Kind of ran into him I think it's 32 at least we did so we bumped the next tier We got the first tier the second tier so now we should go for the third tier We're definitely enjoying these challenges as Challenging as they are For me right now, but Definitely enjoying them for sure George K throwing on massive amounts of angle kind of catching me a little bit off guard clutch kick that Didn't catch me that time or that time Kind of caught me a little bit there, but Feel like we're in a better position than we were I don't think it's going to be a 40 000 point run, but Ah, so close So close yet so far I think we'll give it one more go And see what we can do We should change up cars Nah, we're gonna stick with the M4 Four's been doing me good work. So Going to see What we can do any angle you can do I can do too Much closer on the chase now too late. I think to throw in massive points Oh So close Who knew 40 000 would be so hard to get right now Apparently It's a bit of a challenge Hence why it's called the daily challenge So if you guys still enjoying these torture videos, let me know down in the comments We're gonna give it another go. I feel like the M4 is definitely Going to work if I can get it Correct If I can get my initiation right Kind of stay with him through All these parts No, no, no, that's that's that's that's not going to do it One more shot to end the episode off One more go So like I said, if you guys are enjoying these torture videos, let me know down in the comment section down below If you guys want to keep seeing more let me know as well Tap that like button subscribe, I would appreciate all support you guys will help support me through these uncertain times All you do is subscribe like that hit that like button watch the video. That's all I care about Bring these videos out for you guys to give you guys something to watch during these times make sure you guys are staying home staying safe We are as well over here So as always, I thank you guys for watching. I'm evil rabbit. See you guys. I'll hunt the track


So let's look at a couple of examples of the area moment of inertia applied. Or actually, we're not quite going to apply it at this point, but we're going to calculate some of these values for the area moment of inertia. And both of our examples are going to consider the idea of a cross-section, where we have some sort of long beam or rod, and that beam has a cross-sectional area that is consistent, and that we're considering cutting across that beam to calculate the cross-sectional area moment of inertia. And there's a number of possible shapes. On the left here, I have an example of a box beam, which might have certain dimensions, B for sort of a breadth and D for a depth and a thickness T, or we might have a hollow circular rod with an inner and outer diameter and a particular thickness. We're actually going to look at examples of each of these, how you would calculate the moment of inertia for each of these using standard formulas. There are also calculus methods that you can use to apply to any shape or form, but that's beyond the scope of this discussion. So let's consider first a box beam, and this box beam we're going to give certain dimensions. We'll consider it to be six inches by four inches, and with a thickness of one-half inch, and the six inches will be the vertical dimension, and then you can see that we have a half-inch thickness all the way around. Now, if we were interested in the axial stress on a beam with this cross-section, we might care about the axial stress, which is equal to the force divided by the area. We could calculate the area using the geometry we have. But in this case, we might be interested in the bending, and if you remember, the stress due to bending, sigma equals MY over I, and that I in this case is going to be the second moment of area, or the area moment of inertia around the middle of the beam. So we're going to want to calculate this value Ixx to determine how well this box beam will resist a bending moment. So there are a number of resources we can use, standard, statics, and strength of materials textbooks have charts like this. There are plenty of resources on the Internet, this is a resource that came from the Internet, and we can find some sort of standard geometries and use the information for those geometries. In this case, you can see for a hollow rectangular cross-section, if we have a width labeled B and a depth labeled D with an inside and an outside value, there is a formula here expressed for the area moments of inertia, both vertically, or both around the horizontal axis Ixx or around the vertical axis Iyy. So we're going to go ahead and write those formulas down on our page here. So here's the formula for the moment of inertia around the x-axis. It's equal to the B outside D outside cubed over 12 minus B inside D inside cubed over 12. Notice this has a little bit to do with our sort of standard idea of area times D squared. D times D is effectively the area, and then you have two additional Ds involved distances, where our D is going to be the 6 inches and our B is going to be the 4 inches. Well, let's go ahead and plug in the appropriate numbers. Our outside width B is going to be our 4 inches. Let's go ahead and plug in the appropriate numbers. Our outside width B is going to be the 4 inches and we'll multiply that by our outside depth, which is the 6 inches cubed. And we divide that product by 12. Similarly, the inside breadth is going to be 5 inches, which is the 6 inches minus 2 thicknesses, a thickness on the top and a thickness on the bottom. And we're going to multiply that, actually it's the thickness on the right and the thickness on the left for our value B, which is going to be 3 inches, 4 minus each of those half inches, times the 5 inch value I was just talking about at the interior height cubed. And again, divide that product by 12. We might want to do a little bit of cancellation here if we want to simplify our values. Divide this by 4 here and we end up with a 3. And if we go ahead and do that multiplication, we end up with a value of 72 inches to the fourth minus 125 over 4 inches to the fourth. Or if we do the math there, 40.75 inches to the fourth. So that would be our value for the box beam applied around the central x-axis. If we instead wanted to apply it around the central y-axis from y to y, we would execute the same formula, but in this case we would reverse the B and the D. So our value for Iyy is going to be this time the 6 inches times the 4 inch value cubed minus the 5 inches times the 3 inch value cubed. Notice when we do the calculations there, we get 20.75 inches to the fourth. Compare that to the earlier version of Ixx, which was 40.75 inches to the fourth. You can see that if we stand the beam up, so it's taller in this length direction, that will offer more resistance to a bending moment. Now let's consider the example of a hollow cylinder. In this case the information for the hollow cylinder is that it has an outer diameter of 10 centimeters and a thickness of 1 centimeter. So again, we go and look at a chart of typical calculation values here. And we'll see a formula there for a hollow circular section. And that hollow circular section says that both of the values are going to be equal to each other. The Ixx and the Iyy are going to have the same value and that value is going to depend on the diameter, the inner and the outer diameter, where big D is the outer diameter and little D is the inner diameter. In this case the letter P represents the value pi. So taking that information back to our calculation, we can write this value that Ixx and Iyy are equal to pi divided by 64 times the outer diameter minus the inner diameter where each one is to the fourth power first. And notice this makes sense. It's going to give us a value in length to the fourth power. Well, now it's simply a matter of plugging in the appropriate numbers. Pi over 64 times 10 centimeters to the fourth power minus, in this particular case we said the thickness was 1 centimeter. Well, that means our inner diameter is going to be 8 centimeters to the fourth power. Pi over 64 times the value of 10,000. And now we also need to have a value for 8 to the fourth power, 4,096. And notice both of these together are going to be centimeters to the fourth. And so our final value here is going to be 289.8 or using the significant digits we have 290 centimeters to the fourth. And again, that applies to both Ixx and Iyy given the symmetry of the cylinder.