So, yes. Good morning. I would like to request one of us to please lead and pray. Anyone? Okay. Yes. Yes. Can you please go ahead? Father, we come to the throne of grace. Thank you a lot for the day you have given us. Thank you for this. How we're going to spend it learning about fasting and prayer and decision. Lord, we thank you for the day you have given us. We are as we are going to learn about Lord your word. Lord, whatever we are going to learn, Lord, let it should be added to our knowledge and it should be used for your kingdom expansion or your glory Lord. All glory to be given to you Lord. In Jesus' name we pray. Amen. Amen. Amen. Thank you. Thank you. So in the last class, we talked about fasting and you know that it can be, it should be done the way God wants us to do it and we talked about the chosen fast and so how it was not so much about the schedule to follow, the things to eat and not to eat but it was more about heart attitudes. It was more about our relationship with God. It was more about our relationship with people, being righteous, being fair. Okay. And that God sees the life and God is more concerned about our life rather than just our activities. So that is to help us understand that we must not become like Pharisees. You know, sometimes faith is, we make it ritualistic. We make it very, between God and us and people, we make things very complicated. We make it religious and traditional. God is not interested in those things but he goes for the real deal. He goes for the very life, the attitude and the motivation. So that is what we understood. We read from Isaiah chapter 58 and we saw how, you know, beautifully that passage tells us that fasting is to be obedient to God. You know, we don't try to impress him and say, oh God, look what we have done and why is it that you're not listening to us and God wants us not to do it out of selfish interests. But we do it in order to please him and God looks into our life and God made so many comments about relationships and preparing themselves in the right manner, their hearts. And also, we saw how there is a lot that talks about compassion and mercy for those who don't have. So all this we have seen. Now let's go forward from there and see why is it that we must fast. So we can fast for various reasons. We generally, fasting, we've seen, you know, you put on sackcloth, ashes that is all symbolic of denying self. We deny self. So in a moment of repentance or in a season of repentance, maybe we just feel like God, you know, I want to draw closer to you. There are things in my life which are not pleasing and I want to fast just to let you know that I'm surrendering. I'm confessing the wrong things that I have lived with so far. So it's showing our repentance, showing our turning around towards God. So that is one reason why we could fast. And fasting is also humbling ourselves, isn't it, before the presence of God. So it could be a way of us saying, okay, God, you are God.  So we would see people in scripture do things like this. They humbled themselves by fasting and they just came before God. So we can humble ourselves through fasting. We can also seek God. But remember, we had that discussion where we said that if we want to hear from God, excuse me, we said how fasting intensifies our focus. Fasting strengthens our faith. So all these things will help us hear better from God. So if I want to hear from God, okay, God, what should I do or speak in this matter, then I can fast and I can pray. I can fast for deliverance. I can fast for direction. I know I can fast to receive God's mercy. So many reasons to fast. And in scripture, there are beautiful examples. King Jehoshaphat, he had called for the people of Judah to fast during the battle in 2 Chronicles 20. So when they fasted, we saw how God delivered them supernaturally. The enemies started fighting themselves and Jehoshaphat and his people were delivered. So for deliverance, he knew that for victory and deliverance, I must fast. So he engages in fasting with the people. Nehemiah was the one who heard about the walls of Jerusalem being broken. But he takes time to fast and seek God before he gets into the assignment of building the walls. So what was he seeking? He was seeking clarity of vision, clarity of thought, clarity of his call. God, what is it that you want me to do? How do you want me to do this? So he fasted. He also, as he humbled himself, we see that he received the favor of the King. The King gave him the provision that he needed to do the work that God was calling him to do. Isn't that amazing? The people in the natural are supporting God's work and purpose for us in our lives. And God can do that. And Nehemiah sought God and God made this possible for him. Ezra, again, for repentance, he fasted. For direction, he fasted. He also asked the people to fast. So he told all his people to fast and they sought God's direction in that way as a community. God, what is it that you're going to do for us and how are you going to lead us? Esther, once again, Esther for deliverance of a nation. Esther fasted.  So she fasted. It was a difficult situation. Maybe a difficult, for her it was a difficult political situation. There was a decree and if that decree went, it was taken up, that would have meant the destruction of the Jews. But Esther had to do something. The people had to do something. But it's not so much they're doing, they wanted God to do something. So what did they do? They fasted. So when we want God to do something about our nation, about the things in our nation, one of the ways in which we can ask God to move upon our nation is fasting. When we fast, God brings that deliverance and situation. In the case of Esther, it was turned around supernaturally. So situations can turn around supernaturally when we fast. Daniel. Daniel was a man given to a lot of prayer, a lot of fasting and what a beautiful example he is for us. For me, I feel like Jesus was a wonderful example. But if you ask me, pick anyone else. I would be really inspired by the devotion and the commitment of Daniel's life also. Daniel, he prayed so regularly, he was given to prayer, he was also given to fasting. Now when there was an interpretation that he had to make or rather, in fact, the king never even revealed his dream to Daniel. But he told him, you need to interpret it. Daniel went prayed, he got the dream, he got the interpretation, he got the understanding and he came back with words of wisdom. So he knew that if he could pray, if he could fast, he can receive understanding from God. So there are instances in the book of Daniel where Daniel is praying to get clarity, praying for wisdom and understanding. So when I want wisdom and understanding in what I am doing, I can fast and that will help me. Now Daniel also fasted when he wanted to see a prophetic word fulfilled. So we can do that. When we want to see a prophetic word fulfilled, this is in Daniel chapter 9, he fasted and prayed. So we can do that. The Lord Jesus, you know, of all people, we could say that he probably has it so great. You know, things on a silver platter, he's fully God and fully man, but we saw his prayer life, how he was given to prayer. Now we are observing his discipline of fasting. Forty days, the Lord Jesus, we are told he fasted before his public ministry could even start off. So Jesus gave importance to fasting and that must encourage us. Now there are a lot of people, before they get into public ministry, they fast.  Well and good if God has called them to do something like that. So we can fast before we get into ministry and any form of ministry for that reason. Okay, even if we need to fast before we preach or something. So for the longest time I used to do that. Before I preached sermons, I would, you know, skip a meal the previous few. Generally it was a Saturday. I would do that and then only I would go preach. So I did it for a long time till a time when I was asked to share in a women's conference and I was given long hours. So the entire day I had to speak and that's when I realized that I couldn't like physically I couldn't manage because the whole day, you know, after you're fasted and then you have to also have the energy to minister the whole day. So I wouldn't say I stopped doing it but I do it less often now. So maybe I prefer to do it before the actual event because I realized that, you know, to do it every time before I speak, that was not something that was practical later on for me. So then I decided to do it. I'll share with you about my personal thing later. You can also, the point I'm making is you can fast and then you don't take on public ministry at the very beginning of your public ministry or every time you minister, you can set aside time to pray specially for that ministry time and fast. We see Jesus doing that. So that's a wonderful thing. Okay, then elders at the Church of Antioch, we saw that they were ministering to God and the Holy Spirit spoke to them. So seeking direction again as a team, as a ministry team. But over here it is more like they were just ministering, fasting and praying and Holy Spirit decided, okay, I will give you direction. So sometimes that happens, you know, you can also just fast and pray to just be with God. It's not always about I want God to show me this, show me that, give me this, give me that. No, but I just want to renew my relationship with God. I want it to be strengthened. I want to seek His presence, just be with God. So I'm fasting. That's what the elders in Antioch were doing. They were ministering to God and the Holy Spirit gave them direction. Okay, moving on, Paul and Barnabas appointed elders in the Church for that, before they did that they fasted. So these are all reasons why we can fast. Again, we have mentioned this, we can fast for ourselves or we can fast for others. We can fast for a nation, a city, a group of people, our church family, anybody else also. So fasting would work in all these ways. Now we are going to move on to the blessings of the chosen fast. If there are any thoughts, any questions, just feel free, you know, we're trying to understand fasting. Okay, and you should be able to apply it in your, in your walk with the Lord. And that's the whole point. So if you have any questions or, you know, just want to clarify how does this work, how does that work. It's good to ask and, you know, get those things clarified. So feel free, you just posted on the chat here or unmute yourself and ask, but I'm going to proceed. Yeah, moving on to the next section, which is about the blessings of the chosen fast. So now we've understood God is more concerned about our attitude. He's more concerned about our relationship with him that we have righteous intentions. And then when we fast, that becomes a chosen fast. Okay, so let's quickly read Isaiah 58 verses eight through 14. Okay, one round, let's quickly read that. And then I'll come and explain it to us. So Isaiah 58, eight to 14. Isaiah 58 verses eight to 14. Then your light will break forth like dawn and your healing will quickly appear. Then your righteousness will go before you and the glory of the Lord will be rear guard. Then you will call and the Lord will answer. You will cry for help and he will say, here I am. If you do away with the yoke of oppression with the pointing finger and malchia stock. And if you spend yourself in behalf of the hunger and satisfy the needs of the oppressed, then your light will raise in the darkness and your night will become like the noon day. The Lord will guide you always. He will satisfy your needs in sunscorched land and will strengthen your frame. You will be like a well watered garden like a spring whose water never fails. Your people will rebuild the ancient runes and will raise up to the age old foundations. You will be called repairers of the broken wall, restorers of the street with dwelling. If you keep your feet from baking the sabbath and from doing as you please on the holy day, if you call the sabbath a delight and the Lord's holy day honorable and if you honor it by not going your own way and not doing as you please is or speaking idle words. Then you will find your joy in the Lord and I will cause you to ride on the heights of the land and the feast on the inheritance of your father Jacob, the mouth of the Lord has spoken. Thank you. Thank you so much, Sidgenu. So we saw here the promises for our blessings. It's interspersed with a couple of other instructions which we've already dealt with. We saw there are some instructions here about the chosen fast where we said pointing a finger, speaking wickedness. We have to refrain from those things and then about keeping the sabbath and extending ourselves to the hungry soul. These are also requirements for a chosen fast. Now what are the blessings? Let's come to that. There are at least 18 statements of promise in this very passage that tell us that God will bless us in these 18 different ways. So that is motivation enough. Sometimes when we don't feel like fasting because it's hard, obviously. It's really hard. But this can be an encouragement for us. When I fast, I am chosen fast. When I bring the chosen fast to the Lord, one thing is that I'm communing with Him. I'm fellowshiping with Him and that is strengthening me. But in addition to that, God is this list of promises, this list of blessings that I can enjoy and that motivates us. I will fast because God is going to bless me for doing this. So the first promise here was 8. It says, then your light shall break forth like the morning. What is it? What is the meaning of that? See, God is light. When we say that He is light, that includes the person of God. He is a God of truth. He is a God of love. He is a God of righteousness. He is the God of justice. All of this is light, isn't it? It is light. He is a God of blessings and prosperity. So when does God shines on us? His light shines on us or whoever He is, that falls on our lives. What can we expect? We could look at our lives and say, God, there is darkness in so many areas of my life. But God is promising and He is saying that I am going to make my light shine on you, which means that that darkness will be expelled. Or we will overcome those challenging aspects of our life. So God becomes that source of goodness who is shining upon us. That source of blessing and prosperity who is shining upon our lives. Because we have chosen to align ourselves, yield ourselves to God through the discipline of fasting. Now, light is also, it's not just God magnifying Himself in our lives. That is God shining on us. It is also that God, when He shines on us, it's like, you know, light is illumination. It is revelation. It's knowledge. So we can also have that in our lives. We can have more understanding of the things of God. We can have clarity about the things of God. Better visibility about our call, our vision and what God has called us to do. All of that. So whatever you can associate with light shining upon the darkness, we can say, God, you're going to shine into my life. And that is more important for me. And that is why I'm fasting.  Now, the next thing we see here, your healing shall break forth speedily. Isaiah 58 and verse 8. So this in other words is just to say that for our wounds, we could be carrying physical challenges or physical sickness, or we could be carrying emotional wounds, emotional scars. Now, when we fast, God gives a promise.  He has a covenant of healing with us.  Now, along with that, he's saying, let's make it quick. We'll make it faster. So that is the understanding that when we fast, sometimes maybe we want to experience that healing from God in our hearts. We want to experience that healing in our bodies. And as we said, it's not just for ourselves. Maybe we want to pray for a loved one who's physically sick or emotionally going through some challenges. We can fast because here is God's promise. And he says, your healing shall spring forth speedily or come quickly. So it makes it faster, hastens it or accelerates it. So that is another blessing we can receive when we fast. Let's continue the same passage verse 8.  So it's a way of saying that righteousness that we walk in, that will make a way for us or it will pave a path for us. And God will cause that to happen. So God is a God who will help that righteousness to lead us forward. Now, we have a lot of other passages in scripture that talk about the blessings of righteousness where we know that righteousness will exalt a nation. So when we are walking right, it is going to bring honor on our lives. It is going to bring exaltation. It is going to lift us up. But in addition to that, God is saying that when we fast and pray, that righteousness is going to make a way for us. And God is going to lead us forward. Now this righteousness is also when you read about the armor of God. We know that the breastplate of righteousness. When we are walking in righteousness, it is actually security. It's like a weapon against the enemy. It protects us. See, when we walk in righteousness, when we walk in the right way, we don't stumble. And I'm not getting the exact verse for that. Okay, let me see. There is one verse I think here. Okay, and there is Proverbs 13, 6. Let me just see. Man, Proverbs 13. 6. Yeah, you can read it, Zitkin, if you have it open. Righteousness guards the man of integrity. But withness overthrows the sinner. Okay, great, great. So that is very clear in explaining what I was just saying. Righteousness is a defense and the breastplate of righteousness. It protects us against the enemy. So in other words, righteousness becomes our defense also. Okay, and God is saying that when we fast and pray, this righteousness is going to make a way for us. And maybe we've been standing righteously and thinking, God, I don't see a way or I don't see this righteousness bringing exaltation or anything positive in my life. But just hold on. As you fast, God is going to bless that and he is going to make a way through that righteousness. Now let's move on. We also see in this passage that the glory of the Lord shall be your rare God. So in other words, it's like saying God's glory will protect us. We know that God's glory leads us, isn't it? When the Israelites were led, they were led by the pillar by night, the cloud by day. That is the manifestation of the glory of God in those ways. And they were led. It was going before them. But God is also saying that my glory will be so tremendous on you that not just ahead of you, but even behind you. Even behind you, my glory is going to take care of you. Now we can think about the time when the children of God, they crossed the Red Sea and the Egyptians were following after them. But what happened? When they tried to do the same thing that the Israelites did, they were not able to. So God protected the Israelites. What was protecting them even behind them? God's glory, right?  And God will, when we fast, when we align ourselves to God, what a beautiful thing God says, my glory shall be your rare God. So as if it was not enough for the glory to be ahead of us, God's glory is divinely protecting us even in areas that we can't see. In other words, when we look behind us, if something happens behind me, somebody attacks, I really wouldn't know. But God is saying, even in those situations, we are not the God who protects you. So that is the understanding that we have when we say that God's glory will be our rare God. Let's just continue. Verse 9 here. It says that, then you shall call and the Lord will answer.  So answer prayer. As it is, we've seen that God wants to answer our prayers. And when we pray in the will of God, we are aligned to answer prayers. But in addition to that, God is saying, I want to answer you quickly. You will cry and I will say, and he will say, here I am. So God wants to be available to us. God wants to respond to us. And how can that happen in a speedy manner? How can we walk and answer prayer in a consistent way? Fasting really can help us do that. So it has a place for answers from God. Verse 10, your light shall dawn in the darkness and your darkness shall be as the noon day. Very similar to what we discussed earlier where God will shine on us. His light will shine on us. We are being told that our light shall dawn in the darkness. Just think about your own life and if we feel that it is dark, God, look at Jesus. He said, I am the light of the world. And he also said, you are the light. You are salt. You are light. We are here to shine God's light. God is going to make our lives bright. And it says, your darkness shall be as the noon day. For us who are, you know, obedient believers and who are practicing this discipline of fasting, even our most challenging situations are not that challenging, you know, to put it in a simple way.  Your darkness shall be bright. So, because I am with you, your challenges, you know, don't look at it as an isolated thing where I am not there. If I am there in it, you don't have to worry. That's what God is saying. Your darkness shall be as noon day. Just think, in other words, you can say that it talks of the help of God. God's help is so near that we can cry. He says, yeah, I'm waiting to say, here I am. And then also, your darkness shall be as noon day. So, God's help is available in such a wonderful way for us. And this happens. God says, I will bless you if you partake of the chosen fast. Now, let's move further. Verse 11, it says, Lord will guide you continually. God's guidance. We will not lack God's guidance constantly. His prompting is there, constantly. His leading is there, telling us, okay, do this, do that, go here, go that, you know, go there, talk to this person, take these steps. So, how can I have continual guidance? One of the additional ways, now, when you read this passage, we must not come to the conclusion that, yeah, okay, I'll only fast. I won't do anything else. Then I'll have all of this. It's not like that. You know, we must not forget the wisdom of God's word in other passages. We know how God guides us. He guides us by the prophetic word. He guides us by the very word of God. We are not discrediting those things, but we are adding to it. And we are saying, yes, along with all that, if I add fasting, a chosen fast, God is promising us and saying I will bless you with continual guidance. So, you know, that is amazing. We want to have continual guidance from God and satisfy your soul in brought. So, again, similar to our darkness being like the noon day, we are told that even if we go through some dry seasons, okay, we can still experience the deep satisfaction of God. Or in other words, we know Jesus said, I have come that you may have life and have it in abundance. So, how can we have abundant life when we are going through difficulty or lack or, you know, maybe, I don't know, maybe some sickness in the family or strife or so many things, right? External pressures. We can still have abundant life. Yes, problems are there, difficulties are there, but in the midst of that, we still have the zoe life of God. We are living that zoe life, abundant life of God. And when we fast God is saying, satisfy your soul in brought. Even in that situation, God can satisfy us. Let's continue. So, strengthen your bones meaning strengthen the bones means that strengthening the frame, right? The physical frame of who we are. Or you could also extrapolate that and say strengthening the rest of us, your soul, spirit, because we have promises for that in the rest of scriptures. So, basically God is saying health, wholeness, healing that is your portion. I will strengthen your bones. So, can I walk in divine health and healing? Yeah, if we fast, God is saying additional blessing is there for your healing and health as well. So, we can claim that. Then you shall be like a watered garden. Watered garden, how does it look? Green, fresh, flourishing, thriving, fruitful.  I can have that if I am fasting. So, look at all the blessings. So, fasting is never I have to do it. I don't want to do it. I have to do it. We must not have that attitude. When you really study about fasting in scripture, it's so beautiful because it opens the way to commune in an uninterrupted way with God and in addition to that, all these wonderful blessings that God is saying, I'm going to give it to you and you can walk in these things. So, fasting it's actually a joy for us to do. He says you shall be like a watered garden, meaning thriving and then it says like a spring of water whose waters do not fail, abundance, okay, continual, perennial. We can use all these words. When you see a spring of water, it just gushes out, keeps gushing out, fresh water is coming out of it. You know, just looking at the spring you're refreshed. How much more touching that water and experiencing that water.  So that is a blessing which we can have if we fast. Then moving forward verse 12 here it says, those from among you shall build the old ways, waste places. So that is like God saying I am blessing you for restoration. Okay, and we know that as God's people we have an assignment of bringing God's restoration in people's lives. Maybe somebody has come, a friend of ours and they are sharing, hey all this has happened in my life you know, the past and the shame of it and I don't know what to do but God can use me as an instrument of his restoration in the life of such a person. Maybe I speak words of encouragement. I pray for the person. God releases a prophetic word through my life which goes and builds that power of the prophetic word it really makes a turnaround for that person. Now maybe God wants to use us to restore a community of people or a family recently one of the students in another batch she had just shared with me that she is ministering to a family they had a couple of deaths and so they are devastated and she said ma'am they have called me to pray should I go or should I ask like pastor to go, some other pastor to go. She is in another city so I said no if they have called you it's okay you can go and pray not a problem. So she went she prayed, she ministered to them and then she messaged me and told me you know I never thought if I go and I pray it will be such a blessing those people are encouraged now they have hope for the future so they thanked me and all that is what this means you shall build the old ways places a channel of God's restoration maybe in the life of that family or think about our nation we could look at our society we can look at all the things around us we talk about the seven mountains right we can look at the realm of education and think oh it's there are ruins there we need some restoration God can help us be that channel of restoration in anything that has been wasted or destroyed but according to God's purpose that needs to be refreshed and strengthened God can use us in those areas so when we fast and pray through our lives God can touch marriages God can touch families God can touch business God can touch finances and bring about restoration verse 12 you shall raise up the foundations of many generations it is like you know things that were shaken up things that were shaken up maybe old foundations some of the old things were shaken up but we can strengthen them once again how do we strengthen them really strong for many generations so we strengthen these things and you know God can use us to strengthen the old foundations this again it is very similar to what I talked about restoration but over here it is like old foundations is just take for example a godly life and we want that foundation to be strong so that our children can learn from us that generations to come will have that as a legacy God will use us to strengthen those foundations and moving forward you know it says you shall be a repairer you shall be a repairer of the breach so this means if there is any crack or loophole or things that are broken down God uses us as a repairer ok God helps us and when we repair what happens when you repair a wall there is protection once again there is strength there is God's blessing within that boundary so God can use us to repair in line with in line with what we have been saying restoration people's lives we can do that and actually here repairer of the breach also means like a division ok so we can bring about that patching up and that unity and God can do that through us ok when we first he has already given us that promise then restoreer of streets to dwell in wow isn't that beautiful it's a word of healing on our land the streets if they were already ok why would they need restoration God is saying I will make you a restoreer of the streets so that people can live there happily with an abundant life so once again bringing healing upon our land that is possible there is so much to do with healing of the land isn't it restoration of the land when we are engaging in fasting then moving forward and this is beautiful verse 14 it says you shall delight yourself in the Lord you know above everything God I want to see this happen I want to see that happen above everything our fellowship with God is what is our delight isn't it so God is saying when we fast you know we love God we want more of God but that hunger increases that delight increases where you can't have enough of it you can't have enough more and you can't be satisfied with whatever you get how can that happen to an individual when God says I will bless you if you fast I will give you that kind of a hunger for me so it's a beautiful promise that we can have more of God when we fast we can enjoy more of God freely we can do that then again verse 14 it says I will cause you to ride on the high hills of the earth that's like saying you know the life of an overcomer the life of one who is soaring victorious and God can give us that blessing if we fast and you know you could also look at it as riding on the high hills meaning having an honourable life only God can do that only God puts honour on our lives so when we fast God says I will do this for you then moving forward here the 18th blessing and feed you with the heritage of Jacob your father so the heritage of Jacob your father is you know there are blessings upon the life of Jacob and in Obadiah we said that they will possess their possessions remember we said that those go after God they go hard after God they will possess their possessions and the descendants of Jacob it says so Jacob had blessings upon his life and now God is saying those blessings I will give you you will have the heritage of Jacob your father so God is pouring and showering all those blessings upon us so in this manner you know we see that there is so much that we stand to gain out of fasting whereas fasting can be seen only as oh it's too hard it's too difficult it's too painful but look at the other side you know we stand to gain so much so like for me if I think of fasting I feel like wow why should we not do it if it's going to strengthen our relationship with God and bring all these blessings on us okay so yeah that's a little bit about fasting in our APC resources on the website you can also go and look for a sermon series by the title The Chosen Fast and I think it's a four part series it covers whatever I have shared with you but you know you could just go and listen to it over and over again if you would like as well it'll just bless you and strengthen you to move in this discipline and gain the most out of it okay so yeah and oh yeah I told you that I would share a little bit so for me I think I learned that regular fasting is something that we can incorporate into our lives and I also read about you know apparently the Methodists they had a rule anyone who came as a minister for the Methodists they had this rule that every Wednesday and Friday some two days you know the person needs to fast till 3pm or something only then they can be part of the ministry work so you know I read all these things earlier and I thought hey is it possible to have days of the week that you can assign to fasting but then you know when I read it I kind of started trying to practice it so it took me a couple of years actually to get it into my schedule and in general you know normally it's been a part of my schedule in fact I used to do two days a week not the entire day but maybe you know skip your breakfast, lunch and all and maybe the evening meal have it so I used to do that for a very long period of time and then eventually it became one day of the week and I mean to be honest to you actually in this season of my life the last some months I haven't done it but that is my normal that is my normal and I do intend to get back to it weekly fast so in general I prefer this than what I told you earlier before only ministry I used to take it up and fast before I go and minister but then I realized fasting is a normal part of my life then that will strengthen me even more and I have seen this example in our like I have seen pastor talk about regular fasting so I think for years of his life every Friday or something the whole day he fasts and also in our bible college we have this when you all come here for whenever the in-person restarts we have Friday as a fasting day where everyone keeps that fast again you know it's not a forced thing it's your consent you need to be willing to do it and usually that fasting time is closed up with the time of intercession worship prayer and it is you know quite powerful so just some examples and yes also in my life I think I have had some extended periods of fasting as well and one particular fast that I always go back to it was one of the most uplifting and refreshing times of my life because I feel like in that season when I did that fast slightly prolonged fast so much changed I had prayed for a couple of things particularly yes for spiritual matters and also you know for some of the natural things and also my health and I really got a major breakthrough in my health after that one particular prolonged fast so I know that fasting is amazing you know given like if I didn't have to teach and have all these tasks through the day I would perpetually want to fast all the time so yeah just a little bit about what I have learned personally from fasting but please go ahead anything you want to share or ask or discuss we can do that okay just one point I will add here see fasting doesn't mean destroying our health okay always remember that because the same Bible also says that the body is a temple of the Holy Spirit so I don't have the right to you know put myself in a place where I am fasting and I know that it's having negative impact on my health but I need to be aware right and make a wise decision so it's not this or that we can be healthy and we can fast so you know try to do it that way and I am really a true believer of that yeah we can fast we can also fast for extended periods of time but take care of your health take care of your health fast the right way there are some practical ways where when we fast it is good to you know decide how long you're going to fast how what kind of fast you want to have whether you just want to skip you know a meal or two or whether you want to do a Daniel fast then it makes it easy you don't have to focus on it you can fast and keep spending time with God and then you know whether you just want to drink water or all that and then you could also you know take care of your health sometimes people end up drinking a lot of tea coffee and all that when they're not eating and that causes a lot of you know damage actually to us rather than physically and while they're fasting yes the spiritual benefits are there but I'm just saying like take care of your health if you are fasting for prolonged periods of time then you need to know how to get started and how to close it off so that you can get the maximum benefits not just spiritually but also for your health's sake so fasting doesn't mean you know destroying our health so just a point for us okay yes yes Sarah yeah yeah it's the yeah yeah faster my question is regarding we talked about the chosen fast and it was about you know the attitudes we need to have and all that which pleases God so suppose you know we are planning to take a fast how do we you might have covered on this but I was just trying to understand how do we decide like what kind of fasting to take whether it should be a prolonged fasting or kind of incorporating into the week or anything of that sort yeah thank you yeah sure Divya sure thank you so it's similar to prayer what we said about scheduling sometime which is regular and then you have your extended periods whenever you can make time for it so it can be something like you know as I told you if we can incorporate fasting into every week of our lives that would be good I I really believe in that so every week if you can just have a day or two whatever works for you you schedule it now in addition to that if you have the freedom in your schedule you can also schedule maybe weekends weekends in a month like in two months you pick a weekend and then you kind of you know schedule it so these smaller fast you can schedule Divya and that will be helpful you don't really have to say okay when I'm led by God and all but prolonged fast I think it is it's better to have an impression in your heart where you feel like okay if I'm going to fast 21 days then I need to really be impressed by the Holy Spirit to take up something like that now I do know of people who every year they have time set aside you know every January I fast 21 days but again they have made that commitment to God so as led by God so prolonged fast something which is more than seven days or so I think it's better to pray and hear from God and then take it up but I think anything below you know things like twice a week or over a weekend three days up to five days seven days that you can always schedule okay okay pastor yeah yeah I just wanted to share one thing regarding this 21 days like it's kind of a testimony like I had been doing it with one of my friends so it is it was basically for her family because through the COVID time they the husband lost the job and it was a very pathetic situation but miraculously after these 21 days he is getting a job they are being restored to their even blessed even more than the initial status so yeah I just wanted to testify to that yeah thank you wow amazing amazing praise God thank you Divya for sharing that yeah Zellie told me do you have anything to share about fasting and prayer I know that there is a lot of fasting and prayer that goes on in your church Zellie is able to hear yeah currently we are fasting for the coming days and like the Holy Spirit is really like revealing things to us and we are expecting great things that the Holy Spirit will manifest so yeah we are looking forward and also like the last session like we had on the Holy Spirit in that time like I was just reminded of the song Waymaker and you know like the song it really blessed my heart and I was just praying and asking the Lord what does it mean and the Lord reminded me like he is a promise keeper whatever you all are praying it will come into flourishing you know that he will work in science wonders and miracles and we are expecting great things from the Lord yeah so do keep us in prayer so yeah thank you yeah yeah thank you thank you Zellie so yes class that's a little bit about fasting I know we've gone over time but again are there any more questions because this would be our last session on fasting okay so if you do think of something and you need clarification you can always post it on the the stream page on the Google Classroom and let's take it up because there's so much you know about fasting out there and and yes those of us who have never tried it I just want to encourage you maybe in a small way and feel pressured to do it you can pray and you can do it whichever way either you skip a meal or you do a Daniel fast but gradually gradually you just make it a part of your everyday life and we just read so many wonderful blessings that we can actually receive from God when we do the chosen fast okay so alright let's close off class and I would like to request somebody to please pray as we wrap it up yes yes Divya thank you father thank you for helping us father lord to attend another session father lord where we get a deeper understanding father of your ways father of how you want us to live our lives how you want us to get closer with you father lord we thank you and praise you father for Pastor Nancy for all the principles father from the bible that she's taught us father lord thank you lord for her experiences her testimonies lord thank you father for her life you bless her immensely father and even moving forward father lord all that you have planned and prepared for her lord may you bring it to pass father in your own beautiful time father I pray for each and every student father lord bless them father and father help us lord you know all our needs father all spoken and spoken needs father even before we come to you lord you know it in advance father but as we pray to you father lord you reveal your will to us father as we father lord even lord as we learn today lord about fasting thank you lord that you have given us this provision father lord you help us father that we make use of all these provisions that you've given us father thank you lord that you have written in your word all the benefits father lord all the blessings father when we make use of the provision of fasting father lord I pray that you quicken our hearts father that we be able to decide father lord how to father in which always father whether it is through prayer whether it is through the study of your word whether it is through fasting lord whichever way father you want us to father have a closer relationship with you lord to know you more father because your word says knowing you as eternal life yes father you help us father that we may be able to know you father in a personal way that there ever we are lord all the places that you have put us father it is for a reason and the purpose father lord that we may be able to represent you well all these things we pray in the name of for lord and savior Jesus Christ amen amen amen thank you thank you so much Divya and thank you everyone God bless you and I'll see you tomorrow we have a class tomorrow as well but we will move to the next topic so yeah see you tomorrow God bless bye


The study found that individuals who consume a low-density diet have a better overall nutrition profile than those consuming a high-density diet. This includes higher intakes of dietary fiber and micronutrients, as well as a better balance of macronutrients. Additionally, those on a low-density diet tend to eat foods that are closer to healthy eating guidelines. This article was authored by Laura O'Connor, Janet Walton, and Albert Flynn.


Okay, so my name is Randy Witt. I'm from the Intel Open Source Technology Center. The talk is a super long title, cross-platform enablement for the Yachto project with containers. Cross-platform not just meaning Windows and Mac, but across Ubuntu distro, or across Linux distros and everything else. So let's get started with talking a little bit about my personal problems. I have a lot of them, but with regards to this, just what got me started working on this in the first place, it wasn't the idea of, oh, I'm gonna create this thing that people are gonna go consume. It was these things are annoying me. What can I do to make these things not annoying me anymore? And so the first problem was the multiple distro problem. So for instance, in the Yachto project, we do QA on an auto builder. And so we're building across multiple distros to make sure that when somebody else is doing that, the builds work and everything else. So when one of those builds fails, and it looks like it's only failing on a particular distro, my options at the time were actually to SSH into the auto builder, clone the repo again, set up a build directory, and then run the build actually on that builder. That's a pain for me. I don't like that, because I already have a workspace set up on my workstation where I'm already doing all my work. The second way to do it would be, you could go create a virtual machine for all the in number of distros that you're testing against, and decide to run one of those when you need it, or leave them all running, which is almost impossible unless you have a ton of RAM. And you could go try it there. And those options I didn't like. There's a lot of overhead for me. So that was the first real problem that started driving this. Another one was that BitBake sometimes leaks processes. So if you're doing a build or something and you control C to kill it, it will try to clean everything up, but it doesn't always do that, right?  And so then you have to manually find them and kill them if you can tell what they are, or you might not even know that that happened, and that's not good either. So I didn't like that, that really bothered me. So those are the two main problems. I don't have a slide for the fact that running toaster was a pain for me as well, and a lot of setup. But that was another one because there is a toaster container I'm gonna talk about. So this is about containers and particularly Docker as a solution. That's what I used. It's not that you have to use that, but that's what I did because it was making my life easy. That's what all this was about. So I'm gonna try to do a quick overview of containers and then also Docker, but it's limited time and there's lots of demos and I'm trying to get through everything. So it's very quick overview and I wish I had more time. The first thing I'd say is containers aren't magic because I've talked to a lot of people and they're based on Linux kernel features and they were there and then people just started using them and this container concept came out. And it's not that the kernel features aren't awesome and amazing, but it's that it's just containers are leveraging these great things about the Linux kernel. So what enables containers as we know them right now is the Linux kernel. So and we're at the embedded Linux conference. So Linux is great is basically what this is saying. But what it does is there's two main concepts that they're using. One is namespaces, which it uses for isolation. And so I listed three here, but there are actually more namespaces than this. And so there's PID network and mount listed here. And those are the common ones that you would be thinking about if you were using a container. So there's a command called unshare that you can install on Linux and you can switch to a different namespace using this unshare command. And in the simplest terms, running nshare and just switching to a different namespace for like processes or network or whatever, you're essentially getting a container at that point. But most of the time, things like Docker and some of the other tools, they also use cgroups. And that's for the process encapsulation and then even doing dynamic resource management of like I only wanna run in these two CPUs or I wanna run with X amount of RAM instead. But that's just another kernel feature. Again, systemd uses that. I mean, everything that runs in systemd, for instance, is ran in a cgroup. And containers are just leveraging that as well. So particularly with the cgroups is the bitbake leaking processes slide that are the problem is cgroups are fixing that is because if you kill, if you look at the cgroup and you kill something in it, everything that's in that cgroup goes away. So I don't have to worry about it escaping. And so the last bullet is just pretty much the tooling that you're using to run containers are going to be using these Linux kernel features. And so I put this slide in here to maybe make containers not seem so intimidating that somebody just went and invented something out of the blue. You can build them up from the ground just using Linux kernel features. And I threw this quick slide in here just as an example of like if I did do a pid namespace. So in the top part where it says inside container, that's a shell running in a container. And so what I did is I ran a command sleep 5,000 backgrounded it and then I run PS to show me the details about that process. So in the top you can see that the PID is 32. Well outside of the container, I ran the exact same PS command to show me what that process was. But you see that the PID is 8257 there is the exact same process, but for all the container nodes and everything that runs in the container sleep 5,000 is PID 32. So that's what it's doing is it's containing that process space, but it's just using a PID namespace from the kernel to do that. So the other thing is Docker specifically, right? And I mean the nice thing about Docker or one of the nice things is like even if I don't talk about something there's tons of documentation on Docker. Loads of it on the internet. So you could probably find every answer that you had a basic question about on Stack Overflow because somebody's answered it. But the simple idea is that there's a thing called a Docker file that has commands in it that say how to build an image.   So basically a snapshot. So any changes that you would make to the file system in the container will go away when the container exits, right? They're temporary or ephemeral. So you can commit those changes back but you actually have to take extra action to do that. And so usually what you'll do to get around that is actually bind mount something in where you're actually gonna put output. So here's a sample Docker file, super simple and you don't have to understand this completely. Like I said, there's a lot of documentation about this. But the first line is just saying I wanna base this on this image that already exists. So in this particular case I'm basing it on Ubuntu 16.04. So that means I can use app get and everything else that I would normally get in Ubuntu 16.04. So then the next command just says hey I want you to go run this to install Python. So I go install Python into this image so that would make sure that when I run an instance of this image it's gonna have Python in it. So I can use it. And then the last line is just what runs, what command actually runs when I say hey actually go start the container. So in this particular case even though I installed Python which is just useless for this if I said run the container all it's going to do is say hello from inside the container and then exit. It would be a very simple container. So the way that you would run a container is with the Docker run command. And this is basically the format that every single Docker run used in the presentation would follow. And so the first two arguments are the dash hrm and then the dash it. And for the most part in all of this you can just ignore them. But essentially what's happening is rm when Docker run starts a container after the container exit it leaves it around. And there's no reason for that if you're running a container doing something and then leaving and you never plan to start that exact same instance of the image again. So that's all that is. It's nothing super special and you could leave it off and it would still work. This is just trying to help keep your system clean because you'll just have oodles of containers laying around if you don't. The next one is just saying hey I can actually type into the terminal and it will do something and give me a TTY. The next one the dash v is a really important one because it's saying expose foo into the container as slash bar. And you don't have to call it slash bar but I put it this way to try to illustrate what's happening. So essentially if you have a directory called slash foo on your host system and you ran this companion when you were inside of the container it would show up as slash bar. And if you know what bind mounts are that's actually how it's achieving this. And the last option is the name of the image that I want to run. So this could be Ubuntu 16.04 or in this case C1 as the example. So I tried to put this together to maybe visually illustrate how this is fitting together. So of course you have Linux here and I have a directory called slash foo on it. Nothing special. So this is a command that I had before. I left out the dash rm and dash it for space reasons and to try to focus the attention. So what happens when I run this? Well of course Docker's gonna start and he's going to then after that he says I'm gonna create this container for you. And then he says okay now I'm going to expose foo into this container slash bar. And that's really all that's happening. And the reason I left the box around bar the same as foo is because it's really the same thing. It's just called something different. And so then if I ran another command to say hey Docker I want you to run another container called C2 and I wanna expose foo as Baz that's all that's gonna happen. And C1 and C2 are completely different and they don't know anything about each other unless you explicitly tell them to. And they're seeing the same data called different things and that's really all there's to it. So now I'm gonna talk about the containers that I actually pushed out to Docker Hub or the images more correctly. And go through some demos and just try to show you like what's available in case you were interested. So the first one although potentially a terrible name but like I said I never expected anybody to be using this was the Pocky container. It does work with OECore and BitBake. So if you checked out if you clone BitBake and we're using OECore instead that would work as well at least according to a coworker of mine I haven't done it yet but he does it all the time. And so this is what the command would look like if you were going to run the Pocky container. The first part should look very familiar is the boilerplate RMIT. I'm saying in this particular case by-mount this my stuff directory in and expose it as slash workdir and then this other argument that dash dash workdir at the end which I'll talk about in a couple slides. So the default right now is based on Ubuntu 14.04. Richard just told me that they have deprecated that out of the release cycle for the Yachto project now so that will soon say default based on Ubuntu 16.04 because that's the new LTS. That'll be really easy to change. It's basically that if you remember the from line in that docker file that's all I have to change. You can use a different distro for this because I built a lot of them because that was one of my problems that I was trying to solve. And on that line you see all I changed to say I wanna run on Fedora 24 rather than the default of Ubuntu 14.04 is this one argument and then a completely different thing that's going to run. So here's the workdir argument and it's just basically, it has more functionality than this but I'm trying to not overwhelm you while still explaining things but it's essentially where am I going, where is my shell going to be at when I actually get dropped to a shell inside of this container? So I'm going to get dropped to a shell and run git clone or whatever else I wanna run. What is the CWD? And then all of these containers that I've created you can pass dash dash help to them and they will tell you what arguments you can pass to them and I'll actually show that in my demo. And so here are all the distros that I currently have or that we currently have on Docker Hub and I'm more than willing to add new ones if you do pull requests, if you look at the format it's relatively straightforward and very quickly I'll just say the way this is all set up is that when you do a pull request it'll automatically run some builds on Travis to make sure it works, it does some smoke tests and then I can say okay yeah I'm gonna commit that and push it but yeah all this stuff happens automatically and all of these are rebuilt once a week as well because I'm trying to pick up newer versions of packages in case there are CDE fixes or anything like that. I could do a talk about that but. So now we're doing a demo and I screencast this because I actually run full builds and stuff like that so I can speed up time in certain places but make it so that everything's kind of connected for you and it never seems like oh well now let me skip to the part where I've magically had all this stuff run that you didn't get to see run. There's my mouse. Okay so here we're running the or creating a work directory and now I'm, which is where all my output's going to go and how did I get here? Ah, it skipped like 20 slides on me I'm sorry. Okay, so we're gonna go run the, oh it skipped four. God, this is media for me right? Does anybody have any idea why it's doing that? I have no, yeah and I mean and what it's doing is it's not actually playing where I'm at, okay there it goes, sorry. Okay, so we're first running the command with dash dash help like I said you could run just to show that you can and then I go create a work directory which is where all my output's going to go. This is completely the wrong one, just one more time. I hate PowerPoint by the way. Yes, so let me pause it now. Thank you for your patience. So this is the first, you can see that I ran help with the Pocky, the Crop's Pocky image like I said that you could do. And so the first thing I'm doing is I'm just creating a work dir which is where all my output's going to go that is the directory that I'm going to bind mountain to the container. Now I'm actually going to go run the container. Should look really familiar based on like the previous slides and so the thing I'm highlighting here in red is you can tell that you're in this particular case an indication that I'm running in the container is my shell prompt has changed, right? It says now I'm this guy called Pocky user and I've got this crazy hash here or UID. And that's what Docker's doing is saying oh my host name is this magic UID that got created. You can change that but it doesn't really matter. So now that I know that I'm in the container I can be sure to do whatever I want to do and in this case I'm going to act like I don't have anything and I'm doing what I would normally do if I were going to use the Octo project which is go clone Pocky. So I do a clone of Pocky, it happens really fast because of magic and you can see the Pocky directory there. And then of course the next thing you would do right is you're going to source OE and it build in which is all happening in the container just like you would normally do and then you're going to go run whatever commands you would want to run. But before I do that what I'm going to do is what I've done is I've used Tmux to do this but the top half is the container, right? That's running in the container and all Tmux is done is open to shell for me in the bottom that is not running in the container. And so what I'm going to do is I'm actually going to edit the configuration file outside of the container to just point out that you can use all the tools on your host to do your editing and everything like that. You don't have to do that in the container. You can just use the container for building which is what it's for. So I go and I add RM work to this config file outside of the container. I change back up to the shell in the container and I just say, hey show me what's at the end of my configuration. And you can see the RM work is there because my work durr on the outside is the same thing as slash work durr inside of the container. So now we're actually going to do real work which is Bitbake and this is going to be the fastest Bitbake build you've ever seen from scratch. So magic, more magic happening. And so I've finished my build and so I should have core image minimal now. And so I'm going to LS the directory where the image output would normally be to show you yeah, there's actually an image there. So there they are. So core image minimal, lots of them. So now I exit out and I say now my container is not running. Well let's go see what's in my work durr build, temp, deploy, images. And I should see the same thing. And there they all are, right? The container is no longer running but since I bind mounted that directory and it worked. So now I'm going to go run the command again the exact same command but because if you remember I said all I have to do is change one little thing is I change that to now set a WN8 after it, right? So run the same command. Now I'm running in a container that's actually based on WN8 rather than Ubuntu 14.04. All I do is source oenit build in again like I did before and I say Bitbake core image minimal. Now normally this would be almost a no op but because I added rm work it actually has to do a few other things but it's really using the same thing. You can see that it didn't download anything new or go run a bunch of extra tasks that it wouldn't normally do. And the only reason that it even ran the root FS again is because I turned on rm work and that's just something that happens. So that's the pocky container. So now I have another one, there's another one called the extensible SDK container. If you've heard talk about the extensible SDK like if you were at the BOF or something like that or Tim may even have alluded to it if you were in his talk and actually Henry is doing a talk about it tomorrow or this afternoon, sorry. This is a container that is essentially for the purpose of downloading an extensible SDK and dropping you to a shell ready to run any of the commands that you would normally run in the SDK without having to source the environment scripts or anything like that. It does work with the regular SDK as well, the non-extensible SDK. This is just one more time of, this is what I named it when I originally created it and it hasn't been changed yet. But I've highlighted in red essentially the part that is different from the other Docker commands that I was running or the other instance that I just previously serrated the pocky container which you can see that I have crops ext SDK container now which is the image name and the argument which you would be able to see if you ran dash help of the URL and this is where does the installer for the SDK live? And so if it's already been set up it will look at the directory and see oh, there's an SDK here, I'm not gonna go download that for you because it's gonna overwrite this and so if you were going to run it and you've already like set it up you would just leave it off and I'll show an example of that. So more demo. Let's see if I can get it to not magically jump forward. So I'm running this again with dash dash help. You can actually see the dash dash URL argument it tells you what it is and actually a workdir argument which I'm not using but it's all in the help. So now I'm gonna go create a workdir again just to start from scratch. Clear screen. And then run Docker to run the extensible SDK container and I'm Pat and I'm going to put the URL for like one of the SDKs that is published as part of the releases for the Yachto project. So here it is downloading it this is all sped up again because it takes time and it's setting up the extensible SDK and now you're at a shell ready to run any SDK commands. So it says I can run DevTool help so let me run DevTool help and see what happens. Ah, it worked. Magic. So now if I run DevTool build image which would be a common thing for you to do it's gonna actually go build the image and this is all running in the container, right? So you can see the output that is created and I can exit out of the container and I'm trying to set up a process or a mode of thinking here is I'm gonna look in the workdir and I see that the same thing is in the workdir that I bind mounted in even though the container is no longer running.   So now I ran it but he didn't do any setup because he says hey there's already an SDK here I don't have to do that but I can just go immediately into running SDK commands again without sourcing any scripts or doing anything else and you can see that he didn't do anything because he didn't need to because I had already ran DevTool Build Image. So now I'm gonna delete that work directory and start from scratch again to show you the other mode is because it's common that you might download an SDK manually and just already have it on your disk and so I showed where you said go download this for me but here I'm just gonna use Wget to download the exact same thing that I downloaded before except use the container to do. So now I've downloaded it and you can look in the workdir and see that it's called my SDK.sh, right? So I'm gonna run the container again and I'm gonna give it the URL option but you can give it an absolute path and so here's what's happening is I put it in the directory that's being exposed to the container and so now the container can see it and so you use the absolute path that would exist as it is in the container because otherwise he doesn't know about it. So now I can go run this and he didn't download anything he's just extracting and setting up the SDK for you so if you've got multiple ones that you've downloaded manually you can run it that way instead and so even if you just don't like the TDM of running the installer and then running the setup scripts and doing all of those things you can just use this as like I'm super lazy do this for me and Brian if he's in here does that all the time because he's really, really lazy and no I like Brian a lot so last one I'm gonna demo is the toaster container it's very simple it runs toaster and if anybody's ever tried to run toaster you wanna like hit things sometimes when you try to set it up and get it running. I've highlighted in red again the things that you should pay attention to there's this dash P argument that can be passed to toaster and that's essentially if you look at this let's start with the last part of that which is the 8,000 so by default toaster runs on port 8,000 so what I've done in this command is I've said okay well when you run this this time expose it to 18,000 you can do 8,000 again I just made it different so you can see there's you can pick what that is so you say running on port 18,000 and I say running on <IP_ADDRESS> because I only wanna show it on local hosts I don't want everybody on my network to be able to see this you don't have to do that but I yell at people that don't so because there's no authentication mechanism for toaster and basically then they can just go start running things on your machine if they find the page so local host is good so here we're gonna go run this stuff more fun same thing I've setting a process hopefully create a work directory you see that I'm adding this new argument to it that says hey run this on port 18,000 instead and bind mounting the directory in or specifying where it's at saying hey go do toaster so it goes and it starts up toaster and it's actually faster than if you did the first run of toaster yourself because normally when toaster runs it downloads a bunch of stuff from the layer index and all of these other things the toaster container's already been primed with all that information so it did it for you so now you can see it created some files here and so let's switch over to web browser now because this is where you run toaster stuff and so I could go in here and I'd say okay show me what's running on local host 18,000 and I get the toaster splash page I'm actually gonna go in here and go through the steps of actually saying build something like I've created a project I go over to the build and I say let's build core image minimal because that's what I've been doing in everything else and I say build and once again by magic time travel I make this happen super fast and it finishes and I can have and this is what you would normally see on a toaster output screen right but this ran in a container on my Linux workstation and you can see okay well I have some output on the shell that toaster spit out as well where it was doing some work let's go down and let's see what's in build toaster 2 where it would have put the output are my images actually there well they should be so there they are right just like in the other examples except now toaster ran this for me so if I exit out of the container I can go run I think I do yeah so I'll go run Docker again the exact same command and the reason I'm doing this is to show well I just ran this one run of toaster and I created this output let's use the same work directory and see what happens when I go to the toaster web page now oh well it remembered right because the instance of the container was just writing data out into my work directory none of that's preserved in the container the container's just running toaster and using data that I are using a directory that I told it to use so ran the container generated some output exited the container and I can go back and run in any other time and get back to where I was in my toaster state so that's all of the ones actually there's another one but I don't have time to talk about it these are the important ones so so other platforms right that's really compelling and interesting to a lot of people why because Bitbake does not run natively on Windows or Mac and there are technical limitations not I won't go in a lot of detail not just running Bitbake but the problem is you have all this metadata that's going to go build all of this other stuff and the problem is whatever it does has to also work natively on Windows and Mac and so all the tools that you might use all the native tools or whatever you have to make all the all the metadata and everything that it does also work and that's very difficult so and I say running container of the Mac OS because that's what I'm going to demo today so the differences basically are set up and there are instructions at this link and I think they're trying to move them to the Yocto project wiki instead but if if they're lacking if you go try to do this they're lacking or something please tell us and we'll update them because the idea is that if you want to use this it's easy to use not well let's go get tribal knowledge everywhere of how to do this so that's the first thing and I'm not going to go through that because that's a lot of it doesn't really follow the trend of what I've been doing here the other thing that's different is it actually runs in a hypervisor so we're running Linux that's what's happening and because Linux is great and what lets us do containers right and the other thing is it uses a Docker volume rather than a bind mount and how to create one of these is in the instructions and and basically it's Docker owns this data rather than your bind mounting something in directly from your host right and I try to go through this in this diagram again so here's where we left off on Linux right so now what's what's going to change so if you see where it had slash foo before I've changed this to a vol and that because that's like the name of the volume that I'm telling Docker to use so it's not an absolute path anymore so I've changed my command so let's go through what is different right the first thing is that okay yeah I'm running on Mac OS now the second thing is I'm running on a hypervisor or running Linux in a hypervisor right the next thing is foo goes from being in Linux to being a volume that for that Docker owns right but it still looks like bar and bass to C1 and C2 and so the question then at that point is well I'm running this on Mac OS or whatever in Docker owns this volume how do I see the data on my Mac right well what I did is in the instructions as well I made a container that you can use for Samba and so if you followed all the setup instructions you would run this command which says hey go start this Samba container for me so I can see my data so then what it does is it goes and creates a Samba container that has a WorkDurr in it and it says okay expose that back to Mac OS essentially over IP right so I guess what I wanted to try to show with this diagram is from the hypervisor up it looks exactly the same as it did before right it's the same thing Linux um so here it is running on the Mac so the first thing I go do is I run Docker because it's just an application on Mac OS right and you see it starting up in the top right very timely there's a little whale with containers on it animating so I run a terminal and I run a browser and so the first thing I'm going to do because I'm running going to run the toaster containers I'm going to go to local host 18,000 and there's nothing there right so now I'm going to go back to my terminal that's that's the it's just a term and I'm going to run the exact same command that I was running before except right here you see I have my volume instead of slash foo right because this is a volume that I've created um but other than that it's the exact same toaster command is when I was running it in Linux so I run this very slow type I should have sped that up too and this is very familiar right it's starting toaster let's go back over the web browser and just hit enter and see what happens now other something there the toaster web page so this is all running you know on the Mac and the hypervisor so now I'm going to go over and just open a new terminal or new tab where I'm going to go start that summit container that I had mentioned right all you do after you've done the setup so now you can open finder which is that's what you do on Mac explore whatever and um you can say and that's really tiny and I apologize for that um but what I'm typing in is the is essentially the url of where my Samba server is at and it's the work-dure share now if you're super um or you have super ocular capabilities and you can see that this is one two seven dot zero dot zero dot two instead of one this is a quirk of Mac and I'm more than willing to talk to you about that after but we detail that in the instructions and how to get that to work it's just something you have to do um so now I connect to that server I say hey I'm a guest right and oh there's my output and god it's so tiny um I promise you what it says is build and um if I go up into my container and I ls I see toaster sqlite and toaster web and but down here down here in my nice mac file browser I can see the same files so if somebody uses mac and that's what they're used to this is this would be familiar to them so I go over into toaster and I'm just going to build core image minimal exactly the same way as I would have before now I only gave my hypervisor two cores and eight gigs of ram so this takes much much longer um I still sped it up for you though um but if you pay attention I think it says like two hours and twenty four minutes or something like that um is that what it says ah yeah so it's a really long time but I'm using not a lot of resources um so I can go over here and I can see now I'm clicking on the output directory going to the deploy um and I can see my images in my completely in mac land right the magic is happening to convey to the user that they are doing the normal mac things that they would usually do um and that's what I'm shooting for um and I will say that when I started working on this I had no intention of doing mac or windows honestly um that was just kind of a gift from the docker people with the fact that they've made their hypervisor so transparent because yeah you can do this with virtual box in all of these other ways right that's not anything new but the transparency of oh I just opened a terminal and I run the exact same commands that I showed you in all the other demos and workflows is this that idea of like I've set up a workflow around docker that works why not do it on the mac why not do it on windows if um help me out with doing this nice hypervisor and I guess the question would be what about windows um well there are instructions for windows for windows 8.1 and so and it uses the docker toolbox which I'm not particularly fond of because it actually it tries to be helpful and it installs virtual box and still tries to be transparent but it's not quite as nice as on the mac on windows 10 where you have hyperv it follows much more this um this mode of like oh wow it's really transparent right because you're it's using hyperv as a hypervisor and so it doesn't have to install anything else I don't yet have instructions for windows 10 on the wiki um we intend to do that or if you're particularly motivated and really want that I mean you can help out and and write some it's really straightforward um alright do you have any questions yes oh yes thank you Tim how about now yes so how do you the question is how do you version your code with your build environment so let me make sure I'm I'm understanding what you're asking um are you talking about the changes to the metadata or um well you might want to upgrade yachto at some point right so the trick is that I'm putting all of the stuff that is persistent in this work directory that has nothing to do with the container right so you just do that however you want right because it's not taught it's not attached to the container in any mechanism whatsoever right so you go clone pocky and you put it in a directory and the container is just running command it's just letting you run the command so it's just a fancy wrapper of if you go to the yachto project uh reference manual and you look at it says you've got to install get you've got to install these other things right it's it's a quick way to say I don't have to do that and then I can use this to show this to show this to show but you don't have to clone inside of the container actually my workflow that I do is I actually bind mount which is an advanced thing and I'm more than happy to talk about it later but I bind mount multiple directories in there one of them is my source directory one of them is my build directory and all of these other ones right so it doesn't all have to be in the work or the reason I set this up is so that it's a I did it that way so that's a easy introduction or quick way to get into it and then you can do it as flexible as you want but except in the case of toaster toaster actually does have a clone pocket and we actually keep multiple versions of the images out there so you can use one based on morty you can use one based on actually master and you can use toaster based on I guess krogoth is out there so in that particular case where we have actually cloned a version of something we have multiple versions but for the pocky container in the extensive wask container it doesn't matter because all the all the code is coming from the user is that answer your question yeah but I might I might follow up with you okay absolutely yes oh Mike okay it just so I actually have a couple of questions and you can stop me okay so uh I've been using a docker container for like three years now to build and your design approach is a little different than mine so that's where my questions stem from you kind of hand waved over user ID so by default the containers will be root so obviously you're creating a container because pocky does not like to be built with root uh how are you handling user IDs um I could actually probably do a talk on that okay I feel like how I got quick is um so that's what that's one of the things that's magic about the worker unless you pass in arguments okay looks like the uid and the gid of the worker I've set up a sudoers file that allows me to run user add commands it dynamically creates a user when it starts the container that matches that so every single time you run the container dynamically creates a user inside of that container that runs what you that lets you run what you want so then you match but you're not going to be matched to your outside user yes you are we'll talk about that more after offline yeah so uids are not they they're uid and gids are I know it's like so there's no name attached to them if you're fetching the outside uid and gid then the mac should just work just fine without having to do samba because that yes it does it doesn't you don't need to do yes it's for because I was doing the cross when I did originally when I originally that would not work on windows right correct yes so yes it would so you do not have to use a volume for mac it would and he actually does bind mount directory straight from yeah that's on my but there there's a bit of work that I did I wrote a little uh application called user setup and and I did the sudoers thing because I won't let you actually create a user that has the zero id and that's not for security that's for me to try to prevent the user from shooting themselves in the foot right I accidentally ran a root and I didn't mean to uh and I guess last question would be why all the distros why not take an approach of just dumb it down and present the container so like for example I have all the people that I work with alias what I just have a script like containerized it's like just install that an alias bit bake and dev tool to containerize bit fake containerized dev tool that way you would abstract away all the fact that there's a container involved at all and you could dumb it down for people even more and you can write whatever wrappers you want around this I'm saying like advocating it so that there is one blessed build environment you see how does that make sense well I'm not well because I'm not trying to push a particular build environment I'm trying to give people flexibility right or actually I was trying to give me flexibility right and in my scenario the multiple distros are very important and I mean there was there are numerous times where you know I'm chatting with the yachto development team in IRC and they're like oh this doesn't look like this works on this distro and I'm like oh let me try it real quick because I can just do it in the workspace I'm already in right that's really important to me and so I guess that's one thing I want to say is I'm not trying to push this at the solution this is just something that I hope that if it's helpful to other people they could either use it as an example or build upon it or whatever they want to do looking at things as they're being one solution that's very good for individual teams and I highly suggest that right like like script the heck out of it right but the what I tried to do is if you notice I say I don't say download the script or run curl and you know pipe it or run W get and pipe it to something else that's a common way that people do things now I was trying to be sort of transparent because I also want to teach people like what's happening and maybe that's the wrong thing for me to do but that's how I approached it when I was doing this but you can it's like I said I if you have great ways of doing things I'm interested in hearing them because the more I learn is the better it's going to get right so I think that's why I put the problem slide in there is try to show like here's why there's like 13 different containers or whatever yes uh you want to you showed like five or six different distros that you're running but are they all just using the same kernel that you're running in the host yeah because these different distros are all based on different versions of the kernel that's why I'm asking this question and how does that keep your interoperability tests valid well the first thing I'm not using the container to do interoperability tests I'm doing them I'm using them to quickly test things that are that probably aren't kernel related right so yeah if you if you want an isolated build environment is the only way that I think that you can really do it right now is to do a vm and not even use uh hardware extensions I mean if you really want to be crazy anal about it right you can't even let it use hardware extensions because then your hardware is impacting what you're running as well right that's probably never going to matter but you can go completely in that direction I did this more as a a flexibility thing of like or for instance another great example is I upgrade to four or 25 right and the compiler now no longer builds OECore or Pocky because it's too new right well now I just go use my container and I can still build it but still keep my you know workstation distro as new as I want or use arch for instance which is yeah so there might be issues with the kernel but except for major ABI changes across like system calls and things like that you usually wouldn't run into a problem and that's what most people who run containers are assuming as well that run them across enterprise right just resources you mentioned your wiki and the deck do you have URLs so and yeah so the original was that wiki URL and then this is all of the individual containers um and I think the I think the wiki actually links to these two and if it doesn't we need to make it do that um what's that yeah this our graphic designer that made me pick that color so no I can't easily honestly um made mine orange they do what's the wiki uh yeah so you can go to the ELC website and actually click a slides link and download all of these um yep that's it right so just another example how to use this I used his same infrastructure to test because I was supporting the Eclipse plugins for Yachto project and I needed to find out for the new distros what was the minimum install in order to allow the Eclipse plugin to be built and I did it with these containers all I did was change a little bit about what was installed and what it was running so this uh framework that he's done is really extensible and I was going to do my dev tool demo uh talk with with the containers on the Mac but I had one package that I needed to demo that didn't build cleanly and we haven't figured out why yet and so that's why I didn't do that no more questions I'm gonna keep this really quick on Windows 10 has it been tried but not documented yet or is it in process yeah so and I'll just tell an anecdote with it is so I have a Windows 10 and I should have clarified it's Windows 10 pro is the only one that has Hyper-V in it right that's I don't know why Microsoft decided to do that but that's the way it is right now they may change it but um pro and essentially up um so I have a laptop it's a Zeon laptop I didn't I got it from somebody else I didn't even know they put Zeons in laptops but is and it had four cores and my workstation is a Zeon that um has like 20 cores or something like that and and so what I did is just a test I'm doing this on Windows 10 is I did a build on um on my Linux workstation and I basically used uh I limited the CPU set essentially I said no you only get four cores right and to try to mimic the Windows laptop that I have I did that and my Linux workstation is actually an odor rev of Zeon then the laptop was right so I did that and then I went and I did the build on my laptop and it was actually faster on my laptop than it was on my Linux workstation because it's because of the improvements that they've made to the Zeon right so I basically faked out using containers the build to say you're only four cores and I still so yeah it works on Windows and if you have the hardware I mean the performance isn't going to be that much worse either it shouldn't be at least from what I've seen but yeah I've ran it on Windows 10 Pro okay thank you yeah the the Mac instructions would for the most part be the same as the Windows 10 instructions you would go download Docker and install it and then do those other commands I just haven't expanded that on the wiki yet