Here's a table where we've asked people to choose their favorite pairs of colors from these choices. The order of the colors doesn't matter, so we need to fill in only half the table. Red and blue is the same combination as blue and red. We can represent this in Java with the following two-dimensional integer array. Each of the rows has a different length, but that's OK. As remember, a two-dimensional array is an array of arrays, and as we said in the preceding video, there's no law that each sub-array needs to have the same number of items in it. When you have an array with differing numbers of elements in each row, that's called a ragged array. Let's write a program to total up how many people gave their opinions in this survey. Here's our ragged array, and we'll set our total number of people to zero. Then we'll run a loop for each row in the array. For int row equals zero, row less than choices dot length row plus plus. The interloop iterates over the columns. Now it's crucial to use choices sub-row dot length as our loop limit because each row's length is different. Inside the interloop, we set the number of people to the number of people plus choices at the given row and column. And when we're out of the loop, we print the results. Let's save that, compile, and run it, and there's the answer. One final note. In this case, each row was one longer than the preceding row. But again, there's no law about that either. Let's switch these two rows, recompile, and rerun, and it still works because we were careful to get the correct number of columns inside the interloop.


Okay. Welcome back after the break. Just before we went for our break, we were studying Chapter 8, Kingdom Authority, and we were looking at the reason why you and I have authority is because of our position. We have positional authority, and we read Ephesians chapter 2, verses 4 to 6, where it says that God has raised us up and seated us together with Christ in the heavenly places. So from this verse, we learn or gather that as believers, we are seated in a position of higher authority at the right hand of the Father and as seated in that place, not just physically, but spiritually, we're talking about our positional authority, where we are seated, we are seated at the right hand of God, that is where we are. Everything is underneath our feet, which means we have authority over every demonic work, every demonic spirit, everything of the enemy is under our feet.  So as believers, again, it's a choice that we can make just like the policemen. There's a choice we could, the policemen can overlook the laws, the traffic laws that are being violated, or he can raise up his hand and stop when he sees a violation. In the same way, each one of us have this positional authority that we are seated at the right hand of God in the spiritual sense, but we can choose to do things. We can either choose to fall asleep and be cozy at the right hand of God the Father and just say, it's a wonderful privilege, wonderful opportunity and just be at peace and fall asleep there with shalom over us, covering us, or we can say God, thank you for raising me up to such a position of authority. There is no other place of authority than this that you could give to me that can be vested upon me. And we can even say, God, if I'm the only person here on planet Earth, I'm willing to use that authority in the environment where you have placed me, and I'm willing to allow your kingdom authority to flow through my life. We see that even in the Garden of Eden, this is what God gave Adam and Eve. He gave them authority to take over, to subdue, to rule, but we see what happened. They sadly gave over that authority to Satan and they became slaves of Satan. So all of us, we were slaves of Satan at one point of time because of our sin, but now since we have been redeemed through the blood of Jesus, we are no longer under the first Adam or under what Adam has incurred because of what he has done, but we are under the last Adam that is Jesus Christ and we receive all of the blessings and receive all of the benefits and thus we also receive the authority that has been given to us. So we can say, God, I'm willing to allow your kingdom authority to just flow through my life, so it's a choice that we make as believers. What do we do with this positional authority? Whether we get cozy and sleep at the right hand of God or we use that authority to do what God wants us to get done here on earth. So I want to encourage us and I want to challenge us that God has vested so much kingdom authority in your life and in my life and it's time that we rose up or we rise up and exercise that God given authority.  Yes, we know we live in this world and yes, sometimes we need to address some things in the natural that needs to be done but as believers, as people who know that we are part of the kingdom of God, as people who know that we are that we have been vested with kingdom authority in our lives, we must also say, hey, how can I exercise my God given authority to address this problem or this situation? Yes, it's a problem in the situation in the natural but how do I exercise my God given authority to address this problem or situation in the natural and I think, you know, this is a challenge. How can I bring in a kingdom authority into this situation? Yes, I need to address it in the natural. I may need to do some things in the natural and definitely you can do it but also remember that everything in the natural is subject to the spiritual. Okay, everything in the natural can be changed from the spiritual. So your problem, my problem can be changed. That sickness can be healed. Those demonic works can be stopped if we come, if you and I make a choice to come through it from the spiritual into the natural. Okay, but the challenge is for us to go beyond what our reasoning tells us, our logical reasoning tells us how we look at it, what we say, you know, but how we think about it. But if we look at things in the natural and say, you know, I'm going to handle this from the spiritual realm because, you know, I'm going to let the spirit of God move and work, you know, I'm going to bring in the spiritual into this natural and things are going to work out for me. So as people with kingdom authority, we must learn to be conscious and live out of the kingdom which is within us and live out of the kingdom power and dominion that is vested in us and we must do this at all times. So what do we have authority over or what are the rems of authority that we have or that we have authority over? You know, just going back to the example of the policeman, it would be very wrong if the policeman tried to come into your house or came into my house and told you or me what we should be doing in our house when he does not have the authority to do that because he's just a traffic police and his them of authority is on the road. It's on the streets. Now when he steps out of his them of authority, his authority doesn't function. So he cannot come and, you know, dictate to me things that I need to do in my own house. Now the same principle applies with you and me as well. We need to understand our them of authority because when we understand that them of authority, then we can see the fruit of the kingdom authority just flowing in and through our lives. Now first, you and I need to understand that we have authority over every demonic work. So what do we have authority over? First thing is that we need to understand that we have authority over every demonic work. Anything and everything that Satan is doing, you and I have authority over. If it is anything that is demonic, then you have authority over. You can speak, you can bind, you can cast out, you can nullify, you can overthrow it.  It's been disturbing me very disturbing dreams and in my dreams and seeing all of these snakes. And you know, I'm seeing all of these kinds of things. And just explaining to you some really weird, demonic things. Now you can look at it in a natural and, you know, you can say some things, but you can also look at it in the spiritual sense and you can look at it and say, hey, I have authority. God has vested his authority. God has given me the right to use his name. He has given me the authority to speak, to cast out demons, to overthrow every work of and the assignment in the schemes of the evil one. And so you can use your authority and say, hey, can I pray over you? So you can use your authority, pray over them, and you can stop the demonic work that is affecting this person. Okay.  And because you have that authority, you're using it the authority and that power and dominion of the King, who has vested it in you, you know, will bring about healing, will bring about deliverance. Okay. Now, it will also cause that person to, you know, experience the tangible presence, the power of the King of this kingdom, Jesus Christ. And it's not going to take that person, 1000 sermons or 100 sermons or, you know, you just conversing with them or, you know, arguing with them, debating with them about why Jesus is the true and living God, but just praying for them, just binding that nullifying that work of the evil one, just will help them to experience the transformative power of Christ, his power, his deliverance, his love for them, and they will know that Jesus Christ is real. So just a single prayer that you prayed as a believer, you know, who knows his or her authority, you know, will bring about that healing, will bring about that deliverance into that situation and can also change the eternal destiny of that individual and it can change the eternal destiny of the purpose of that person. Okay. So you and I also have authority over not only just the demonic works, but also the natural elements, the circumstances, the situations that concerns us that are in the world, things that are affecting us. For example, our jobs, our career, our future, our family, you know, things that relate to us, we have authority to dominate those situations, those circumstances, those things that are affecting us that are a concern for us. You know, of course, for example, we can't, you know, for instance, stop every accident that happens on the road. We don't have authority to do that. But in our personal life, you know, things that are affecting us, the circumstances that are prevailing in our lives, we have the authority to dominate that.    What do we do is, you know, we get into fear mode, we, you know, get so intimidated by everything, we get so overwhelmed, we run to, you know, to pastors from, beginning from the holiest to the second holy, the third holy who, you know, we run to different people, we ask them to pray, but Jesus has given us, the king of the kingdom has given us the authority and the power to speak over the challenges, to speak over the situations, to speak over the difficulties and to exercise the God given authority that he has placed.  Another area that you have authority or you don't have authority over is over people's will, another area of authority that, you know, one area of authority, sorry, that we don't have authority over is people's will, okay, so this people's will is one area of authority that we don't have over, you know, I can't come to your house and say and command you to wake up at five o'clock every morning and pray or four o'clock every morning and pray, I can't do that, I can't come to your house and say, hey, you need to do this, you need to do that, so we don't have authority over other people's will, that's a rem that we don't exercise authority over. We can't control people as robots, as machines, you know, we can't do that, that is what witchcraft does, but we don't engage in witchcraft, but what we can do is we can affect their environment. If there is something that is demonic, that is coming against them, that is, you know, destroying their lives, destroying their peace of mind, then is that is something that we can do, we can step in, you know, and we can pray for them, we can bring in the supernatural, we can bring in the spiritual to invade into their natural circumstances and we do that only if we have their permission, only if they are willing to allow us to step in, then we can step in for them, we can exercise our faith and we can help them. So before we move on, anyone has any questions? So basically we're seeing the realms of authority that we have over and one area that we don't have authority over, we also saw that as people's will. Now before we move on to how do we exercise our kingdom authority, anyone has any questions, any doubts? Okay, if there's no questions and no doubts, then we'll move on. So how do we exercise our kingdom authority? The number one way we exercise our authority is through the words of our mouth, okay? Look at the book of Ecclesiastes, the book of Ecclesiastes says where the word of a king is there is power, okay? So where the word of the king is there is power. So we need to speak the words of authority, we need to issue those decrees, you know, make those decrees come out in the name of Jesus. Jesus said in my name you will cast out devils in my name, but the authority of my name you will heal the sick in my name. So as believers we have been given the right to use the name of Jesus but we need to understand that when we use the name of Jesus we don't use it in terms of, you know, like a magical charm, you know, just saying Jesus 100 times so that something will happen. That's not how we use the name of Jesus but the name of Jesus is when we use it we're actually expressing that, you know, the fact that we have been delegated by him to or we have been given the authority by him to do what he would do if he were in that situation or we are delegated that authority to do things on behalf of him because he wants it to be done in that situation in that place. So, you know, we have been given this authority, we have been delegated this authority by him to do this on his behalf. Now, for example, you know, if I work for the, just for example, I'm the personal assistant of the chief minister of our state and he gives me an assignment and says go and tell, you know, the people or go and tell so and so this is what I told you to do and this is what needs to be done. Okay, so I've been delegated this responsibility by the chief minister and I'm going on his behalf. So when I go there I say, hey, the chief minister so and so has sent me and, you know, he wants this work to be done. So, you know, I'm using his name and I'm saying what job needs to be done and because of the authority of that name that I've come on behalf and the, you know, the authority that has or the assignment that has been delegated to me, the job is done. Okay, the person who I'm giving the job to does it because of, on whose behalf I'm coming, I'm coming on behalf of the chief minister. Okay, the same way, you know, the king of this kingdom, the king of the kingdom of God, the kingdom of heaven, this king of glory has sent you, has sent me and has given us the authority to use his name, you know, and he's given us the authority to go and tell the world, you know, about who he is to preach and teach and also to tell the demonic powers that you have been authorized by the King Jesus to get his work done in his name and that is why when we speak the name of Jesus, you know, demons shudder and shiver and flee and we know that even Satan knows his position and where he is that he is already a defeated for that he stripped of all his powers when we come against it in Jesus name.  We see that he didn't pray to the Father about that fever. He didn't say, Father, you know, if it is your will that you heal Peter's mother-in-law, please heal her. If it is your will that she be healed right now, healer, but what does he do? He just stands there and he rebukes the fever.  So it's not God's design or God is not the author of sickness and disease and it's not God's will that anyone be sick and so Jesus knew that. He knew what was the job need to be done. He knew who, you know, who had given him the responsibility and so what does he do? He just rebukes that fever. He spoke to the fever and what happened? The fever immediately left her. So, you know, when you and I exercise authority, when you and I speak to that condition in the body, when we speak to that sickness, when we speak to that disease, you know, we use our God-given authority. We use the name that the authority stands by, you know, on whose behalf we are standing and when we use that authority and the name that on whose behalf we stand, we see the authority just flowing through us. We see God coming through and working on our behalf. Okay. Let's read Matthew chapter 6 verse 16. Can somebody read Matthew chapter 6 verse 16 please? Matthew chapter 6 verse 16. Moreover, when you fast, do not be like the hypocrites with a sad countenance for they disfigure their faces that they may appear to men to be fasting.  Sorry, I don't think it is Matthew chapter 6 verse 16. I got it. Okay. I was basically looking for this verse when Jesus, you know, casts out the spirits with his word. So, you know, in many instances, sorry, this is not the right reference. Matthew chapter 6 verse 16 is not the right reference. Let me see if this there's any reference in the notes. Mark chapter 16. Let me just look at what Mark chapter 16 sorry about that. Mark chapter 16. Yeah, it is Mark. Sorry, it's not Matthew. It's Mark chapter 16 verses 17 and 18. Can somebody read that please? Mark chapter 16 verse 17 and 18. Mark chapter 16 verse 17 and 18. And these signs will follow those who believe in my name, they will cast out demons, they will speak with new tongues, they will take up serpents, and if they drink anything deadly, it will by no means hurt them.  Amen. Thank you, Anand. Thank you, Rin. So here we see that, you know, Jesus says that, you know, these signs will follow those who believe in my name, they will cast out. So it says that if you, that in Jesus' name, they can cast out the spirits with his words. So when you speak to those demonic works, when you speak to those demonic spirits in Jesus' name, you know, those, those demonic works, those demonic spirits will flee, will leave, will be nullified, every work and assignment of the evil one will be cancelled. And that is our authority and that is how we use it. Even we see that when Jesus spoke to the wind and the waves, you know, what did he, when Jesus saw the winds and the waves, what did he do? He spoke to the winds and the waves.  But what do we see?  He uses his authority. How does he use his authority? He spoke to the winds and the waves and he said, peace be still. So that is the way you and I use our authority. We speak to the elements, we speak to our circumstances, we speak to that situation in our workplace, we speak to that situation in our office, we speak to the situations in our family life, in our marriage, in our relationship with people in the church, whatever. So, you know, we just speak and use the name of Jesus and the authority that he has given us. And we issue the decree to exercise our authority, okay? But if we don't issue the decree, if we don't speak over it, then what are we doing? We are basically, you know, it means that we're just basically accepting what is there, if we don't speak.  I just longed that, you know, it would be like this. I longed that things would change like this. I just hope that our family is like that family. My marriage is like that marriage. My children were also like this.    Why don't we just declare it? Why don't we just say it in prayer and speak God's promises, which align with what our desires are, because that is what God desires and he's birthing that desire in our sense. So even as he does it, we need to speak that, we need to make that our decree and speak that over our situations and our circumstances.  But if we don't, we are basically, when we don't speak, we don't decree, we don't declare, is basically we are accepting what is there and we're just living by it. Okay. So the first thing that, the first way that we exercise our authority is by speaking, by declaring and by doing that by using the name of Jesus. Another way that we exercise our authority is by the power of the Holy Spirit. Okay. The anointing of the Holy Spirit is upon us. The anointing empowers us through overcome every works of darkness. The anointing is the anointing that breaks the yolks, anointing that removes burden. So that is why you and I need to pray and ask God for more of the anointing of the spirit in our lives. Why do we need to pray for more of anointing because it's the anointing that empowers us to overthrow the works of darkness, to speak into our situations. And it's the anointing that breaks the yolks and removes burdens. Okay. Now, we can desire to be a little wired that conducts just like one amp or 1.5 amps of electricity, or you can choose to be that wire that can be that high tension wire that, you know, conducts kilowatts of power. So again, it's a choice. Okay.  And we can also choose, you know, whether we want to be that little wire where we conduct just 1.5 amps of electricity, or we can choose to be that high tension wire that conducts kilowatts of power. So it's a choice that you and I make. God has given us the authority. But what I'm trying to say is, and I'm trying to challenge each one of us to rise up to the, to, to know what authority God has given to us and to use it in the fullest sense. Okay. So it's a choice that we make because the power source is unlimited, you know, the source of power is unlimited. God is unlimited in his power. He is omnipotent. He is unlimited in his supply. And but what flows through us depends upon how much we are willing to yield, how much we are willing to submit, and how much we really desire and long and what kind of anointing that we need. Okay. The Bible says that we will be, that we are strengthened with power in our spirit man, that we are strengthened with power in, in, in our spirit, in our inner man. So we need to strengthen our inner man and not to strengthen it with, you know, just 1 amp of electricity, but, you know, just desire more because it's a God who wants to give us more. He wants to give us that, that unlimited power supply that he wants to give us that we can be people who would, you know, manifest his kingdom, demonstrate his kingdom here on.  Let's pursue God for more of his spirit. You know, we can say that today, you know, we can't see cancer healed, but we can pray and we can say God, you know, anoint me so that I can see cancers being healed today. We can say, hey, in our church today, we can't see the lame walk, but let's pray and say God anoint me because we know that, you know, you anointed these ordinary men in the book of Acts and the lame walked and, you know, they, they went leaping and jumping and praising you and we want to see the same thing in our day and age. We don't want to just keep on saying that it happened in the, in the book of Acts. It happened then it's not happening now, you know, or why is it not happening and we can blame people, we can blame pastors, we can blame the church, the, the congregate, the believers, but let's just, you know, come to a place where saying God, you know, I want more of your anointing because I want to see cancers healed today. I want more of your anointing because I want to see, when I pray, I want to see the lame walk, the blind to see. So we need to be, the question is, are we willing to pursue God for that kind of anointing? Are we willing to say, God, I want, I want more of it, or are we going to be that the church that is just very happy with the little that God is doing, just feeling the tangible presence of God, just feeling happy, just feeling excited in the presence of God, you know, and just saying, you know, I'm just going to worship and praise God because anyway, I'm going to heaven. That's okay. But, you know, in heaven, there will be no demons for us to cast out. There'll be no lame people for us to be, to be prayed over. There'll be no sicknesses to be healed. So if we ever want to do those things, if you want to ever see God doing those things, we need to do it here and now. So let's pursue that. Let's press in and say, God, we want more of your anointing, more of the anointing of the Holy Spirit so that we can see these things happening in our day, in our age, in our church. It's in the Bible. It's for us. And this is how the world will know the message that we are bringing about the kingdom of God. And this is how the world will know that Jesus is the true and living God, Jesus is the only God. And so we need to press in for more of the anointing of God in our circumstances. The third way that we can bring the kingdom of God into our circumstances is to pray, okay? Jesus prayed and He said, you know, the kingdom come and we need to pray. His kingdom come into our situation. We need to pray the kingdom of God come into our problem. We need to pray that the kingdom of God come among the people that we're living amongst the kingdom of God come into our locality, our city, our nation, and the nations of the world, okay? So, you know, when people look at us, they need to look at us as people who can see the kingdom of God, the power of God, the authority of God that is within us, that God has placed, that He has vested in our lives, okay?  You can exercise your God given authority to calm the storm, to bring the healing to the sickness, to undo the works of the devil in that place. So, we need to think kingdom authority, we need to think kingdom dominion, and we need to also have the assurance that we can do that, okay? Because God has gone to the extreme lengths, so to say, to give us that authority, he's gone to the extreme lengths to purchase that authority back into our lives because of what he has done on the cross, he purchased that, he bought us that authority back into our lives by paying the price on the cross, by giving his very life on the cross. If it wasn't for that, for the cross, then you and I would not have the authority that we have today, but you know, Jesus went to that extent to raise us up so that we could be seated with him in heavenly places, not just to, you know, sing hallelujah, not just to sing praise the Lord, you know, choruses or say hallelujah, but you know, that we could be the emissaries of his kingdom here on earth, and you know, bring his kingdom into this one, or we can bring his kingdom into our natural realm, bring his kingdom into our world, and just invade this world with his kingdom authority, his kingdom power and his kingdom dominion. Okay. This is chapter eight, kingdom authority, anyone has any questions, any doubts, anything that you'd like to say. So I hope this is not just going to be a class lecture that you're, you know, that you have to listen, that you are, you know, that you have enrolled in to listen to, but I hope this will become a reality in your life because this is the truth, this is the reality, and this is what God has done for us by, you know, giving his only son and Jesus Christ giving his life so that, you know, we can receive back this authority that he gave to us when he created us, when he created Adam and Eve, he gave them the authority, but he purchased back that authority and he's given that to us, so we need to use that authority. Any questions, any doubts? Okay, if there are no questions, no doubts, we'll end class. I'm not going to begin chapter nine because it'll be an overdose. Okay. We're kind of, we've got a good dose of kingdom authority today. So yes, Anand. Yes, Anand, go ahead.  Yes, Basah, I just have a question. So for this authority to become more effective and like if we, like as you said, like if you want to see signs, miracles, and wonders happen, like, so we can actually practice this like amongst maybe like our own setting, our own place, like where we, we all think like, like, like maybe in the supernatural hour, like we can practice that and, and like, and through that, like will we also increase in our anointing or not? Yes, so you've already been given that authority. You, you wanted your desire for more of the anointing.  There are a lot of things that in our, in our own lives that we see things, circumstances, situations which we can speak over, decree over, you know, and then yes, you can do that even in your sphere of influence. So your sphere of influence now where you're staying is Bible College is your classmates is the other students as well. And then you're in the hostel that you're staying.  So, you know, just believe that you have been given that authority, just believe that you can pray for them in Jesus' name and God is going to work. He is going to do things in their lives. Yeah. Okay. Thank you. Did that help? Yes, it did. Okay. Anand, you had a question or was it just for anyone else? It was for me. Okay. Okay. Thank you. Anyone else has any questions, doubts? Okay, if not, we'll stop here. We'll, I like to give you the first assessment for chapters one, two, four, I think that there are sorry, or there's 11 lessons. So maybe one chapters one to six. And then we can have the second assessment from chapters seven to 11. So do you all want to have the assessment for chapters one to five, and then the second assessment from chapters six to 11, or the first assessment from chapters one to six and second assessment from chapters one to 11? And when do you all want to have that? We have it sometime next week. This is for the online students, not for the in-person students. So request the online students to please unmute and share next week. Okay. You're okay with chapters one to six. Is that fine? Chapters one to six. Is that fine? Okay. Okay. Thank you. Okay. When can we have it online students? When do you all want to have it? You'll want to have it over the weekend during the weekday. Can you suggest some day for me next week, please? Next week, when do you want to have that? Weekdays are fine for all of you. So say we can have it on the third of October and you all can submit it on the fourth. Is that okay? Or do you want two days? If I post that on Tuesday evening, that is the third. Is four okay? Or do you want fifth evening? Okay. Fifth is fine. Is that fine? Okay. So yeah, fifth is fine. Okay. So then for the online students, I'll post the assessment on the third of October, say by 6 p.m. And then you all can submit it on the fifth by 6 p.m. Is that fine? Okay. Okay. This is for the online students and eLearning students as well. Okay. Okay. Thank you everyone for joining class. Have a blessed week and see you all next Monday. Thank you.


People construct for themselves objects of worship. They construct for themselves a God of convenience who permits their plans no matter what they may be and never contradicts any one of their goals. They serve a political Jesus, one that shares their every view on every policy. They have their religious Jesus, one who limits the Holy Spirit's power because of their own personal discomfort. They then say that the true Jesus who moves in power couldn't possibly be the true God. The sin permitting Jesus. This is the one who winks at sin and allows you to do whatever it is that you desire. Well, still forgiving you even if you don't repent. Well, still accepting your behavior even if it doesn't change. Well, doing nothing against wrongdoing. He doesn't judge wickedness. He doesn't judge sin. He doesn't judge unrighteousness. That is a false Jesus. And some people create that version of Jesus for themselves because it sits well with them because then they can still have their sin while still bowing to someone who they believe is the true Lord.


Is there anybody can anyone raise your hand if there's a seat next to you so we can just pack more people in here more There are no seats. All right. There's no seat. Let's let seats left. Sorry There's like a window sill over there. I don't know. All right, it's about time to get started Thank you for coming to high performance theming at DrupalCon Munich 2012 My name is Chris Ruppel more on that later So who am I? I'm Chris Ruppel. I'm a friend and developer at four kitchens I do Drupal stuff occasionally got a couple modules I like doing the core development sometimes When it's not too difficult. I'll let mark do the rest of that Cod and then it needs a little bit of love, but Drush make me as a generator for Drush make So what is this about high performance theming? It's actually not about theming Because no one would come if you didn't put the word theming in a front-end development talk at a DrupalCon so it's actually about front-end performance and The basic idea is that we have a lot of flashy effects and They're all really cool and we've got all these new browser capabilities But it's more important to make stuff that's lean and fast and you can have both and that's what we're gonna talk about here Because users actually want performance over effects even if they don't realize it Because a site can be cool, but if it's not loading quickly then they're just gonna walk away anyway and Mobile devices make the stuff way more difficult latency bandwidth Connection speeds and all sorts of stuff like that it just exacerbates the problems So here's a short rundown of what we're gonna talk about today in order to help Make awesome websites that also run really well Front-end development how can I build and debug faster? Web performance we're gonna talk about how to make pages load quickly When they're actually deployed in live and then some Drupal specific tools because it wouldn't be a Drupal concession without a couple of those So first front-end development your best tool here is actually the browser There used to be extensions and things That you would download and add on to your browser to make them a developer tool But that is no longer the case all the browsers they come with these tools included because they want Developers to use the browser first mosaic was the first browser and it was actually an editor in addition to a consuming device and We kind of got away for that from that for a while, but now we're back into that Development workflow. There are lots of local development tools that help you build sites and I know that Chrome in particular is about to Release a couple features that let you make changes in the browser and then save them straight to disk So they really want you to use the browser as your authoring tool not just a consuming tool Because all these browsers want the open web to win So all the all of them share features and they all have the same kind of development tools embedded in them opera IE even Firefox and Chrome Safari they all want this and then I just want to make a note that any of you are welcome to go and make suggestions to these browser Makers when you're doing your development because they want to hear from you and they want to know what you need so that they can make the browser a better tool for you and There's a couple Twitter accounts go bug them So I'm going to talk about a couple Chrome dev tools tips here And like I said the feature set is similar in all these browsers I'm firebug has to be downloaded for Firefox, but Firefox proper does have some development tools that are very similar So you can get these features in all of the web browsers. I picked one because Chrome is what I use on a day-to-day basis Whoops So this is a cool one if you do responsive web design Now the dev tools can kind of show you what media query is actually The media query that Finally affected the element that you're looking at so if you've got a couple different width settings in a different media query You can see that at a glance now Now this is an oldie the goodie in like Firefox. There's a user agent switcher add-on that's been around for ages But now this got dropped into Chrome proper and operas had it forever Just because of their relatively low market share, but you can override override the user agent and Chrome you can now even override the device metrics and tell it a I am actually 320 by 480. It's got a little Switch button there so that you can simulate device orientation change And they've got font scale factor and and you can even emulate touch events for when you want to do feature detection testing in a browser, which you should always use a real device, but it can be helpful and Then also we've got a disabling cache So browsers will do all sorts of caching that we don't even think about anymore You know, you've got your normal clear the cache To clear out like images you've downloaded, but there's DNS caching There's all sorts of caching that they do and you can disable all of that Like in Chrome you can do it when the dev tools are open. It'll just turn the cache off Period and you don't have to worry about it Which is really good when you're trying to test network latency and like page speed downloads and stuff like that Which we're gonna get to in a minute So network waterfalls are another great thing Not used as often as we'd like but that's why we're here, right? And this should be your first step to debug load time issues So when you've got a page, it's like part of the page loads and then it hangs and then oh there it goes And you're just like I wonder why that was so slow Maybe I shouldn't use so many fonts or whatever, but you can actually figure this out now This projector can't handle the size of screenshot. I took that's my fault. Sorry But you get the idea here the waterfall will show you the exact sequence of downloads that happened in your page And you can see up here at the top that when you open the dev tools There is a network tab that you can access Elements is off to the side there. I'm sure we all use that one very often And so this network tab will show you the sequence of downloads as the browser assembled the page and we've got a couple My first screenshot is not going to show you this, but maybe I can drag it. Nope In the very corner is going to show you the amount of time that it took to download the page That's in the bottom left the next Number there is the amount of data that was transferred So you can see the total page weight of of your of your download of the page and Also the amount of time that it took to download and there are two numbers here There is an on-load which we're all probably familiar with if you ever set up like dream weaver mouseovers a long time ago And then there's a DOM content loaded, which is actually a more important number because that's the point In the page load where we all start to feel like the page is loaded It's when things start showing up CSS starts rendering the page and this is due to the ability of the browser to to pre parse information and Start assembling the web page before it's actually finished downloading everything And so you've got this blue line on the waterfall also that'll help you figure out when your DOM content event is actually happening and The further left we push well left for you for you guys The further left you push the blue line The better your page is going to be the faster. It's going to seem that it's loading even if it takes another second to load Assets if you're doing that asynchronously People will still feel like the page is already finished So if you want more information about browser tools Because this would be this could be a four-hour session just on browser tools alone go read these links I've got all these slides online at the end. We'll we'll have links so I Read more about it. This is from jQuery UK earlier this year and then Yeah, so the next topic here is web performance. How do we make these pages load fast? That's just what we were looking at right So I want to issue a warning here not everything in this section is universal and you shouldn't just take everything That's listed here and then do it all because it's possible that you could even hurt your performance by blindly applying optimizations where none is needed So you want to look at your site and you want to take these tools and you want to test them And you want to figure out what is actually wrong with your page and apply a fix for that particular issue Get good data analyze it So having said that let's talk about some universal fixes You can reduce your HD HTTP requests minify and concatenate CSS and JS Combine images into sprites and move scripts to the bottom. All these things are things that you should always do Regardless of my previous advice Network latency is one of the worst offenders of page performance A lot of times you make a request and then you sit there for 400 milliseconds Just waiting for the server to get back to you now That's may not be a problem for one request if you've got a big image sprite But if you've requested 13 images for a page, you're going to multiply the amount of time that you're waiting If it's not using something like speedy, which is the next version of HTTP So we're not going to talk about any of these these are kind of basic And there are definitely other Drupalcon presentations that have happened in the past and other just web development presentations where this information is available Let's have some real fun I'm gonna talk about a few JavaScript tools Because we all love JavaScript, right? You do There are a couple tools here that I'm just blatantly explaining from South Street by Filament Group They are a shop primarily based in Boston, Massachusetts And I don't know if anyone heard about the Boston Globe redesign Sometime this year or last year, but it was a really really big responsive launch And so there were a lot of JavaScript tools that came out of this because as we mentioned when you're doing any kind of web development But especially responsive when you've got a mobile site to serve and a richer desktop experience You want everything to load fast and you want it to load intelligently So they put a lot of work into making tools that are going to make our jobs easier. Hooray So essential is the first one the problem is that CSS is often loaded when it's not needed we use media queries to to Restrict the display of our CSS on a page but oftentimes even if you split it up into files and put the media query directly in the Attribute of the link tag that does not stop the browser from downloading it. It still goes and gets it So what you want to do is use this tool because you want to avoid CSS from being loaded unless it's truly going to be used A perfect example would be a style sheet that has min width 1,400 pixels or something very large for a desktop and then an iPhone is going to download this or a mobile phone in general And then it's also going to go download those enormous images that are in that style sheet. It's never going to display them It's just downloading it for fun That's not good So essential will only load CSS that is used immediately It is a tiny little piece of JavaScript you instead of making link tags You load up this array of code into the head of your document and then it figures out how big the window is now It figures out how big the window could ever get and then it loads some of it directly And it lazy loads the rest of it, and then it doesn't load some of it Which is awesome. This is free and open source. It is on github Picture fill there is a lot of talk in the Drupal community about picture fill right now But let's talk about the general problem first So we need some images a lot of times we put images in content what do you know and When you're loading an image onto a mobile phone You need a smaller one than you need for a desktop layout for instance and Affecting this a loading a big image can affect the usability and the page speed So if you're loading a big thousand pixel wide image and the device that you're looking at is only 320 by 480 then you're wasting a lot of bandwidth and you're wasting someone's time while they wait to download that image So we need to avoid doing that when possible This is doable in CSS with the other tool That I just mentioned, but when we have content images, that's a little different Luckily, we do have the wonderful image styles in Drupal 7 image cache in Drupal 6 So we have the ability to create different size images and even crop them intelligently sometimes if you've got you know You're willing to sit down and write some code for it But then how do you get those images to be served correctly to the browser? So picture fill was developed to explore responsive images before a native browser implementation emerges Sometimes when web standards are created Someone at Apple headquarters just writes whatever they feel like writing and then we have to deal with it Which almost happened for this, but we had a good Community rally around this and Matt Wilto Marquis is the responsive images community group leader for the W3C and he kind of Helped rally the troops. We've got a couple people in Drupal that are actively involved in this as well And kind of said hey, no, this is not what we want. We we want a different solution here So picture fill is the prototype for that solution that the community is leaning towards and The code is on GitHub again So here's another tool not by filament group. The rest of these are just other standalone tools Modernizer, I'm sure everyone's heard of it and It solves a very specific problem Which is the old problem of user agent sniffing How many people let's get a show of hands how many people have ever done like user agent sniffing or use mobile tools You're like, oh hey mobile. Yeah. Yeah, we've all everyone raise your hand. Yeah and So user agent sniffing doesn't really scale Especially as more and more new devices are created some of these devices are not going to be top of the line devices Some of them are just other Middle of the road type devices. There are other economies that aren't as Developed as you know first-world countries and they also have people who are buying Phones that have what we would consider to be old Capabilities, but it's still a good phone and it still can do the activities that you need to do on the internet and As web developers, we should be striving to allow All people and all devices to access web pages as well as they can So when we do user agent sniffing what we do is we take a tiny little string in the web browser And we make every assumption possible after that We just make assumptions about the user agent string and if you've ever looked at one I don't have one in these slides, but for Chrome example, for example, it has the words Mozilla webkit gecko Safari Chrome KHtml it basically names every engine that has ever been popular in it. And so you can't really be like, oh Safari this must be on a Mac, you know because Safari's on Windows as well And you just shouldn't be making assumptions like that from a user agent string So the solution here is to detect individual features of a web browser That sounds kind of hard now doesn't it but Modernizer makes it easy and As a bonus after it detects the features it can allow you to conditionally load other assets that you might need Were that be feature present or not present and The code here is at modernizer.com or on github if you like github everyone likes likes github so Let's talk about some Drupal tools What problems has Drupal solved already? Speedy module it's pretty cool The problem is that some of the JavaScript in Drupal core is not minified While this might not be your first issue that you want to tackle it can definitely be one when you're starting to shave bytes off and so this module ships alternate versions of core JavaScript and it allows the The it allows those libraries to be minified and to reduce the size of them so you've And I should say that you you probably shouldn't be worrying about minifying files until you've Covered some of the other things that we've talked about already such as pictures and like images being responsive and so forth because As a point of reference here Just removing one JPEG from your website will have like ten times as much impact as minifying your JavaScript You're just doing a lot more to decrease the Total weight of your website when you are Removing big assets than when you're just minifying files But if you have a lot of JavaScript or if you have a web application that's based on 5,000 lines of JavaScript Something like minification is going to make a bigger difference So this project is at speedy Drupal.org speedy And Also, we're adding a scripts at the bottom feature so you'll be able to do that automatically in Drupal. It's cool Because right now there are some really good methods for that but they are not They're not Modulified you have to do it in code So if people are a little averse to writing a hook to J s alter Then you might want to check out this module when we release a new version So modernizer the new version the new Drupal version The problem with Maintaining a modernizer library is that as you add new features to your website You it can kind of be hard to keep track of what feature tests you need inside modernizer so when you Add geolocation to your website and then you want to do some feature detection for geolocation if you haven't added it to modernizer It's not going to be there to test and that's not good but in Drupal we've got all these different tools we've got You know themes that provide pieces of functionality. We have different modules that know what functionality they're providing and So what we can do is we can use Drupal to communicate with modernizer and we are doing that in a library So full disclosure. I maintain this module But we're working on a modernizer load API and a modernizer test API to allow modules and themes to communicate to the The other Drupal modules and themes communicate to the modernizer module what tests they need and then the modernizer module can Give you the site administrator a link to click on to go download your modernizer build and When modernizer 3 comes out not to be confused with the modules 7x30 version When modernizer the JavaScript library gets to 3.0 There will be a modular build feature and we will able to we will be able to assemble these via drush So it's going to be super cool The API right now is does have a couple drush commands to get you a development copy really quickly It has libraries integration We're working on speedy integration And the code is at drupal.org slash project slash modernizer So back to picture fill because this is an important one responsive images are really hard It's not really solved yet as we've been talking about There is a Drupal 7 module. There are actually several Drupal 7 modules that in their own ways Try to solve the responsive images problem I contributed to one, but it was based on an earlier library that is now Just kind of defunct and so we stopped pushing on development of the Drupal module for it but this one that I'm showing you on the screen is the active one that I would recommend going and trying it integrates with image styles and I believe it outputs or it has an option to output this picture tag That is being worked on in picture fill and Additionally, if anyone's interested in Drupal 8 development There is an issue here that you can follow and See how core is going to deal with this for Drupal 8. I I Wasn't at the keynote this morning. I'm sorry, but I don't know if they talked about any of the Drupal 8 stuff So this is definitely being actively developed right now and furthermore The team that's working on the Drupal 8 implementation is actually helping influence the web standard So the the picture tag that is going to hopefully eventually be created The the Drupal 8 team is actually helping Influence the formation of the standard which is really cool because it helps us all solve our problems now and it helps the Standard that eventually gets solidified Will be already working within Drupal 8 So one day people were just like you know what let's just put this in Drupal 8 Who cares if it's not ready yet and the w3 was like oh really okay? well, let's talk about it and But that's exactly how picture fill got created which was a bunch of people saying you know what we don't like the direction that this web Standard is heading It was called source set and it involved putting a huge array of sources in the source tag it was kind of silly so people decided to make the picture tag instead and Drupal 8 is jumping on board and we're helping out So here is the third and probably most important section we've the the links here are Not as numerous but at the same time This is not something you should skip because everyone's found themselves in a situation where you're wondering why Why is this happening to me? so web page test or is one of the tools that you can check out and What it does is it offers? Testing from various browsers various locations in the world and it allows you to test web pages performance as it downloads and as it executes in a browser and this is a good real-world test They're using real hardware and they're not using Like VMs or or you know any sort of emulated software So you're getting the real data and then they push it out to you and they show you all the data on the web page after The test cues and shows up So what does it test? It can attest it can test the initial load time It can test the repeat load time. So once your cache is warm your browser cache That is you can see that oh, you know, it may have taken 400k to download the first page But on subsequent downloads, it's only 39k or something like that, which is awesome That means you're doing really well it will show you network waterfalls the types of Diagrams that we were looking at before in chrome and It will show you the header for every request you're making which if you are a Server admin or you're on the server side performance and scalability end of things That's going to be really useful to you because you're trying to make sure that all the headers are being set Correctly and you're using varnish and all those crazy words that I'm not really like I know the word But I don't know what I'm talking about so point is Go check this out and even if you're a server admin It's your front-end developer will be able to generate data for you And if they say they can't be like ah, but I heard you can go to this website and do that So another tool is a Akamai blaze and this used to be called blaze.io, but Akamai acquired them and This is performance testing for mobile and it does the exact same thing except it uses mobile devices instead Which is pretty handy So it'll show you It allows you to pick which device to test and it'll do an automatic number of page loads So that you can say oh only do this once I'm only interested in the initial load at the moment or if you really want to know about your Load times with a warm cache then you can start testing that after you've solved all your initial load problems And once again, it will allow you to test for many many locations all around the world So it's not specific to San Francisco or whatever You can test from close to where you live, which is awesome So yeah, that's about it That I hope everyone got something out of this and we've got a lot of time for questions because maybe I was a little nervous and talked too fast, but You can go ahead and contact me. I'm a lame six-digit Drupal org user number I am a RuPaul on github and Twitter and everything else and then you can contact me Just email me at chris at four kitchens if you'd like But yeah, does anybody have any questions? Yes Okay, okay. So yeah, all right. We've got a second world publishing website that Doesn't want to create two Mobile and desktop websites, although the primary audience is desktop users just to repeat the question Yep, of course Mm-hmm. Sure. Yes So this is the the the question was when you have a responsive website You want a very lean mobile experience and you might want a more Just a bigger and fuller desktop experience with more content in sidebars and so forth How do you handle those types of page loads and the answer is conditional loading? We covered conditional loading for CSS But modernizer has the ability to conditionally load whatever you want. So you could also use The anchor include pattern which is also by Scott from filament group And this is actually something that could be very handy in Drupal as well so In the context of Drupal you would use this anchor include pattern to Load a block but don't load the content just load the title and Hyperlink it to a URI of the data now. This will be so easy when Drupal 8 comes out because Drupal 8 is going to be magical Conditional loading you want to load things based on conditions And then a type of conditional loading is the anchor include pattern and What happens is if you imagine a Drupal block? The title would be hyperlinked to a URI that contains that content and when the page loads if your browser is Meeting the conditions that say it should load additional content dynamically What it will do is it will follow that URI and With Ajax like fetch the data and fill in that block for you But a mobile user would just see the title and they would be able to tap or otherwise select the title and Then go look at that content on its own as its own atomic block Mm-hmm Yes, sir then when the browser disables JavaScript then they won't get that content and They'll they should know that that's going to happen. Yeah They'll still be able to click on that title and see the content just like a mobile user would Mm-hmm. So there is no loss of accessibility of content at all Yes, can I just answer one at a time and repeat the question? Yeah So the question was about the picture fill work that's going into Drupal 8 He's asking the interface is rather complex and I I Don't want to pull it up right now But it is complex and it's based on image styles and there's media queries in there And just the question is how are we going to make this accessible to a site admin? That doesn't necessarily want to know what a media query is Unfortunately my answer for you since I am not an authority or really an active participant in that particular issue is I don't know so Drupal Khan is a great place to hunt down the dude who is doing it or the person so I Don't know if they're here in the room or anywhere else, but I'm sure there will be a core Conversation or something like that. That's more geared towards future-looking improvements to Drupal, but We may not be able to solve Those types of interface issues within core But that's the great thing about contrib is that someone can come along and clean that interface up in a contrib module and call it easy pictures or something like that and Did you say you had a second part to the question? Oh, yeah, it doesn't it doesn't take into account that an image might be shown twice Yeah, I get I have nothing so sorry Any other questions? Yeah Modernizer actually doesn't address creating sprites There is a website Called sprite me. I don't know Sprite cow. Okay, so there's a couple And there's sass also the sass will do it automatically although The directory based sass sprite generation leaves something to be desired for me at least But there are tools who will actually read the source code and the CSS of your web page And it will tell you what to to put how to organize your sprites because Spriting is a delicate Art that involves, you know, like if you've got a a an image that repeats why you can't sprite that next to something that repeats X because they'll cross over each other and stuff like that. So I would just look for sprite generation tools and There's a couple out there. Maybe I'll add some links to this presentation when I publish the the slides Yes, sir. Yes Yeah, to condense that down that into a question and a statement the no not a big deal The responsive images the are a RESP underscore image module and the Drupal core Implementation is going to cover multiple break points. So I was contributing to another module called responsive underscore images and We only had like one set one break point, you know, it was either small or big That was like 18 months ago though. So at the time it was like way better than nothing You can actually Use a couple of those just depending on how simple or complex your need is I believe the Drupal 8 implementation is going to have multiple break points since it's media query Based and you can arbitrarily set it up yourself, right? The answer is Javascript Yeah, any other questions? Sorry repeat again. Yes, I believe so like I said, I'm not an expert at that particular module I'm sorry that everyone's asking questions about the thing that I don't know about I know about everything else So I Believe that it works off of image styles or what was known as image cache in desix So it you should be able to create multiple styles that may not even be Dimension oriented they can be based on something else because with image styles I'm pretty sure you can write a hook that's just like hey if this module exists make this other image style So it's very arbitrary and you have PHP available to make whatever decision you need to make Actually, okay, so the question was is the work in core? going to Make use of data URIs if people aren't familiar with data URIs You can add a well hold on so Data URIs are the ability to add arbitrary data and It's prepended by the prefix data dash and then you can put a bunch of data in line in your HTML And the question is basically are we going to be able to Use inline data to help make decisions and I'm pretty sure oh data URIs, sorry Okay, data URIs not data attributes. Sorry So the the real question was are we going to be able to use data URIs? Which is essentially the inlining of image data straight into a web page if you've ever gone to Google news and tried to like inspect element on some of the icons when you look at it you'll actually just see a bunch of base 64 text and At the moment, I'm not sure if data URIs are going to be implemented, but again module, right? I'm not aware of any that handle data URIs. I do know that some pretty decent research has gone into using data URIs for Images and unless the image is smaller than about 5k. It's very often not Worth it to send that down the pipe as text Just because of caching and all that kind of thing But you also have to consider how often it's going to be reused and that sort of thing as well. So Get in there cowboy Yes, sir. Yes a point has been made that some of this could be viewed as being for SEO and The counter that I always have to that statement is that SEO is for people anyway so if you do it for people to begin with and You will just naturally have better results. It is very well known that Google places a high high emphasis on page speed nowadays, so That is correct. If you do some of these things and you get your page loading much faster, then you will be viewed more You will you will be viewed as a more valuable website in a search engine. Thank you for mentioning that Did I see a hand way over here on the side? No Cool Yes, yes so LabJS is an interesting one Modernizer load was actually written in response to labJS both of the authors living in my current hometown of Austin, Texas so I've had the privilege of talking to both of them directly about this type of thing and Unfortunately, there is a there is a labJS module and it does work for Drupal but Kyle Simpson the author of labJS had to specifically help rewrite pieces of DrupalJS because all of the JavaScript that is in Drupal 7 core was never meant to be loaded asynchronously and there can be problems when when you just go ahead and do that without you know checking over the code and making sure that things were designed to have Tolerance for asynchronous loading. So there is a lot of thorny issues there and there are different reasons to use different script loaders and LabJS actually has a decent implementation within Drupal. So Yeah, when it works Uh-huh, and sometimes you won't even see it You won't always see a performance boost from just automatically asynchronously loading all of your JavaScript So yeah, we have some dependency management issues also in core, which is what mark was saying that It means that you know when you use Drupal addJS You want to be able to say oh I must be loaded after this but before this and so forth And so there's a lot of dependency management issues that have to be addressed if we were to go and put The ability to asynchronously load JavaScript into core It's a little different when it's a contrived module because it's not You know automatically going to be used by all components of Drupal, but excellent question So if that's about it, I guess I'll kick over to the obligatory Rate my session slide. I made a tiny little Jump link for you if you want J.mp slash DC Munich Dash HPT and I would love it if you would click on or tap on Provide feedback on this session and not only does it help me figure out how I can Present information better, but it also helps Drupal configure out. You know how they can do it across the board So I appreciate that you came and thank you very much. I Will edit the node and put a link to the slides in the node. So Basically That has the same name as a core file Possible that we might be able to write a Tool to do that in Drupal 8 in Drupal 7. I don't see how I can have Maybe an issue in the module then the onus is on me to either figure out if it's possible at all or not So file issue and then we can talk about it because that's not something that's been a priority for me at the moment I've been working on Module integration And that is actually a very interesting Discussion that should be having It's a very good point that you can use both to the problem is that the content of the aggregates is not necessarily known sometimes And so we would have to figure out a way To know what we're loading because there is CSS that you always want to load Synchronously and then there's some stuff often it's JavaScript But sometimes it's CSS that you want to load asynchronously. It's not necessary like at the time of page Yeah CSS is most of the time you want that to block the rendering of the web page When you wrote CSS like that essential tool It blocks the rendering of the web page while it figures out what CSS to load And then it lays it loads the rest that it doesn't Yeah, so yeah Yeah, I saw you yesterday, but I was too busy. I just had like run by Do you train


One, the built-in backwards was really fine. And the second one is those of you who, if this is your first RubyConf, not once in a RubyConf, turn to somebody who's been here before and ask them, why do I need Photoshop? So, I think if you didn't have to follow Zed Shaw on six hours to notice, this would go for no reason. So, so here we go. Mike tells me last night, yeah, so he crashed the speakers dinner and then roomed with the conference organizer and then he gets a cancellation at 10.30 at night, there's a downside to being his roommate. So, in more words than my friend Charlie Sheen, I'm fine. This is, it's not a rehash, it's a complete retelling of the talk that I gave at Azure Roots last year. And let's start with who am I? And you don't need to turn this over here because they say you're not supposed to pace because it's like nervous energy, but screw that, I'm gonna pace if you guys have a problem with it. Sorry. So, I'm David Grady, G-Grady on Twitter, ratgeyser at gmail.com. I'm currently conducting an in-depth experiment in pair programming remotely, so if you're interested in doing that with me, please send me an email, I'd love to hang out with you online and figure out how to do pair programming with you remotely. I have been an amateur student of messing with my brain for years, this is from my Twitter feed over a year ago. Absolutely true, absolutely true, there's nothing left, there's no native code left in my brain. You really can monkey-patch your brain. If you do it this long, you end up with a different brain. And in my particular case, I do the world in very much in parallel. A lot of people tend to be very deaf first, I'm very parallel first. If you give my team two modules, A and B, and they communicate with each other, I drive my team, it's crazy. They wanna open up box one, they just take it and figure out what does it do, what does it do, now open up box B, what does it do, what does it do. Okay, now how do they talk to each other? I'm not that way. I totally come at this and say, no, no, no, no, tell me how they interact, tell me what the interests are, tell me how they cooperate with each other, then only then do I care about what's actually inside the boxes, and again, this makes me the hard person on the team to deal with. So, this is my rehearsal for the talk, so if it sucks, this is it, all right, so. So, when I gave this talk in Agile Roots, I told people, I'm gonna hack your brain. I'm gonna, you're gonna walk out of this beat, it was anyway, who's that at Agile Roots? Got a few hands, got a few hands going out. Okay, so about the hacking your brain part, and I hope nobody actually peed on their shoes, but I just wanna say, I'm sorry, for those of you, but that does not mean I'm not gonna do it again. So, let's just actually dive right into monkey-patching your brain. So, the first thing I need to say is that I am eminently unqualified to speak about monkey-patching your brain. I don't have a degree in neuroscience, I do not, I don't have a degree in anything, actually. But, here's some people who do. Again, I like tying ideas together, and here's some people, Daniel Coyle wrote the talent code, absolutely brilliant book for drilling yourself on developing specifically better skills, not just practice makes perfect, but perfect practice makes perfect, that kind of thing. Outlier than about the black ball, it establishes this concept of the 10,000-hour expert that you really put in, five years of something full-time, 2,000 hours a year, you can become an expert on it. The most important book for monkey-patching your brain, I think it's probably Brain Rules by John Medina. He's got like two or three degrees, and I can't remember what they are, he is at least a doctor, he's got a couple of degrees at the Neuroscience. Because I'm going to be stealing ideas from these guys, and then patching them together in weird ways. And because we're going to talk about medical programming in your own brain, I absolutely need you guys to participate.  What you put into it, depends on what you get out of it. The vice versa. What you get out of it is all what you put into it. And this talk is the same way. So, I want to talk about three things for monkey-patching your brain. First thing I'm going to talk about is optimization. This is the hardware. When we talk about the neuroscience, the actual neurons in your body, the axons, the physical, chemical, neural system, there's not actually much of an API that we can get ahold of to monkey-patching. There's not too many access points, but there are some. And you can, in fact, work harder, not smarter, at the neurochemical level, the neurophysical level. And I'm actually doing one of them. I'm not actually pacing because I'm nervous.  I'm pacing because if you start moving your quadriceps, this starts forcing oxygen exchange in your body.  Now, we all know that IQ is BX, right? There's this thing called executive function, which is, well, IQ is BX, but what can we measure? And psychiatrists have spent 20, 30 years trying to figure out well, what can we measure? Reaction time, the ability to inhibit emotions, the ability to rationally think things through, the ability to draw UML diagrams, basically everything that we can actually categorize, like if IQ was not bullshit, it would be called executive function, okay? And oxygenating your blood with a little bit of cardiovascular exercise in one of the best ways to raise executive function. 10, 15% just by walking. So this is a pathway to elevate your executive function, okay? But the next time, you used to first take away from the top for hacking your brain. The next time you've got to spend three hours in front of a whiteboard with your team, drawing UML diagrams and trying to remember the error when the circle will close down, right? That kind of stuff. Don't do it. The first thing you should do is grab your crew walkers and go for a walk or get some other exercise with them. I prefer walking because you can talk about the problem. Spend 15 minutes walking and talking about the problem that you're gonna be putting on the whiteboard. You will be astonished.  For two reasons. The first is that you can't draw anything. So you have to reduce your ideas down to something simple enough to be communicated verbally while you're heaving and panting, right? And the second reason is because you just decreased your executive function by 15 to 20%. I know I said 10, 15, I'm not explaining this. It's a sandwich. But increasing your executive function as you do this. Okay? The second thing that you can do in metaprogramming your brain is, okay, put your chub in there. It is unit testing. How do you unit test your brain? Okay?  I no longer have a statically compiled brain. Okay? My brain is not strongly typed. But unit tests can save you. What are unit tests in the brain? Any ideas? Any thinkers? Math problems? Maybe. Maybe. Find me the hackfest. I will throw it in the same category as scriptures, if you're religious. We can throw this to that. But for live, moment to moment unit testing, habits. Habits are absolutely wonderful because we're now looking up out of the neurochemical region of the body. We're no longer talking about biology and medicine. Now we're talking about psychiatry. Not psychology, psychiatry. We're actually talking about neurochemistry affecting the way things work. Habits are really, really interesting things. They're fast. They execute unconsciously. You don't have to think about them. They're very, very efficient. Habits also have a very bad problem. They're fast. They're efficient. You can't think about them because they're unconscious, right? So habits are kind of tricky little things. If there's one piece of advice for you to take away, it's that you should go take a walk. But if the second, if you're gonna take two pieces of advice, I'm gonna push my luck here. If you're gonna take two pieces of advice from my talk, the second one should be, figure out when you should be using a habit and when you should be thinking about things. One of the first XP books talks about the principle of don't ask me, ask the system. If it's astonishing how much people will argue about something when they could just spend, they'll spend half an hour arguing about how the system should work, when they could spend 30 seconds writing a test to see how the system can work. Your habits work exactly the same way, okay? How long does it take for you to form a habit? 30 days, 40 days? It can depend on the person? That's the smartest answer I've heard. The answer is it depends, okay? What's the habit? Uh-oh, it's a thing you wear with a nun, but wear with a nun, right? I can do one of those in 15 minutes for somebody's bright time. And if a nun is, can't run fast. Um. But if you've got, depending on a habit. Okay, let's classify a habit as something you will do unconsciously at a specific point in time, without you thinking about it. If that is the definition that you will permit me, then you can set a habit in 30 seconds.   Now the really cool thing about this is that depending on your attitude, this is either crazy and awesome, or just crazy. And for some people, it's just indistinguishable from brain damage. And I'm really excited to find out who's who. So the cool thing about habits, of course, is that you can do them even while you're napping. So the F-18 coming, absolutely be appropriate. I want to clarify that habits are not routines. This is the thing that hangs us up all the time, is that we get caught up on this notion of, well, I'm trying to start a habit of, it's a good example of that. I'm trying to start a habit of doing test-driven development. That's not a habit, okay? You, TPD, okay? Okay, the urge to do TPD if you have it, but TPD itself, not a habit. Way too complex, okay? It's a process, it's a routine. It's a series of things that you have to do, okay? But you can form a habit of wanting to do TPD. You can form a habit that when I sit down and start typing in the keyboard, that what I want to do is write a test first. That's a habit you can form. Something very specific, okay? And 20 minutes left, 20 minutes in. Woo-hoo, the adrenaline's got me moving. Okay, I only have two more slides. So. Okay, okay, all right, so let's just, let's start, I'm gonna tell you exactly how to form a habit. I'm gonna show you how to form a habit in 10 seconds. This is actually how I discovered this technique. I just landed my dream job. It's my first day on the job. I get up, I panic, I'm frank, I'm excited, I'm eager.   It's my first day on the job, you know what I do? I keep the door in, okay? Demolish the wood frame or completely destroy it, okay? I go in, I get my keys. I call my wife on the cell phone, honey, I destroy the part of the house. When you get home, don't tell the landlady. I will talk to her. So I go to work, I come home, I get out from the landlady, I get a taxi, I promise I will fix this, I will make it okay, but I'm stewing all day about this one event. Next morning, I get up, I go to the front door. What do I do? Check her home, check her house.  No, you could say that I spent all day preparing for that happens, but no. That five seconds when I kicked in that door, actually the five seconds leading up to the decision to kick in the door, when I'm fully engaged with adrenaline, when I'm just totally fired up and freaked out, okay? My brain is rewiring itself.  Put this in the regular expression, parser, so that if we see this again, we react this way again and form a habit in five seconds, okay? Now, how you use that habit, you can ignore it. I repair the wall. I remaking never mind, I did a fantastic job. The landlady was actually so impressed with how well I repaired the door that she actually paid me for supply. Really awesome landlady. But I made a decision to use that energy in a positive way, to find a way to use this energy in a way that would help me. And I thought, well, how am I gonna use this? I've got this alarm bell that's going on. Every time I walk out the front door, how am I gonna use this? I know. I'm never gonna lock the door and not the game. I'm gonna lock the door with the dead boys. Why? Because you can't do it without the key, all right? You cannot lock yourself out of the house with a dead boy, right? So, gosh, this was 15 years ago. I've never locked myself out of the house since. Locked myself out of the park a couple of times, but we'll talk about that in a minute. This is your brain. There's a downside to what I'm about to do to you. Last night, Mike told me that I was speaking and I knew I was too tired to prepare my talk. I said, I'm gonna review all my notes. I'm gonna load all the memory, everything I've been around, and I'm gonna give myself a good night's sleep, right? This is just good, smart, left, right brain integration, right? I'm gonna load this all in my brain, but I don't like to get up in the morning. I like to sleep down. I'm a slow mover. So, I said a deep, up, great point in my brain. I said, when I wake up, I'm going to wake all the way up. Actually, I wrote in my journal, big words, wake, on, wake, which is a keyword that I use to tell myself, when I wake up, I gotta wake up. Can you see that up there? That's too bad. Okay, this is- Ninja key. All you can see are the claws coming down on this poor cat. So, it's back up. So, this is me, this is my brain, 48 a.m. when I had to get up and go eat, and did not actually need to get up, but I hit woken up. That was my self-conscious, and that was my poor brain. So, I've been up since 448 this morning, okay? So, use your power for good or for awesome, okay? But use it very, very carefully. At some groups, I did this to people.  It's pretty early in the morning. You have to do, to set a debug waveform in your brain, is to simulate the environment in which you want the debug to occur, right? You're about to get in the car, or you're about to get out of the car, right? And the keys are in the ignition, you're about to get out, you're about to get out. And what you need to do is you need to somehow trigger that response that says, oh my gosh, this is in my regular expression pattern for threats, this is in my freakout behavior, something really weird, okay?  The weirder the image is, the harder it will imprint on your subconscious. The more disgusting the hardware it will imprint on your subconscious. The more just weird stretch, the funnier it is. If you can tell yourself a hilarious joke on the man, it's a rare skill because usually you know what your punch lines are gonna be. It can work. Why this works is, again, your brain is required for powerful reaction and pattern matching. And this is just an amazing, amazing skill that you can use. Are we doing it for time out? I'll turn this left, turn this left. I'm gonna tell you a story when my friend Randy is going to kill me. I'm gonna tell you a story of how I learned this technique, formally. So my friend Randy will be Y.U., bringing up the university. Owned by the L.S. Church. They have an honor code. The students there are taught in a morality, chastity and proper behavior with the ladies. And Randy's roommate had a really smoking opera around and he really liked it but she really liked him. And he was feeling so bad.  Don't we're gonna end up breaking out and I'm gonna feel so guilty. And he said, I have all your problems solved. His friend was standing there and just got out of the shower and he's wearing boxers. He says, I can help you.  Shoo! Shoo! Shoo! Shoo! Shoo! Shoo! And then he slams at 11.30 p.m. Damn! Full story out of his friend. He had moved in to kiss her. And just when he got right here, your tests need to be green before you commit your code. Get by second, well thank you. You'll understand when you're older if you don't understand that. But for now, your tests need to be green before you commit.  You're about to push it to my repo. What I want you to think of as you're pushing that repo. You know what I'm talking about. You know what I'm talking about. Is that image, right? Oh please don't let them have clothing on underneath the arm. If you take an image and make it strong, your brain will use it. And you can harness this power, you can use it for good, you can use it for awesome. You can use it for waking yourself up at 4.48 in the morning whether you want to or not. All that winning. And that's actually how you look at your brain. Hope, I hope this is useful to you or at least entertain you. Thank you very much. One, two, three.


The study aimed to analyze the reproducibility of off-axis integrated cavity output spectroscopy, OAICOS, derived Delta IIH and Delta 180 measurements on a set of 35 water samples by comparing the performance of four laser spectroscopes with that of a conventional mass spectrometer under typical laboratory conditions. The results demonstrated an overall agreement between OAICOS-based and mass spectrometry-based measurements for the entire dataset, but there was a certain degree of variability in precision and accuracy between the four instruments. Analytical precision ranged from plus or minus 0.56 and per mil to plus or minus 1.80 and per mil for Delta IIH and from plus or minus 0.10 and per mil to plus or minus 0.27 and per mil for Delta 180 measurements with a marked variability among the four instruments. The overall capability of laser instruments to reproduce stable results with repeated measurements of the same sample was acceptable, and averaging the measurements of three identical samples led to a higher degree of accuracy and eliminated the potential for random deviations. This article was authored by Mbonaza, BMC Fisher, MBORGA, and others. We are article.tv, links in the description below.


Hi, my name is Eumhi Le, I'm representing the Botswana delegate, Botswana in Africa. This event has been phenomenal. It's forced us to think about our innovation and about our ideas in a more critical way and also, you know, a way in which we can impact our communities and not just to sit with the ideas but to take them out there. And I'm really excited to take the message forward to my daughter.


Raju says, my friend wants to delegate tasks to me, but be based in Europe and I will have to access his company account which is on Microsoft 365 from Pakistan. How should I do this? Can it create problems for my friend who is delegating me the tasks? Which tasks? Which application? Is always a good question because are we talking planner? Are we talking lists that we're talking to do? Are we talking outlook as a delegate? Are we talking, I need to take their phone calls and I'm a delegate. There's a lot of places that you could be, what kind of a task are we doing? Power automated approval tasks. Yeah, there's so many different applications that that could arise from, it's a difficult one. Well, he says, I will have to access his company account. That's what I was thinking about. Red flag, red flag, red flag. You need to not be giving your financials to anybody else. That's like a number one rule of Microsoft. There are a number of integrations that, again, we don't know what type of task he's talking about, but there are third-party tools that can go to automate to pull things out and through third-party tools move tasks across. So yeah, my red flag is the exact same thing. It's like accessing his company account. I'm going to go out on a limb here and say that his company would not approve of someone outside the company being delegated tasks. Now, if it's tasks, if it's things that are community related, still you should not be accessing somebody. Sorry, I feel like such as school teachers, like you should not be doing that. It's his friend, Christian. Yeah, that's what I was going to say. Who's his friend? My friend should be in quotation marks. Will he do my tasks too? Accessing his tasks in Pakistan with the same account. Do I think it's going to create, it says, will it create problems for my friend who is delegated? I'm guessing your company is going to notice if your friend's M365 account is being accessed in a different country. I'm pretty sure that's going to raise some red flags for sure. I mean, if they're talking, they've got their own personal accounts. Like, if we think of it like they've just gone into a retailer, they've got their license, they're at home and he's just going to help them out a little bit. And then so one's got a personal and one's got a corporate license because it's talking company account. Then you're at cross purposes immediately. So unless you're creating them the friend as an actual corporate user inside and they've got their own license and assigned and then no, don't do it across the two. It's not going to work. The other thing is a lot of security admins will put policies in place to restrict users accessing content outside of their country, their home country. And so often it will definitely flag. So a security person will be able to see that and often it will cut them off. So if somebody did use that account in a different country and there's a policy in place for that, it'll actually shut their account down and it'll notify the security person so that then they can go find out, hey, wait, is this person being phished or scammed or is there something bad happening? So if you are going to do this legitimately and let's put on the assumption of a good hat and let's say that we're going to be working together and we just want to make sure it's going to work across country lines, I would definitely reach out to your security admin and say, hey, I'm going to be working with this person in another country. I want to make sure they're included in our policy. Can you make sure it's set up properly to make sure that your account is going to be able to you be used in the right way, in the right countries and you're not going to get some policy that's going to cause a problem. And there's a level of effort when you involve the administrator. And so, Christie, you kind of alluded to it. There's low hanging fruit. Microsoft Office, one of the best kept secrets of the task list in Microsoft Office, there's a little button that says assign task and that person does not have to be in your organization. You create the task for yourself and outlook, you assign it to them, there's check marks on there for, I want to be updated if anything on this change and it synchronizes the changes and you know what you make every update, you put them in those, that's an easy way. If you don't involve the administrator and have to go through all of the Federation and all that or get somebody to count, use Outlook and send a task to them. Although I will point out Sherri Outlook tasks are essentially moving to to-do. So in the newest version, you know, that's going away. I'm going to have to rip it out of my cold dead hands. But are you still able to assign that? So it's, well again, and there are third-party tools that allow you to move those across. So depending on what you're trying to do, but either one other point I would make that the other issue of working with somebody, let's say you were in the same company, but you know, working between the two different accounts and logging as your friend, which is a no-no, but even if you could do it, like, hey, I could physically, I could go and do that, there's still MFA, which is likely in place. It's like, what are you going to do when it then calls your buddy's phone to verify that it's you? I mean, so every company in the world is now rolling out if they've not already they should, you know, MFA, and that will throw another wrinkle into that problem. So you need to look at a long-term solution, not try to go in and log in as your buddy in their work account to get access to things. There are plenty of other ways of solving it, technically. So what about just join a Teams meeting together and give control of your computer to the other person? That is a choice you can make. Assuming you don't have to do other tasks on said computer at the same time. Yep. And assuming that you're not in a GCC environment that prevents that from happening. There's no policies on your calls and your sharing controls and things like that. Maybe you could do a team and they're an external party and invite them in if it's allowed, you know, within your organization and you collaborate inside a team together when you could be doing tasks and all sorts of things, you know? Got for bed. So, you know, depends. The whole friend thing might be the, it depends, are they a friend that's actually living in the corporate world? You know, maybe he's a virtual assistant and helping out. I'll just say that if a friend asked me to go and log into his company, I would say they're no real friend. Right, no friend of mine. Maybe they're paying you to do their job for them. I was wondering how long it'd take us to get to that. That was the first thing I thought of. We were all thinking that the first thing. I had a potential client that wanted me to do exactly that. It was a, the potential client was an oil company in Texas that needed an American citizen to own the computer, but they had developers in like Columbia. And so my job would literally be to turn on the computer, join the meeting and hand over control to the developers. And then the developers in Columbia would do all of the development on my computer and my name for the Texas oil company. Not risky at all. No. No, hey, we did, I did something very similar to this a long time ago. Using this basically like tunneling into but doing the same thing and handing over control to let them do certain things. And it, I mean, it was a legit reason for that, but it was a highly secure on both sides with very specific tasks around it. So not trying to mock people where that's an actual scenario. Right. This doesn't sound like that case. It sounds completely legit, completely legit. All I know is that they made a mistake and accidentally gave me $500 into my bank account. So I had to give them access so that they could move their $500 back. And in return, they'd pay me a small fee for fixing the problem. So. And you're getting married next week in Nairobi, right? The prince is coming to help you. All I say is when the crown prince of Wakanda asks for your help, you help. Wakanda for everyone.