I'm going to be teaching on when God feels distant, and the three things that He's doing in your life when you feel that way. Stephen Mockezuma is here with me as usual. He'll be leading you in some worship right now. If you've ever felt, like I said, as if God is distant from you, then I really believe that this program is going to help to give you breakthrough. One of the ways we're going to do that is we're going to look at what the scripture teaches about the presence of God. And I really do believe that as you come to understand the three different expressions of God's presence, that this will give you breakthrough in your thinking, in your emotions, in the way you live your Christianity. When it comes to the seasons where you feel like God is a million miles away, we've all been there. You're praying, and it seems like no one is responding. You're worshiping, and the sense of His Majesty is eluding you in some way. And there seems to be this disconnect. You feel like you're missing something. You feel like you're doing something wrong. And maybe you even looked up to the Lord and said, Lord, are you angry with me? God, where did I go wrong? God, did I miss something in your will? And if we're not careful, what can actually happen is we can allow fear to begin to overtake our thinking to where we're wondering if we've missed the absolute centered, perfect will of God. And I want you today to find freedom from that sort of thinking. I want you today to rest in the peace in knowing that when He promised, I will never leave you no forsake you, that He meant it, and to this very day He keeps it. So let's now go, we're going to look at what King David wrote about the presence of God. And what not a lot of people recognize about King David, or I should say what not a lot of people talk about, is the fact that He was very close to the Holy Spirit. You can really tell from His writing that He shared something very special with the Lord. In fact, I believe, I mean there's times in Scripture where King David references something such as, the Lord said to my Lord and He begins to make mentions of the Trinity and mentions of God talking to God and the angel of the Lord. So I really do believe that King David had much more revelation than even He wrote about in the book of Psalms. But one of the Psalms that stood out to me specifically for this lesson was Psalm chapter 139. And we're going to be reading this out of the New Living Translation. Psalm 139, we're going to begin at verse 7. This is what the Bible says. I can never escape from your spirit. I can never get away from your presence. If I go up to heaven, you are there. If I go down to the grave, you are there. If I ride the wings of the morning, if I dwell by the farthest oceans, even there your hand will guide me and your strength will support me. I could ask the darkness to hide me and the light around me to become night. But even in darkness, I cannot hide from you. To you, the night shines as bright as day. Darkness and light are the same to you. So here we see what is called the omnipresence of God. And that is a theological term simply to mean the everywhere presence of God.   But whatever you believe about hell, the truth is that there's not really anywhere that you can go to escape from the omnipresence of God. So whether or not God is conscious in hell or not, the truth is that he is to some degree aware of what's going on in hell, even if it's just in a very shallow sense. But the scripture tells us that there's no where you can go to escape the presence of God. And then when I read that, it seems to contradict with some other things that we read. Let's look for a second here at 1 Corinthians chapter 6 verse 19. So we're going to get to that contradiction in just a moment. But first I want to look at 1 Corinthians chapter 6 verse 19, where the scripture says, Know you not that your body is the temple of the Holy Spirit. So we see here now there's the omnipresence of God, which is the everywhere presence of God. There's the indwelling presence of God, which is the Holy Spirit in us. In fact, the scripture even says in Romans chapter 8 verse 11, that the same spirit who raised Christ from the dead dwells in you. So there is this very literal indwelling, even though it may not be physical, it is still literally, spiritually, an indwelling presence that rests inside of you. So we see the everywhere presence of God, we see the indwelling presence of God. So why then does the scripture make reference to things such as when Cain committed the first murder ever recorded in history and he commits this murder, and then we see that Cain went away from the presence of the Lord. Another thing I read that seemed to contradict what the Bible said here was in Psalm chapter 51. And so we're going to go back now again to King David. Now what actually struck me about this is that King David knows about the omnipresence of God. In fact, he's the one who wrote that scripture we just read. So he's talking here about the omnipresence of God. He's saying, I can never escape from the presence of God. He's aware of this, he knows this, yet he writes in Psalm chapter 51 verse 11. He says, oh, start at verse 10. He says, created me a clean heart, oh God, renew a loyal spirit within me. Do not banish me from your presence and don't take your Holy Spirit from me. And I thought, okay, so here's a guy. Now, whether or not you believe he's writing this because he believes maybe what his emotions are telling him or maybe he's contradicting himself, that doesn't necessarily mean that the scripture contradicts. It means it's recording a man who's having an inner conflict with what he believes. But the scripture tells us right here that King David recognizes two things. Number one, that he can be banished from God's presence. And number two, that the Holy Spirit is within him. So even in the King James version, he's basically saying, don't cast me away and don't take it from within. King David was aware of the manifestations of God's presence. Then there's the third manifestation, which is the tangible presence or the word. And we read in John chapter one, verse one, in the beginning was the word and the word was with God and the word was God. John chapter one, verse 14 says, and then the word became flesh and dwelt among us and we beheld his glory full of grace and truth. So just as God exists in three persons, Father, Son and Holy Spirit, so his presence is expressed in three ways.  You notice every time God wants to interact with men, in this realm, it's the Son who tangibly manifests by the power of the Holy Spirit. So it seems to me that there's this middle ground connection between God the Father, God the Holy Spirit, and God the Son. God the Son is most highly involved now with what is going on in the church. When people are healed, I often hear, well, I felt a heat come over my body. I believe that's the tangible presence of the Son of the living God touching that body and causing them to be whole. Because even in the Old Testament, Jesus was the manifestation of God. Jesus was the one who was God revealed in the flesh. He's the flesh dwelling among us and the Holy Spirit is who reveals it. Just as Mary became pregnant by the Holy Spirit, the Holy Spirit takes what is incomprehensible of God and causes it to become something with which we can connect. So the omnipresence, indwelling presence, and manifest presence, the omnipresence is always with you. The indwelling presence is always with you. But the manifest presence, which is the tangible sense of the nearness of God, is what causes most confusion in believers. Because they can walk into a worship service, they can lift their hands, and maybe they are feeling something of emotional euphoria. But the fact remains that there are times when the manifested presence of God becomes tangible and we can feel him, whether that's in our emotion, in our awareness, in our mind, and when God does withdrawal, or I should say seemingly withdrawal, He does so only in relation to the manifested presence. Whether that manifestation is reaching us mentally, emotionally, physically, when He does seemingly withdrawal, He's not taking His Holy Spirit from you. He's not becoming unaware of your existence. You're still in the omnipresence of God. All He is removing is the manifested presence of God, that sense of nearness. And this is why you've heard the cliche, we need to live off of our faith and not our feelings. Because the Word of God doesn't change, but our feelings in every season do. So let's take a look now at what is God doing? So why does He do this? So now that we understand that God is always with us, but there are times, in fact, where He does withdraw the sense of His presence from us. King David felt it here, we read in something, he sensed the distance between him and God. And that distance is only metaphoric in the sense that God is always with us. But again, this only relates to our feelings, or our sense of Him. So when you sense this, it's not that God is distancing Himself, it's that you're losing a sense, or you're becoming unaware of His nearness. So what is He doing? Well, let's go to 2 Chronicles, chapter 32. And we're going to read a short story here on Hezekiah, 2 Chronicles, chapter 32. And this is going to begin at verse number 24. And this is what the Bible says again, I'm reading out of the New Living Translation for those of you who've been asking. Some of the references you hear from memory are usually King James, but this is the New Living Translation that you see on the screen all the time. So this is what the Scripture says, about that time Hezekiah became deathly ill. He prayed to the Lord who healed him and gave him a miraculous sign, verse 25. But Hezekiah did not respond appropriately to the kindness shown to him, and he became proud. Then Hezekiah humbled himself and repented of his pride, as did the people of Jerusalem. So the Lord's anger did not fall on them during Hezekiah's lifetime. Verse 27, Hezekiah was very wealthy and highly honored. He built special treasury buildings for his silver, gold, precious stones and spices, and for his shields and other valuable items. Verse 28, He also constructed many storehouses for his grain, new wine and olive oil. So he's very rich. Now, this is what the Scripture says. Let's go down to verse 30. He blocked up the upper spring of Gihann and brought the water down through a tunnel of the west side of the city of David, and he succeeded at everything that he did. However, when ambassadors arrived from Babylon to ask about the remarkable events that had taken place in the land, God withdrew from Hezekiah in order to test him and see what was really in his heart. Now, whatever you may believe about predestination and the foreknowledge of God and God's knowledge of what goes on in our minds and what we're going to do, the fact remains that in some way, when God does seemingly withdraw, He's doing it to test and observe how you're going to act. So I'll give you an example. There was a season in my life, and I've shared this story with you before, and I feel very vulnerable sharing it because it just kind of reveals, you know, I'm not really 100% spiritual all the time. But, you know, I was praying, and I was just very frustrated with the way things are going with the ministry. You know, finances weren't coming in that season, and it seemed that every year we saw this proportional dip, no matter how well we did financially, every year during this one season, we just took a hit. And I couldn't figure out what it was, and I would get frustrated. I would look at the numbers. I would look at the preaching dates. I would look at everything we're doing. I said, Lord, we're doing everything the same but it doesn't make sense why there's that dip right there.  God is never late. And I said, Lord, I wouldn't mind if every so often you were early or, you know, show up and at least let me know what's going to happen. But I believe that's a part of the walk of faith. So anyway, I'm frustrated. I'm dealing with all these things. I'm going through all this internal struggle. And I don't know about you, but sometimes I've tried to guilt God into a response. Lord, can't you hear me? God, don't you love me? God, haven't I've done what you wanted me to do? And what we're actually doing there is we're trying to get God to respond to an emotional plea when he only hears the word of faith, when he only hears what is communication of the Spirit. So I'm saying, Lord, help me. Lord God, you have to come through. And then I spoke something very foolish and I don't recommend you do this. I said, Lord, if you don't come through, I have to quit the ministry. I was basically threatening him, which was very irreverent. I know we'll get comments there, but oh well. And I said, Lord, I can't do it. And I was just frustrated. I was tired. And you know what the Lord told me? The Lord said, then quit. And some people say, no, the Holy Spirit would never say that to you. He's so gentle. He's so kind. Yes, he is. But there are times when the Holy Spirit speaks very harshly and he deals very harshly. Just ask Ananias and Sapphira. He deals very harshly with people sometimes for the sake of their own good. Even his judgment is tied to his mercy. That's another lesson. But I was so frustrated that I just said it. And you know, to be honest with you, I never saw any immediate repercussions of that. Until about a year later, the same thing happened. We're doing everything right. We saw an explosive growth. It was another great year of expansion and open doors and favor. And then all of a sudden, that right at the same part of the year, we just take a dip again financially. And I said, I did all the same thing. It was just like the repeating of a script, like watching a movie. It was just played again and again. That year, exactly the same thing happened. And the Holy Spirit, what he spoke to me in that moment, shook me. When I said exactly what I said again a year before, the Holy Spirit told me, you just bought yourself another year. And what he was telling me was that because I did not pass the test, I had to go through it again. Well, another year went by. And around the same time, we saw that dip. And this time, I responded differently. So the result was different. I'm not kidding. I mean, I've always heard those stories if we had someone mailed us a check randomly. I'm thinking, who's writing these random checks? How did they get your address? How often does this actually happen? Do you have any proof? Do you have the stub? That's how my mind thinks. And so I never, I always heard those stories, but I always took it with the grain of salt saying, okay, well, maybe it does happen. But I just don't know anybody who just writes a random check and sends it to an address, especially when the person doesn't know they're going to receive it.  Within 10 minutes of me saying, Lord, I trust you here. 10 minutes, I get a call. And it was a very wealthy businessman. And he said, what do you think I'm going to tell you right now? That's exact. I said, hello. He says, hello, this is so-and-so. What do you think I'm going to tell you right now? I said, you're going to tell me that you're going to write me a check for. And I said the amount. And he said, that's exactly right. I'm sending it right now. He overnighted it. We got it two days later. And it was enough to not only cover what we needed to do for that season, that actually, the amount, I'm not kidding, was enough to cover two years of that project when I was looking for just another month. The Lord tested me by withdrawing what seemed to be his favor, by withdrawing what seemed to be his resource. And you know why he does that? It's so that when the breakthrough comes, when the blessing comes, when the door opens, there's no doubt in anyone's mind who it was that opened the door. So God will withdraw himself. Number one, he's testing you. Number two, Hebrews chapter 11 verse 6 tells us that without faith, it is impossible to please God. Now this one is a little bit more of a simple thought. But the truth is that if it doesn't require risk, it doesn't require faith. And he's teaching us. Number two, he's teaching you to trust. So number one, he's testing you. Number two, he's teaching you to trust. So when we go through those seasons where we want to know what the next step is, and someone asked me just the other day, I was driving with them and they said, you know, when did you see all this in the ministry? Did God ever show this to you? And if I'm being honest, I can honestly tell you, with God as my witness, I can tell you that when I was 11 years old, everything you're seeing in the ministry now, the Lord showed it to me in a vision. It was about two, three hour prayer session. I was just communing with the Lord. And he showed me every step. I'm telling you, the Lord told me when I was 11 the very order of TV networks we would go on one after the other. And then he told me what the next steps would be for offices and the next steps for studios and the next step for hires. I have it written down still in my 11 year old writing of what the steps were. Now that doesn't mean it didn't require faith to get there. Now God doesn't do that for everyone. Me, I needed it. I'm like a Thomas. That's what God had to do for me. But the truth is that even though I've had this very general idea of where the Lord is going, I've never known how we were going to get from one step to the next. I've saw the steps, but I didn't see how I would take those steps. And the truth is that if it doesn't require faith, it doesn't require God. And only what is empowered by the Holy Spirit can impact eternity.  So I had this issue with wanting to know every little detail about what comes next. And sometimes the Lord would not show that to me. In that way, he withdrew. And maybe you're in the season right now. You can't find chapter and verse, which college you're supposed to go to. You can't find chapter and verse, what career you're supposed to take, or what church you're supposed to go to, or who you're supposed to trust, or with whom you're supposed to transact business. I mean all of these things, they're confusing. They're frustrating. You're saying, Lord, I feel like you can't hear me.  And maybe, just maybe, God is waiting for you to take that next step before he reveals. You see, we say, God, show me, and I'll believe. But God says, believe, and I'll show you. We say, God, bless me, and I'll give of my blessing.  So we think in a reverse order, we want the convenience first, the assurance first. The assurance we have is what the Word of God says, and in who he is. But as far as what's coming in this life, not everything is guaranteed. And so, he's teaching us trust. So number one, he withdraws because he's testing you. Number two, again, I want to emphasize, he seemingly withdraws because he's teaching you trust. And number three, finally, and this is Acts chapter 17. Let's go to verse 27. Acts chapter 17, verse 27. This is what the Bible says. And this is the scripture telling us of God's nature and of God's desire to reveal himself to us. Acts chapter 17, verse 27. His purpose was for the nations to seek after God and perhaps fill their way toward him. And find him, though he is not far from any one of us. Jeremiah chapter 29, verse 13 tells us that if we seek him, he says, if you seek me with all your heart, you'll find me. You know, I've heard people tell me before in frustration, I sought God and he didn't reveal himself to me. But just by them saying that God did not reveal himself, I know they didn't truly seek him.   And so when somebody tells me I sought God with all my heart, I gave it everything I had. I prayed, I worshiped, and I did my best to seek him. And they don't experience him. It's because they didn't give all their hearts to seek him. Why? Because the Bible guarantees the word of God guarantees.  It's a law of the Spirit. If you seek him with all your heart, you will find him.  If you say, I sought him with all my heart and didn't find him, it's because you didn't really seek him with all your heart. I know this is not necessarily something popular to say, not very nice to say, but it's true because the Bible has this guarantee. So seeking is less about God coming nearer and more about you becoming more aware. You see, when the manifestation of the Holy Spirit's presence comes around you in worship service or in prayer, it's not that God is coming nearer. It's that you're becoming more aware. You're beginning to sense his presence. If you know me, I've said it on the program before, my idea of camping is getting a nice cabin and then visiting the nature and then going back in for the night. I'm not really one to like to sleep in tents or anything like that. But one summer I did, I went camping with some friends and it wasn't very comfortable, but I really do enjoy nature and all of the different things that are on display when you go out there. And I remember I climbed up to this hill and I'm just looking at the stars and I said, man, this is just so nice. I wish these stars were out every night like this. And then I realized, well, they are. It's just where I am, Southern California, because of maybe light pollution or general pollution or the time of day, or all of that contributes to causing me to not see those stars. Even in the day when the sun comes out and all I can see is blue skies and clouds, those stars still remain. And the Lord said, my presence is like the stars. They're always there. You just have to be in the right place at the right time and looking through the right lens to see it. And the right place in the right time is the place of reverence. And that lens is worship. When you worship the Lord, the focus shifts from you to him. And the eyes of your heart begin to behold the majesty of the countenance of Christ as the Holy Spirit reveals him.  Remember in Isaiah chapter six, where King Uzziah had died and Isaiah sees the Lord high and lifted up, seated upon a throne. And the train of his rope fills the temple with glory. Here's this great, spectacular, glorious display of all that God is revealing to Isaiah. And the first thing he does is looks at himself. And he says, woe is me for I am undone, for I am a man of unclean lips and I dwell in the midst of a people of unclean lips. For my eyes have seen the King, the glory of the Lord. So he's looking at this display that is God and immediately he looks at himself and says, well, I'm undone. Isn't that so like what we do during these seasons where God is actually drawing us nearer?  And the closer you get to the light, the more things become exposed. You know the cliche, God doesn't expose to shame. He exposes to save. And so I think that cliche holds true in this case. So he is drawing you closer. And it's less about you and more about him. When your eyes, the eyes of your heart begin to focus less on your circumstance. And more on him, everything begins to change. This is good because God will disrupt us when we're comfortable. Hasakai was blessed. Sometimes when we don't want to have faith or we don't want to take a risk, we want everything comfortable. But the scripture teaches us that God will disrupt when you're comfortable. And this is what he does because sometimes he needs to do something to get your attention. You may be going through your life and things are going well, you're blessed, or maybe you feel like things are falling apart. But either way, when God seemingly withdraws, remember that number one, he only does so in relations to your emotions and your sense. And when he does do that, he's doing it for one of three things.  Well, I want to pray with you now. Maybe you're in that season.  I want to pray with you right now. Let's believe that God would process you and that you would exercise patience to allow God to do whatever he's doing in this situation. Let's believe right now. And let's believe for breakthrough and then as always, I want to pray for your healing. I want to pray for spiritual deliverance. I want to pray that God would anoint you. Let's just ask the Holy Spirit to move. So right where you're watching, I want you to just lift your hands, close your eyes, don't even think about it. Maybe you're watching this in public. Who cares? Let them think you're crazy. Lift your hands, close your eyes. Father, in Jesus' name, I pray for that one watching right now, Lord. Whatever this person is going through, they're not watching this video by accident. They're not hearing this message by chance. But Lord, I believe that you've anointed this word for such a time as this for this individual. So I pray now, Lord, for patience, for courage, and for discernment during this season. I pray, Father, that your Holy Spirit's presence and power would now begin to manifest among that one watching right now. I pray, Lord, for your healing power. There's somebody you're believing for healing for a blood disorder. I literally just felt like a jolt out of my hand and I heard blood disorder and God's making you whole. There was somebody watching actually a couple of weeks ago. I called out crooked legs and their legs straightened as they were watching this program. I believe God is healing you.  Some people feel heat. Some people feel like electricity. Whatever it is, even if you don't feel anything, know that God is healing. I thank you, Lord, for what you're doing in Jesus' name. Lord, I pray you anoint, impart, and empower your people today in Jesus' name. Amen. I pray that message bless you. I want to take this moment now to welcome the new members of Spirit Church this week. Actually, several of you joined this week and we haven't looked at the numbers, but this one is a huge jump. So here are the names. Thank you so much. We love you. We're praying for you. We're glad you joined. I hope you got that email because in that email, if you'll look at it, you have that number and you can call for prayer, text for prayer. And if you want to join Spirit Church, then go to the link. If you're watching this on the ministry app, you're going to have to go and manually type in the link below. If you're watching this anywhere else, you can go ahead and click on the link that just appeared just above and that'll take you right to the registration form and you can join the Spirit family. As usual, I do now need to present the needs of the ministry. Many of you know worldwide television, international events, global discipleship, and that's three of the nine ministry outreaches that we're doing. If you ever want to see what this ministry is doing, I mean, Encounter TV, Encounter Services, and Spirit Church are at the forefront and that's what you usually see. But if you really want to see, then go ahead and click on the link here. And that link right there is going to take you to a place where you can see all of the ministry operations. There's nine distinct ministries that are coming out of this organization and they all have a very specific purpose and we do those to the best of our ability because of your support. And really when it comes down to it, we're thankful for your support because we can win more souls with what you give. That's ultimately what this comes down to. It's four souls. That is why we give and that is why we do what we do. So go ahead, so on the ministry, those of you who consider this your church, there's also that special link for you for tithes and offering. And I just want to thank you for watching. Thank you for supporting. We love you. We're praying for you. That is it for this edition of Spirit Church. Until next time, remember, nothing is impossible with God.


Greetings, friends. This is Survival Doc. As you know, I believe that we should have growing some of our own food in a home garden as part of our survival plan so that we won't be dependent on commercially grown food and grocery stores. Well, this is my tiller. It's a very nice tiller. It has a five horsepower Briggs and Stratton engine. The wheels are powered. It has a reverse. It is a very heavy-duty tiller. And I can break up a large patch of new ground with this tiller in very short order. And I was fortunate to find this tiller at an estate sale for I ended up bargaining with them and ended up getting it for about $125, whereas this is actually about $900, possibly more, tiller. And it's a few years old, but it still works great. Well, my tiller is great as long as I have gasoline. And as a survivor list, I'm always looking at ways of doing things, say, if we run out of our usual energy sources, such as gasoline. And if we do find that gasoline is unobtainable, it will be a toss-up as to whether I spend my last gallon of gasoline in my tiller here or if I use it in my motorcycle that gets 80 miles to a gallon. Of course, it would depend on the circumstances at the time. But as I said, I'm always looking for alternate ways of doing things. I have bicycles with a lot of extra equipment for our bicycles, in case gasoline becomes unavailable. And we have to have ways of transportation that don't include gasoline. And I'm always looking for ways of doing things that require less energy or no energy. So when I go to a state cell, I'm always looking for things like this. This is an old gardening instrument. I know it's old because the wood was a very bad condition. And the metal was all rusted. I used the Formby Wood Refinisher. Treated the wood. And then I treated it with tongue oil. As far as the metal parts down here, these were very rusty. I smoothed these down with steel wool. And then I primed it with a rusty metal primer. And then I painted it green. And I got this thing operating just about like it did when it was new. But this obviously requires no gasoline. And it will obviously require a lot more work than my gasoline power tiller. But if gasoline becomes unavailable, something like this could actually save me a lot of work. Now this is not going to break up new ground at all. What I'll have to do if I need to break out new ground is I'll have to get the shovel out and turn the ground over. Obviously more work than my tiller. But then this will be useful in the final process of breaking up the ground once it's been turned over with the shovel. And I've also found it very useful in the garden and this may have been what it was originally designed for. It's very useful to run between the rows to weed your garden. Here's something else I found at an estate sale. I bought this thing for about two or three dollars and this is a plow. It's actually a plow piece.  But I bought it because I could get it for just a couple of dollars and I figured there certainly will be a way for me to convert this into a plow that I can use manually, that I can push through the rows between the garden. But getting back to this, I'm not really sure what this was called. It's made by Roe Manufacturing Company in Illinois. So it's an American made item back when this was a great country. We used to make things in this country. So I'm going to take it into my garden and it's not time to break up new ground of course. But I'm going to take it in my garden and demonstrate how this can be used to run between the rows of your garden to get rid of weeds. I just discovered some very bad news. These are my bean plants and see they're ruined. They are something ate, something ate my bean plants. I know what it is because I've had this problem before and these bean plants are ruined. These are not going to grow. I just planted these recently and they are ruined. And here the guilty party left their evidence. This is deer droppings left right here beside my bean plants. And I actually live in the city and you really wouldn't think that a deer would be a problem here. But they are a problem here and these are my fruit trees.  And living in the city, I actually live in a suburb near a city. Living in a city, I can't shoot the deer legally which would be nice because I could harvest them and provide meat. But I do have a crossbow and if we get into a survival situation where we need the meat and we need the fruit from our trees that the deer are eating, then if it comes down to between us and the deer, the deer are going to end up in the pot. And what the crossbow will allow me to do of course is to harvest the deer without the usual noise of a rifle so that it will not alarm my neighbors too much. As you can see my garden has suffered some neglect because I've been involved in some projects lately that have required my time. It hasn't allowed me to spend as much time in my garden as I wanted to. This is actually a volunteer right here. That is a, looks like a radish. I'm not going to leave that. As you can see this thing works pretty darn well. People knew what they were doing when they made things like this back in those days.


Hi, welcome, and now we'll have Chaitra speaking about what's new in my SQL Optimizer 8.0, yeah, here you go. Good afternoon, everyone. As she said, I'm Chaitra. I work with my SQL Optimizer team. I've been with Oracle for about six years now. So today I'll be talking about the most important features that we have delivered as part of 8.0. So that's the safe harbor statement for you guys to just a disclaimer. It's not visible, is it? Okay, perfect. Okay, so that's the agenda for today. So I'll be covering some new SQL syntax that we have added as part of 8.0 and then some improvements that we have made compared to 5.7 in 8.0. So the first and the most important one we have added is the common table expression, also known as the CTE. So what's a CTE? It's an alternative to a derived table, typically used. So a derived table is something that you're going to use in your from-class, sorry, as a subquery. So you do your selects and in your from-class you're going to specify a subquery which will be treated as a derived table. Now how does CTE differentiate itself from derived table? So how do we specify a CTE? You start with the with keyword and then you specify the derived table name and then you give the subquery definition that you want to use. And then that's followed by the actual select query which uses this derived table. So and CTE may precede any of the DML operations. I'll just show you an example later on how you can actually use CTE. So when you have a derived table, why do you actually need a CTE? I have listed out a couple of reasons why a CTE is better to be used than a derived table. The first and foremost is the better readability. So whenever you're reading a select query, if you want to write a derived table, then you have a select inside your actual select which is using this derived table. Select start from and then you have another select and then you use your derived table. But whereas in CTE there is a clear distinction. You have your derived tables ahead of the actual select query that is using this derived table. So that is one thing and better readability as you know leads to better maintenance. And the second one is the it can be referenced multiple times. So you have one single definition of your derived table and then you can use it. So this becomes your initial data set and you do a union with the second select which is actually your recursive select. So the recursive select works on the first seed select and then recursively produces the subset of the final result. Usually the recursive select actually has a breakout condition. You can specify a where clause until when you want to produce the rows. So I have a simple example here, printing 1 to 10. So how do you do that? With recursive and you have your recursive CTE's name, select 1. So the first seed select is 1 and then union all and then you have select 1 plus a from this CTE. So it produces and then you have your where condition. So the first iteration will produce one row. The second iteration it will have 1 and 2, the third iteration until it breaks out till 10. And then you have your final actual select query using this CTE. But this is a simple example, but recursive CTE helps you actually in real examples. You can use it to traverse and hierarchical data. So how many subordinates are there for this particular VP or who is the underused VP, who is the overused VP, so on and so forth. So that's something that is introduced in 8.0. So the next one is the windowing functions. How many of you have heard or used windowing functions here? So it's something that is used in analytics basically. I'll just show you what's a window function and how it can be used. So typically a regular aggregation, grouped aggregation happens this way. That is you have multiple rows for a single group and then all these are aggregated, collapsed and you will have one row. Which has the final aggregate. That is you have say for example you have some of salaries, then you group accordingly and then you give the final salary in one row. What happens with respect to your window function? Window function doesn't do this. It does not collapse the rows. It actually keeps the identity of all the individual rows that contributed for that particular group. Along with that it also gives the aggregation. So that's what windowing function does. As the definition says it actually sees all the rows however you define it in your window clause. The rows that are in the vicinity of that current row. So I have some example which can be used to understand. So the first let's see the syntax of how a windowing function looks like. So as you see here I am just doing a select name, department ID, salary and I have some of salary as department total from employees in order by. So how does a windowing function differentiate itself from a regular group aggregate? So you have to specify this over clause. So the moment you specify a over clause here that means that you are going to treat the sum of salary as a windowing function. What does a partition by do? A partition by do is a partition by is similar to your group by. So it groups by the department ID and then gives the department total. So as you see here the output looks like this. Whereas for a typical group aggregate there would be one row for this and for the second row, second group there will be one row. And then the third group, fourth group like that. So as you see here for the first department ID there is one person contributing to the salary. So that's the end of the first partition. For the second partition which has six rows you have the department totals and all the six rows being a part of the final result set. So this is a very simple use case for a windowing function. A windowing function can be leveraged to do many, many things more. I have another example wherein in the previous example you just saw the entire partition being considered to give you the final total. Whereas in this example you see that you are actually calculating the total only for the rows that are only for two rows that are preceding the current row. So you can specify that too. Inside the partition how many rows do I actually want to look into? So here you have some of salary over partition by similar to what I had in the previous example. Order by the name then rows two preceding. So what happens in this case? So the first partition which has only null only one row so you get the department total. For the second partition that's the first row it doesn't have any rows preceding it. So you have null because salary is null. For the second row you have one row ahead of it so you consider that as well. And then for the third row you have two rows preceding. Now when you are moving to the fourth row of the partition you are not going to consider the first rows value. So it's going to aggregate only for these three rows because you are specified. I want to look at only two rows that are preceding me. So that way you can leverage windowing functions to do whatever you want mostly used by analytics. And it's not only the aggregates that can be used as windowing functions. There are a lot of other new windowing functions that have been introduced like ranks, row number, lead, lag. Like you can say that you know who is leading this row, who is lagging behind me, all those things. There are a lot of new SQL syntax as part of windowing functions you can leverage all of them. So most of the SQL standard syntax for windowing functions has been supported by MySQL in atoto. So you can see that for every row it will just consider. So since it's a new partition you just consider those. So these are the two major SQL syntaxes that are introduced in atoto. So the next important step that is taken for atoto is making the default cap set change. So for 5.7 we had utf-8mb3 and for atoto it's been changed to utf-8mb4. So what does that mean? That means that you can actually store many more characters that includes emojis as well. So all this can be sorted and then all the things that a mobile app now requires is being supported in atoto. So I can see some smiles so somebody is happy and it has performance improvement as well. So that is something that you can look forward to. And the next feature that we have added is a very simple syntax but most commonly required by a booking system. So the most common problem that you see is hot row contention when multiple threads are trying to look at the same rows. So we have provided two solutions for this problem in atoto. The first one being you can skip the application can have a logic to skip the rows that are locked or you can say that I do not want to wait for the lock. So the first syntax that we have provided here is skip lock and in the next slide I will show you the no wait. So I will give you an example of how it can be used in your business logic. So for example I have a booking system like in a movie or something like that. The first thread comes and then he looks at couple of seats and he picks up the seats and then he is in the process of payment. Now when the next thread comes the business logic needs that it should not look at this locked rows. I can actually skip this locked rows because the first thread is actually in the process of payment. So you can actually issue just this command saying that whatever the seats that are not there in somebody else's cart you just have to give me those rows. So this is a new syntax that is being given which can be used in your business logic. It is very simple and the next one is the no wait logic. So the no wait syntax is just similar to the previous one except that you are not skipping the locks, locked rows. You are just not waiting for the lock to be released. So that is about it. So this is a new syntax that has been provided and the next is the JSON functions. So as you all know that MySQL 5.7 has the JSON support and it is the most well received feature for 5.7 as well. So what we have done in 8.0 is made some more improvements to this JSON functionality. So we have given some more JSON functions that can be leveraged in many different ways for you to take advantage of. So I will just go through the most important functions that were introduced. The first one is the JSON aggregation functions. So JSON array ag. So I am not going to cover how to create a JSON object and all those things. It is just the new functionality. So what we have is here a table having a JSON column and what we have here is how to, what kind of output you get when you use a JSON array aggregate. So it has aggregated all the JSON key value pairs into an array. So this can be used in your applications in many ways. And the next is the JSON object aggregation which can be used to create a JSON object. I mean the previous one was for your creation of an array. This is for just the objects. So as you see here you can use it in your group by queries to just get the list of all the objects that are present in your group. So that way you can leverage it. So this is something that can be used in many ways, the JSON table function. So it is the most powerful syntax that is provided for JSON functionality in edoto. So what this can do is convert your regular JSON documents into relational data. So I have an example. I will just go through the example so that you can understand better. So I have a table here which has a JSON column having all the people's data. It is just unstructured and there is lot of fields and everything pertaining to people's data. But what the application is interested in is just the names and the addresses. So what now with JSON table function what you can do is extract these two and then interpret as a relational data. So we have this syntax now. Select start from t1 JSON table. Then the first argument is your JSON data. So from where the JSON data comes from. So in this particular case table t1 JSON call I am looking at the column data. And in the column data the path for the actual data that I am looking at for extraction of columns is people's data. So inside this JSON column what I am looking at is people's data. From which I am going to create two columns named the first one being the name for which I have a path. The second one is the address for which I have a path again. And you can also use your filtering. So this creates the relational data that can be later leveraged to do aggregations and everything. So I have one more example. So the previous one what you saw is a simple one wherein you know you did not have any nested paths. But this one you have some nested paths. That is you have people's data where father's name, mother's name, then children and children are in turn having name, age, everything. So how do you extract data from nested paths? So see here I have an example where all this data can be interpreted as a relational table like this. So this has a row representing every child in the data and their age and then there is an ID that is auto generated for the rows. And then whether the marriage date if at all it is present then you know reflect as one and then the father name. So how do you do this? So you just have to write this syntax. So JSON table, this is the column that I am looking at families. And I am going to look at all the data inside this families column and then I am going to create these many columns from this data. So the first one being the ID for ordinality. This is auto generated by MySQL. So it gives you the column numbers so that you know you will be able to identify. And then next column is the father column. So that path is father inside this and then married. If the marriage date exists then I want it to be reflected. If the marriage date does not exist then it is going to be 0. So then inside that I have a nested path of children's data. So inside this data I am looking at children's data. And from the children's data I am going to create three columns named the child ID again for ordinality. Then child that is the name and then the age. So you will get this relational data which is human readable. And can be used to leverage or can be used to do aggregations and so on and so forth. So I will just show you how you can use it for aggregations here. So you have the same JSON table definition that I had in the previous slide. Using this what I am doing here is select the father's name. And then the counts are how many children does he have. So from inside this data I am going to count the number of children. And then the average age of the children. So what it does is it gives you a mechanism to interpret the unstructured data into structured data. And from there you leverage all the functionality that your typical SQL can give. So this is very powerful if at all you are interested in relational data interpretation from your unstructured data. So that is something that is new in ADOTO. So next we have couple of index extensions. The first one being the invisible index. So typically a DBA what he would want to do is he would want to check whether any of the indexes are used correctly or not. So if at all if he finds that the index is not used by any of the applications he would like to drop the index. But it so happens that when he tries to drop the index what if the performance gets a hit. So what now with ADOTO what he can do is make this index invisible to optimizer alone. So when you insert data, update data all the physical changes will happen to the index. But only thing is optimizer is not going to pick this index for its plan generation. So what this does is after you make this index invisible one can check whether there is a performance drop. So if there is a performance drop that means that this index is actually used by the application logic. So he can make it visible again and then start using the index. Or otherwise if he thinks that the performance is not dropped at all after making it invisible then he can just drop, decides to drop the index. So that is one of the index extension. And the second one is the descending index. So all the up to MySQL 5.7 what we had support was for ascending index. That means physically when an index is stored it is always in the ascending order. Now whenever an application required a descending order what MySQL is to do was scan it backwards. So scanning backwards always has a performance hit for about 15 to 20 percent is what we observed. So that is one thing and the second thing is that since we did not have a way to store indexes in descending order for any query which had order by ascending, b descending, mixed order we could never use an index. MySQL could never use an index. It used to always sort it after fetching the data and then sort it at the server layer. So now you can create an index like this a descending and b ascending and then if at all you have an ordering that requires mixed order you can leverage that. So that is something that is done. So the next is the cost model change. So in 5.7 we did a couple of major changes to our cost model in Optimizer. In 8.0 we have improved upon it. I think my colleague covered one of it as histograms in the morning. So this is the second one that has been done. So in 5.7 and earlier for Optimizer to know if the data is present in memory or on the disk there was no way. So the storage engine was not capable of telling how much of the data actually resides in memory or how much of the data actually resides in disk. So with this what happens is that you always presume that the data is residing in disk and based on that you come up with the cost. So the plan might not be always optimal. So now with 8.0 storage engine is able to tell how much percent actually resides in memory and how much percent actually resides in disk. So because of that we are able to come up with better plans. And I think one of the dbt3 query which is a standard for measuring benchmarking has actually improved after we introduced this cost model change. So the next is the hints. So as I said earlier 5.7 we introduced new cost model. So a lot of times when Optimizer has made some changes we see that 99% of the queries actually improve in performance but there are very rare cases that you see a regression. So what is the solution for a regression is that the DBA can himself give a hint to the Optimizer saying that I do not want you to think I just want you to use this index for this particular query. So in 5.7 we introduced a lot of hint infrastructure wherein for every kind of optimization that an Optimizer uses you actually can give a hint saying that I do not want you to use this index extension or I want you to use this index optimization. So in 8.0 we have improved upon the hint infrastructure. We now have couple of hints for join order specification. So fixed order and then join order you can just specify a prefix for the entire join that you have or a suffix so on and so forth. I just have an example you can just see here. So what we have here is a select query which joins on two tables. So the default if at all you think that this is a join order that is preferable for you you can just mention in your query saying that join order first the table should be customer and the second table should be orders. So if there are plenty of tables in your query you can always specify the prefix should be something and then the suffix should be something and then this you can just say fixed order do not change anything about it. So that can be done. And so that's about what I had in my agenda but there are a lot of important features that have been added along with what I have covered since I do not have time. I have just listed all the features here that are there as part of 8.0. So we have improved GIS support. So 5.7 you saw major change in geometry support in MySQL. So we have improved upon what we did in 5.7. There is a grouping function which can differentiate between roll up nulls and regular nulls. And then as I said improved hint infrastructure it's not only the join order hints that have been added. There's lot many index merge and plenty of hints that have been added in 8.0. And then there's JSON improvements. So it's not only the functions that I mentioned that are added in 8.0. There are plenty of others as well utility functions like JSON pretty print and storage size and so on and so forth. And then we have also improved upon performance because we now have a way to detect whether JSON can be partially updated or not. So that's another performance improvement that we have done. And then there's parser refactoring which always helps us to add new SQL syntax with ease. And because of which we have actually added a lot of SQL syntax newly in 8.0 because there's lot of parser refactoring that is happening. The original parser of 5.5 is no more what you see in 8.0 or 5.6 or 5.7. I mean it's gradually improved. So that's about my presentation. If you have any questions. Yes, we have first value, last value, nth value. And it should be a feature in the storage. Window functions? No, I... Is that part of the MySQL kernel or is it storage? MySQL server. Yes, it's a server. So it means I can use these functions for any storage? Should be. It's a pluggable interface, right? What we have with respect to MySQL. So this is a server feature. So you should be able to leverage it with any... Yeah. So all it needs is a timetable changes but I'm not sure. See with respect to what we have is innerDB and MySQL and couple of other that Oracle supports. So we have had couple of changes for temporary table handling for windowing functions. So as long as those are done then I think you should be able to leverage it with any of the storage engines. But the recommended one as I said is innerDB. Yes. I wouldn't want a transactional storage. Okay, so a non-transactional engine if you want to do it, I think you should be able to do it. Yeah. How does this JSON function work? So from the engine you're able to read the JSON file and then turn it into... No, it's stored in a binary format in our storage engine as a column itself. So JSON you first import data. From the storage engine, we just read the... We have an interpretation of the binary format and then we give it out as a SQL readable format. Basically you can support in the JSON data type. So the JSON data type is on the disk or where is it? So like... It's a... You have blobs, right? Binary large objects and then you have just the character VARCAR. So either if you want to interpret as a text you can use the VARCAR this thing or otherwise JSON in general in MySQL is stored as a binary larger blob. I mean it's similar to... It's stored in the JSON record in the database. Yes. Yeah, so you just extract it. I'm sure there is a JSON file on the disk and your engine is reading it... No, no, no. It's part of the table. It's part of the table structure itself. You can create a JSON column and insert the JSON documents into it. We actually had a session at 10.15 explaining the same thing. How to... How you can leverage SQL and NoSQL in MySQL. Yeah. So... We can go through the... Yeah. How deep is the JSON storage? Can you go... JSON, you can just keep going. Yes, nested parts you can use and... The limit as per say, I do not know the exact to this thing, but then JSON extract should be able to extract the regular parts that you have typically in your... I am not aware of it. Probably I can get back to you on that because I haven't used as such the limit with respect to the nested parts that you are asking. Okay. Yeah.


Welcome to the future Network Car Symposium 2021. My name is Bilal Jamosi. I'm the Chief of the Study Groups Department in the standardization sector of the ITU. And I'm very pleased to share with you an update on the ITU standards enabling smart mobility and intelligent transportation systems. Very briefly, an introduction about the ITU, what we do. First of all, we do the allocation of radio frequency spectrum and satellite orbits. We bridge the digital divide and we establish international standards. When we say we, it is the 193 member states, more than 700 private sector entities and about 160 academia worldwide. ITU is the United Nations Specialized Agency for Information and Communication Technologies. We're very pleased to have a significant growth in our membership over the past few years. And we're very pleased to welcome a number of communities other than the traditional telecom and ICT because many of these new communities and verticals are using information and communication technologies to advance their solutions under what is known as the digital transformation. Some of the ITU members from the automotive industries that we're very pleased to welcome include a number of companies that you see on the slide that have joined us because of this intersection of ICTs and the automotive sector. We set the standards in 2020. We have published more than 300 standards and a number of them are related to intelligent transportation systems. Some of our work is geared towards achieving the Sustainable Development Goal number 11, particularly by providing access to safe and affordable and accessible sustainable transportation systems and provide road safety by expanding public transport. Now, if you look at the intelligent transportation system standards, there is a set of standards under the radio sector, ITU-R, under working party 5A in terms of spectrum allocation and harmonization and the automotive radar. And a number of activities in the ITUT sector related to cybersecurity in study group 17, quality of service in study group 12, numbering for in-car emergency communication in study group two, as well as the internet of things in study group 20. And finally, in study group 16, a number of focus groups such as multimedia focus group and the autonomous and assisted driving focus group work plus the vehicular gateway international standard developed by study group 16. Now, allow me to share a little more detail about this work in the case of ITU-R. As you can imagine, the car and its connectivity is through a number of radio interfaces, some for the in-car communication, some for the infotainment and some for the safety of movement in terms of parking assistance, detecting collisions and being able to react in real time to some of these potential dangers. Then in a bit more detail, the ITS standards in the cybersecurity arena, one important element is the over the air software updates. So as cars are connected and using significant amount of technology from information and communication technologies and receiving software updates to keep the car current with the latest software, it's important to protect that software as it is downloaded from the cloud of the automotive manufacturer, for example, to the car. So study group 17 has been working very hard on providing the protection necessary for that software upload and update over the air. Then the car is in a sense a part of our communication. Initially we had a number of standards in study group 12 on the quality of service and quality of experience of hands-free devices. But now as we go into the car, there is a significant amount of communication that is hands-free. And we have a number of test specifications that ensure compliance with the ITUT P1100 series of standards that ensure the voice quality in vehicle communication. Emergency calls is an important element of saving lives. And in case of an accident, God forbid, the car now is able to automatically dial the emergency number. So it becomes a machine to machine communication in a sense to call the emergency hotline. And then the emergency services would then come in time to save the people who are in an accident. In particular, ITUT P1140, a speech communication requirement for emergency calls originating from vehicles is referenced in the new UN regulation on automatic emergency call systems for road traffic accidents. It is referenced in UNECE WP 29. ITU standards also are called upon for shared codes. Many of the cars today are sold with more than one SIM card, perhaps one for the management of the car itself and another for the infotainment, as well as overall communication of the car. And as cars roam across countries, we're seeing an increase demand for shared codes that are used without a specific country code. And these are attributed and assigned directly by the ITUT, the TSB director. In our study group on IoT and smart cities, we've been looking at managing data in the connected car because once the car is connected, there is a significant amount of data that goes in and out of the car. And that data processing and management considers in the context of this study group the car being part of the internet of things. It is one of those connected devices in the network and study group 20 is working on that particular aspect. Study group 16 developed a standard on the vehicular gateway, showing the various connections within the car and outside the car. So I'm going to the cloud-based services. I mentioned earlier, perhaps for software updates, getting the latest map, if the road conditions have changed or there is construction on the road, being able to get real-time updates to the map, especially for navigation is critical, pedestrian and bicycle detection. And communication with the infrastructure are some of the communication protocols going in and out of the vehicle. We have a specific focus group under study group 16 looking at vehicular multimedia. We can say that the car is the fourth screen after the TV, the laptop and the smartphone, the fourth screen that we interact with on a regular basis is in the car. And this focus group is trying to look at the architecture use cases of vehicular multimedia. In fact, it has a number of working groups and has had many meetings in Ottawa, Tokyo, Budapest and latest is the virtual meeting to address use cases and requirements, architecture, the implementation of vehicular multimedia and has published a technical report that has then been adopted as an international standard by study group 16 on the use cases and requirements for vehicular multimedia systems. And the work on the architecture is ongoing and under development in study group 16 and in this focus group. In addition, we have a focus group that is more recent and it's working on the use of artificial intelligence for autonomous and assisted driving. It is looking at the behavioral evaluation of AI systems in autonomous and assisted driving to realize AI's potential to hopefully reduce the 1.3 million annual road fatalities. This focus group was a spinoff of the AI for Good Global Summit when a number of experts discussing the need and importance of this topic proposed the creation of this focus group. It aims to support the 1949 and 1968 UNECE Convention on Road Traffic. It had its first meeting last year, 2020 and continues to meet on a regular basis. This focus group is looking at defining a minimal acceptable performance threshold that AI never engages in carless, careless, dangerous, reckless driving behavior. AI remains aware, willing and able to avoid collision at all times and AI meets or exceeds the performance of a competent and careful human driver. The focus group on AI for autonomous and assisted driving has a really innovative approach. They conceived the ethical thought experiment, the Mali problem and launched it so that people get engaged in this discussion where a young girl called Mali is crossing the road alone and is hit by an unoccupied self-driving vehicle. There are no eyewitnesses. What should happen next? And I think this question goes under a lot of the ethical thinking that goes in autonomous driving and has been an excellent opportunity to engage the community in this focus group in not only looking at the technology but also looking at the ethical aspects of it. We have many opportunities for collaboration and because as you can see there is a very broad set of standards in the radio sector, in the ITUT and many other organizations, standards development organizations. Almost 10 years ago, we conceived of a group called the Collaboration on ITS Communication Standards, see ITS. It was established by the ITU to provide a platform to share knowledge and coordinate standards for ITS. It's attended by worldwide SDOs. It has three meetings per year, usually back-to-back with ITU-related regional events, Asia, America, and Geneva and aims to coordinate a set of interoperable ITS communication standards. And we welcome you to join us. These are some of the regional events. Previously we used to have them as physical events but during COVID-19 we've been holding these as virtual events. So I'd like to end by welcoming you to the future Network Car Symposium. This year is a virtual, fully digital event from the 22nd to the 25th of March. And I hope that you have found this brief introduction of the ITU standards enabling smart mobility useful. Thank you very much.


back to our channel so today we are going to share one interview patient so the purpose of sharing this video is like recently we have connected a drive so out of 10 we placed them in front of our client so there was a client round so client hub the slow go reject my idea so I was there in the client round as well so the reason why you have to say widget kardiya sabko is the coding question so this was a coding question basically he was that was given like find the second highest number from an array so they say the equation because sub-loan a cat here for sale the head are a dot sort input or print karadha sysout input dot minus 2 so print karane say ideally you have it If 22 is the highest number, then it will work. They were typing this solution, this code and expecting they got the ideal result. So the client changed it. He put 1 comma and 1 and 45. Now he won't work for an hour. Because he didn't do the duplicates handy. Because here the hard coded one will give the last but one. Here 45 and 45 is the last one. He returned it. He was giving a chance. So he says this as an approach 1. So he was giving an opportunity again. Like, can you try? So what people started doing? So I copy and paste it. So what people started doing? Let us say this as approach 2. And how does this code look? They are putting two for loop. And they are swapping the temporary variable. And they are writing input of input dot length minus 2. This may be the same issue. It will just, they are just returning the last but one. Number is there. So the client is asking what is the difference. They are saying this is swapping logic and this is sorting logic. They were candidates who were having more than 8 plus years of experience. Actually this logic here is in this method. This is the swapping and sorting logic. People are saying this is a different logic. But when we write this code, some different logic gets performed. This is not the case. Ideally they are doing the same. Either we are sorting, swapping, swapping. So they are rejecting. I mean 10 to 10 people rejected. So finally our thought of sharing the best way which handles the duplicates as well. So this is the best way. Here is the best way that will handle the duplicates as well. So now within one for loop this gets completed. Here people were giving 2 to 2 for loop. They are still using 2 to 2 for loop. They are not getting the output yet. And here this happens once per loop. Just take 2 variables. First and second. Swap the loop. Swap the loop for the first and second. Put the loop for the first and second. And then put the Lcf. The input of i is greater than second. And the input of i is not equal to first. Then put the second. So if we look at the end. The first 2 are saved. Now see this is 22. And the second 2 are 45. And if I remove the first 45 from here. I remove the duplicate. So they are giving 3 for 22. So they are giving 3 for 22. So the first question was for 10 people. So there were 2 questions. So the next question also I will share. If people were unable to write. So now they will give 3 right. There is no duplicate here. It is right there. So as soon as the duplicate came. The code is gone. So we have escalated. That people are taking the useless people from the market. So whenever you encounter this type of question. Like finding the second highest number. So always just think.  So this is it. I hope you guys liked it. That's it. Thank you for watching. I hope this video helps you.


Carl Peterson, Energy Educator with North Dakota State University. And today we're here with Bruce Hagen, Residential Energy Specialist with North Dakota Department of Commerce. So what he's going to do is he's going to walk us through this house and point out a few things that if we were looking to buy this house or if this was our house that some things that we should kind of pay attention to as far as the energy aspects of it. And Bruce, can you talk about a little bit what we're going to be looking for in the house today? Well, Carl, what we're going to do is just kind of go through the house the same way we would do an energy audit for the weatherization program which we run. We're going to go and look at the insulation in the attic. We're going to check the walls. We're going to look at the basement insulation. We'll go ahead and we'll look at the windows and the doors. We'll look at the heating system. We'll look at the lighting, the appliances. And just check everything that we would during a normal energy audit. Okay, what I'm seeing in the attic here is a couple different layers of fiberglass that have been put in. There's actually a pretty good amount of insulation, but it's not installed very well. It's jumbled up and piled up in places, there are openings. I guess the biggest thing I would say would be it probably is a good candidate for at least a little blown-in insulation on the top just to make sure it's a good even coverage because what's here is not very even. The other thing we want to check before we do any of that is there looks to be several spots that may be candidates for some serious air leakage around the vents and the water heater chimney. So those should all be checked before any work would be done in here also.  Well, what we want to probably shoot for in North Dakota is at least an R50. Now I would say there's probably an R38 existing in here, so as far as a payback, it's going to be borderline whether adding more is going to actually help. The only thing I'm taking into consideration is like I said, it's not a very even job and with air leakage considerations, I think it's probably a good idea to add a little here. So an R50 is just about, just under twenty inches of insulation. Right, yeah, you're going to want to look at almost two feet in some places. Okay.


Derek, on Saturday night, a bit of a Heisman-Riga reunion is going to be five of you guys on the field. Do you all stay in touch or maybe only with Mark Ingram? Yeah, I just talked to Mark the other day and I'm just catching up. Remember most about... We lost. We lost. They beat us. Fair and square. The technical aspects of the position, even this year, I feel like you continue to improve in terms of reading things, pre-snap recognition, all that stuff as we go. As far as what? Pre-snap recognition, you know, reads, you know, post-snap, just the technical aspects. Are you talking about run game or what are you talking about? Yeah, you running the ball. Are you asking if I improve? Yeah, even this year from last year to this year, in terms of, you know, pre-snap, what you're seeing, and your reads after you get the ball. I feel like I have.  What is it that they do well defensively and are they different from some other teams you have faced this year? They bliss a lot, lose guys in different positions, and then we're doing a good job this year. That's why they're going to have two losses. A contribution had the wide receivers made helping spring you for some of the big plays that you had. I've been doing a great job. I've been doing a great job blocking all year. You know, it's a type of series we have, physical, one that's finished blocks, and I definitely appreciate it. How important this week is that the sustained drives have success in the run game, not only to help this team produce points, but to kind of keep their offense off the field? I think it's self-explanatory, like you said it. We've got to put drives together, score points, try to keep them off the field so they don't score points, because you know, they score fast. They've got playmakers. Have you approved the blitz pickup, and how much are you guys going to key protecting Tana Hill the way they play? I mean, we just got to put, got to do what's in the plan. We just got to execute it, you know, and do what we need to do to protect Tana Hill and pick up the blisses. A little bit more complex and creative the way they come at people. Is there more to diagnose? Yeah, they do a lot of different things. You know, we've got to trust in what we have installed and guard their execute. Muddy conditions for the second straight game of this week. How much is it running back? Do you embrace those type of games? I don't care what kind of way it is. I got to go out there and do my job. It don't matter to me. Being a vocal leader, how important is that to you? And you feel like you talk more to the team? Being a vocal leader, talking more to the team? Are you asking, what you're saying?  Do you feel like that's something that's grown for you in the last year? I feel like I want to say something to the team. I just say it, you know, and I try to leave behind work. You've said or been shown on video saying, why not us? Is that the opportunity before this team right now to, you know, your big underdogs last seed into the AFC playoffs? But at this point it's whoever wins on Saturday night, so why not the Titans? Yeah, I think I explained that through the game Saturday, but yeah, I just say why not us and, you know, just keep down the dog mentality and, you know, just keep pushing.


Hey what's up you guys welcome back to my channel if you're new here hi hello I'm Lydia and as I know I'm ill so please bear with me in this video. Today I thought we could talk about BPD and relationships. Now I'm someone who has BPD and other diagnosis which if you're interested in that I did make a video a while back talking about my diagnosis. There's on my care plan which I'll link up there. So BPD and relationship is an interesting subject because not everyone would BPD struggle with these thoughts and feelings. I'm someone who does struggle with relationships and BPD. Relationships are complicated. We've got friendships, we've got lovers, partners, whatever you want to call them. Family. I know personally I draw relationships a lot but it's not something that I just don't see the need to have a certain relationship. I don't have friends really so I don't have friends.  My ear needs to pop. The reason I wanted to talk about this is because it can lead to serious issues if it doesn't work out. Let's start with love and relationships. So you're in a relationship and then suddenly it breaks up as you break up with. If they are BPD it's good to affect them because we all fear a random man and maintaining a relationship is like a full-time job because you put 100% effort into this relationship and suddenly it breaks down and you left feeling abandoned. It's quite a family relationship. We all have a family. Whether we talk to a family or not is another thing. Using my own experience here, I got into an argument with my mom and my stepdad where I outed everything that ever happened to me on Facebook and how they treated me.  I made a video saying how I was going to cut them off. I'm so not sure I did end up doing that. I get on a lot better with my family now. I'm living in supported living. My point is, is relationships BPD are hard and we go to extremes. We can hate you and we can love you but you don't get both. It's one or the other and it can change so I don't know. BPD has so many symptoms that integrate with each other. Relationships and abandonment hit the home together. I don't know, relationships and BPD are hard and really in the sand. When I said we can love you, we can hate you. There isn't much middle ground. Anyway, that's all I've got for this video. If you have any further comments related to this, let me know in the comments down below. I want to know your opinion. Also, if you want to support the channel, you can do so on Patreon which is linked up there or PayPal for a one-time donation which is linked in the description down below. Thanks for watching and I'll see you in my next video. Peace.


I was taught as a Jew, that we're not supposed to allow what happened to us to happen ever again to anyone. Will you hear about it? You are walking, sir. We're not impeding your way. We're just following you to get some answers, because we have that right. I'm the daughter of a Holocaust survivor. My mother escaped Germany in 1939. I know very well what a genocide can do to a people. And it pains me, aches me, anguishes me, that every day my people are pursuing a genocide against a faceless, voiceless Palestinian people that you have helped to create facelessness and voicelessness too. Wake up to humanity and allow us all to be human to each other. Stop the war. She's fired now. Why are Palestinian lives less important than Israeli lives?


The Nigerian Air Force says it is winning the war against terror in Nigeria. The MAF Director of Public Relations and Information, Edward Gapkret, said this during a parlay with defence correspondents here in Lagos. Plus TV Africa's Destiny Momo tells us more. National security is a major concern in Nigeria's development and the law enforcement agencies say they are working in synergy to combat terrorism in the country. Recently, the Air Force has had their first share of crashed helicopters and the cause of battle against terrorism. However, it spokesman Edward Gapkret says the iron deterred as the war against terror has been won. Absolutely, very well in conjunction with the Nigerian Army and Nigerian Navy, the synergy, the jointness that has been brought to bear because the war against insurgency, the banditry, has been using very fantastic results and as we are seeing, some of the terrorists have started surrendering willingly, you know, clearly an indication that the cooperation that has been brought in the fight against insurgency is really winning. Gapkret also speaks in the plan of the force to improve its capacity to protect the nation's territorial integrity. Last six years, the administration of President Mahmoud Buhari has been very, very kind to Nigerian Air Force. As of the last count, we have over 30 brand new aircraft that have been purchased for the service. These platforms have gone a long way in ensuring that we remain very relevant with regards to our operations. We have also been very fortunate that the federal government has supported us in also revamping those flights that were grounded in the past. Engineers have also been well trained and generally a lot of things are going on that we will be given thanks to the President and Commander-in-Chief. As the set of service chiefs is seemingly in sync with their readiness to combat terrorism in Nigeria, there is hope for better results. Destiny Marmour, for Plus TV Africa.


Concept Formation. Try to edit that out. The joke's on me, folks. He probably won't. Shit. I hate it when I counter-control myself. Anyway, Concept Formation. The first thing I need you to know is a lot of us don't like the term Formation. Concept Formation because it seems like you're having this entity and that is a reification issue and no, don't do that. So performing conceptual behavior is a better way to talk about concept formation. It sounds just a little bit dirty or two, which fits right in with our mission here at Psycho or make everything dirty. Anyway, so Concept Formation. Performing conceptual behavior. So the definitions out there are rather complex. We could make it simple. You ready? Here it is. You want to engage in conceptual formation behavior? Nope. Sorry. Yes. Would you like to form a concept? Would you like to do the behaviors that show that you understand the concept? Would you like to engage in those responses? All you need to do is this. Generalize within a stimulus class and discriminate between. It's all there is to it. So what's a horse? Just figure out all the different types of horses and then compare that to a dog. Identify the differences between the two and identify the similarities within. So generalization within, discrimination between. That's it.


Yeah, let's start. So hi, everyone. So my name is Quentin. I work in the Linux user space team at Facebook. And we're going to discuss a bit about IP tables. More specifically, what's called BP Filter, which some of you might know. Sorry. So we'll discuss what's BP Filter and what is relation to IP tables and what we can do with it. OK, so first thing, what's IP tables? So I'm going to talk about IP tables a lot. But it will mean different things. We'll have Net Filter, which is the filtering framework in the kernel. We'll have NF Table, which is a front end for Net Filter, which use Netlink to communicate with Net Filter in the kernel. We'll have also IP tables legacy, which is kind of the same thing, like a front end from Net Filter. But the difference is it communicates with the kernel using getSockOpt syscall. And we'll also have IP tables, which is the new version of IP table, which use the Netlink interface, like NF Table. Is that clear so far? Because it's a lot of different things. That sounds the same. So Net Filter is the standard package filtering framework in the kernel.  I guess most people here use BPF to do that. But it's specific to this room. And I guess usually it's just Net Filter and IP table and NF table. It's, for example, the default firewall in Fedora. And most of the distribution, like firewallD, for example, it's using Net Filter. So Net Filter is fine, but it's slower than BPF. But on the other end, it's way easier to use. You don't have to write any code or learn, see, or whatever. You just write the IP table syntax and it should work. And there, the BP Filter story starts. So it started years ago in 2018 with patchchairs from Alexei with change from David Miller and Daniel Bochman, which is named BP Filter, but it's not really filtering. It's just a user-made helper. So basically, a kernel module that will, when loaded, start a user space program, communicate with it using pipes. And that's about it at this point. Then at some point, Dmitry Banshikov, I may be battering that, but sorry if you hear Dmitry, has been continuing the series, submitting a V1, then a V2, which is effectively filtering packets. So what happened is that all the get-suck-ups call coming from IP tables with the filtering rules inside were cut by BP Filter and were translated into a BPF program. So effectively, what happened is that it speeds up, sorry, the packet filtering coming from IP tables by creating BPF programs. So it's much faster. And the good side of that is you don't need to change IP table. Every change is in the kernel or in the user-made helper. So it's transparent. You don't have to update IP table. You don't have to change anything. You keep your same rule. And it's suddenly faster than it was before. There are benchmarks of that kernel module at the time in the patch areas from Dmitry and on a stillm blockbuster iPhone yesterday. I don't have much benchmark right now because it's not relevant anymore. So the old one were based on XDP programs to represent the filtering rules. And BP Filter evolved a bit. So it's now based on TC and soon to be on the BPF net filter hooks. And that's the point where I joined BP Filter, been working on it. So I've been working on a V3 of the patch series as Dmitry stopped working on it. I submitted it in December. But then at some point, we found out that we have to find a new home for BP Filter. So it's currently still in the kernel tree, at least part of it. And the patch area is applied to the kernel tree. But the issue with that is it's a bit slow to get it to get reviewed and merged. It's user space code. And I guess kind of people have better things to do than review user space code, which makes sense. And the other thing is that some use cases are not possible with BP Filter as a kernel module. And we have specific internal use cases in which BP Filter as a user space tool would be more interesting. So at some point, BP Filter has been moved to a GitHub repository under the Facebook organization on GitHub. And I've been working on moving that to the kernel module into a user space service daemon. If you go to the repository, it's still a kernel module, a native tree kernel module. So you can build it, use it, and whatever. But my fork currently has BP Filter as a user space daemon. And what it can do right now is you can translate from a set of IP table rules. You can translate that to specific BPF programs. You can have the counters. I also have a proof of concept of IP tables, which is modified to call BP Filter directly. So from IP tables, it would generate a BPF program and insert it into the kernel and attach it to the right hook. Let's dive a bit more inside of it. So that's basically what's an IP table table. That's what's sent from user space by IP table when you add a rule. If you add just one rule to your rule set, it's going to send the whole set of rules for all the chain in a table every time to the kernel back and forth. So a table will be, for example, the filter table. So you want to filter packets. It's going to be inside the filter table. And inside of that, you'll have chains, which are the hook where the rules are attached. So input, forward, output, and so on. Inside the chain, you'll have the rules, which are basically used to match packets. And each rule will have zero or more matches. And a target would be the decision whether to drop or accept the packets. So as you can see, it's a lot of layers, a lot of things inside each other. And that's basically what we want to receive from IP table on BP filter. So when you do IP tables with your rule behind, it's going to send the table and all the chains and the rules inside. And BP filter will receive that and convert it to the right BPF programs. From a very high level point of view, BP filter is the orange part. So we'll have the lead BP filter on the left, which is what will be linked to the client. Let's say IP tables, for example. You have different parts inside the lead BP filter, a generic set of API, which will send and receive BP filter request and response, which is format diagnostic. It's just data you send and you receive to and from the daemon. And then depending on the client, you'll have a client-specific API. For IP table, for example, it's going to be the IPT something call. So you're going to be able to use the IP table specific structures, not to convert that to anything. Just use this structure inside IP tables and send it to BP filter, which will do the translation and try to understand what you're trying to do and convert that properly. And on the daemon side, you will receive the set of rules from a unique domain socket. You will have different parts. So the front-end, which is coupled to the client kind of. So for IP tables, you have an IP table front-end, which translates the set of rules in the IP table format inside a BP filter specific format. So then BP filter can work on a generic format, whatever the client is. The generator will then convert that set of generic rules in the BP filter format into BPF programs. So depending what you're trying to do, you're going to have more than one program. If you're trying to create a new rule for the inputs filter on IP tables, you will have one program for the input filter on IP tables. If you had a rule for the forward chain, it's going to be a different program. So all the rules for one IP table hook will result in one BPF program. And the third part of the demon will be the management part, which is basically loading, attaching, managing the lifetime of the BPF programs. And it will also be used for contest management. So I don't know if that's known or not. But when you define rules in IP tables, you'll be able to have contours specific to each rule, which are the number of packet processed and the number of bytes processed by this specific rule. And so BPF filter supports the contours. Sorry. I had a question to your previous slide. So for the net filter case, you're basically using the new BPF net filter infrastructure? Not yet. Oh, OK. Yeah. So far, it's TC, which has its own set of issues. Because if you look at IP tables, you'll have the input and forward, for example. And the difference is, packet that targeted to a different host go through the forward hook. And there is no distinction of that on TC. So having the new BPF net filter program type is a good point for me on that, because I don't have to have a feed lookup inside each program. I had a couple of questions. So one of them would be around BP filter. So that's like a demon. So obviously, it can restart. So there's kind of a state, or does it push everything to the kernel, and then when you restart, it needs to restore from the kernel.  That has semantics in the way that you run it with IP tables, because everything's persisted to the kernel. So does the BP filter sort of do some restore, or store a disk and restore, or something like that when you restart that agent? Not really, because there's no need for that from IP tables point of view. Because IP tables will generally, like when you start your computer, it's going to push all the rules. The fact that the demon can restart during runtime without calling IP table restore, for example, is a different issue, which is not yet handled. But eventually, that needs to be fixed. And maybe one other I was curious about, the Unix domain socket, what the API is looking like there. Is it closer to IP tables, text-based interface that maybe users are familiar with, or is it kind of there's a new definition, like it's a GRPC, or what kind of an interior? It's just the binary data that's sent. So for IP table, you have the strict IPT replace, which contain all the table stuff I've shown. And that's binary inside IP tables. So there is a request structure on BP filter side, which is filled with that data, and received on the other side. And BP filter know it's coming from IP tables, so it knows that data is a strict IPT replace, and it can then understand what's inside. Why do you need a demon at all? Why don't you use like a IP tables tools, which is stateless?  Because you still have the contours to manage, for example. So you need to keep metadata about what's going on, and where the programs are loaded and attached. The counters are in the kernel, right? No, they're not. I mean, the counters are... So from the demon, starting from the demon, everything after that has no relation to IP table or to net filter. So the counters are a BPF map, which is updated from the BPF programs. So if you don't have any demon like a shared library, just a shared library, you can translate and attach the BPF program perfectly fine. But when IP table will try to add a new rule, you have no idea which map you are using, which program are already loaded, and what's going on, basically. You can probably pin them to BPF first and have some state on the file system to kind of recover. Maybe. Yeah, probably, but it's way simpler this way. And from the user point of view, do you basically have your IP tables, user-based binary, and then link against the BP filter and it will do everything in the background? Yeah. Okay, that's cool. So the main point was that... So I've been discussing with Florian Bestfahl working on net filter and IP tables. And one of the main points was that there is not much change to do on IP tables, for example, if it's something I want to integrate. All the real processing is done by the daemon. So you don't have to do anything, you just push your client-specific data to it and it's gonna deliver everything. Yeah, so coming to what I would like to do now, so there is the patch series, as you said, from Florian Bestfahl, which introduced the BPF net filter program type, which allows BPF program to be attached to the original net filter and IP table hook. So only a few, I think a couple of hooks are supported right now. But that's something I would like to support as well because it solves a lot of issues on my side. But the step to get there is that I need to add support for new, what I call, BBF flavor. In that case, what it means is that I have TC, for example, and TC program where they're specific, receive a specific argument when they start and they will return a specific code for accept or drop or whatever. And TC program are loaded and attached to the kernel in a specific way. And so I have a set of functions to support TC, which I define as a BPF flavor. And the BPF net filter program types is different. So the argument passed to the program is different. The return code I haven't looked into in deep, but I guess are not exactly similar. So I need to support that new BPF flavor. And the other thing is that this program requires DINPTR to be used. So far I'm using direct package access. So I need to go through DINPTR function inside the BPF bytecode to use the BPF net filter program type. And a few more things about adding support for NF table. So that means basically adding, not this one, sorry, adding a new client type to libBP filter for NF table because the data structure is different. I need to add a new front end for NF table also. And when that's done, the rest comes for free. Once the data is translated from the NF table format into the BP filter format, everything should work fine in theory. And a few more things, the user defined chain which are for IP tables. So you have the chains which are input chain or forward chain for example, and you have the rules inside. And the user can say I want to define a new chain which when we go through is gonna log the packets. And that chain, you can jump into it from any other rule in any other chain. And supporting that in the way BP filter works right now requires a bit more work because what's happened right now that all the rules are mapped to some BPF bytecode. So literally like sequentially you go through each rule into inside the BPF program. And adding access to the user defined chain mean we have to jump somewhere to process the chain and then come back to it and continue the processing. And also yeah, extending the IP tables and NF table feature. IP tables can do a lot of things and so far I support like filtering by source destination IP ports and protocol which are the basic criterias inside each rule. But you have a lot of more matches available that I would like to support as well. And yeah, that's, oh, sorry. That's about it. If you have any question, more question. What is the plan with the user mode BP filter infrastructure, did you have any thoughts on that? I guess it should be removed at some points. I'm not gonna use it if anyone wants to do the same thing but still in the Canon module, feel free to go but I don't think it's useful anymore. And long-term, do you plan to support anything that IP tables has or just something enough for Facebook too or like what is the long-term story for? That's a good question. So we have used case internally of team maintaining their own BPF program for firewalling stuff. And that's ideally would be a solution for them not to have to maintain a whole BPF program. When it comes to IP tables, it's like the set of features of IP tables is very wide and the set of features of an F table is even bigger. So I guess it depends on what's actually used probably more specifically for us in the first time. If someone wants to use BP filter and tell me I want to use that, I might be too out, you know. But yeah, so far it's driven by getting something that works fine. And what use case we have? Okay, because I guess from our point of view, we mostly remove type of tables everywhere from the fleet except one place where we actually use NF tables. And for me, if the back end of this NF tables is BPF, it's easier to support because we have like a lot of BPF expertise internally. And now we, I guess, we have the only option is to support NF tables, which is things no one understands. So I guess at some point we'll probably check out what you have and try to switch convert. Yeah, I understand. And so far the front end is IP tables and eventually NF tables because that's how it started basically. But we have way to define filtering rules for the containers internally. And ideally we would have a new front end for that kind of rule definition. So the purpose is also to support things that are not supported by IP tables. I think about, like we have set of hosts inside what we call an SMC tier, which is a naming domain, which contain different hosts. And we would like also to be able to filter by SMC tier. So by pool of hosts, which is not possible on an IP tables, unless you do every rule for every IP. All right, thank you very much. Thank you.