All right, we're at time. All right, we'll start up. We're going to talk about pokayokes. And this is the first place where we can avoid mistakes is actually by pronouncing it correctly. Right before a talk years ago, I said, someone had corrected me incorrectly. And they told me right before I went into the talk, you say it, pokayoke. And so I went in the whole talk and I said it wrong, which is just the greatest irony. But so pokayoke. And there's me on Twitter, and fnconf17 is our handle. And we're going to jump on into the content. So pokayoke, term from Japanese manufacturing that means mistake-proofing. So this is a picture I took in Nashville. We're going to look at a few examples just in the wild. So this is like pokayoke go or something where you can spot these things out in the wild, these mistake-proofing devices. And so here's one where if you were to drive down into this parking garage in a big van or something where you had a vehicle that was taller than seven feet, you would smash in and you'd get trapped under there and everyone would be honking at you and be horrible. So instead you put this bar, seven feet, you bump in the bar and you know not to drive in. So you take something that could have been a tragedy and you just bump into the thing and someone backs away. So you keep something really awful happening or a simple device. All right, and we have another example here of just manhole cover. So what's the pokayoke here? Does anyone have an idea? Right, right on, that's exactly it. So generally you pick this manhole cover up and you don't have to position it right. They're heavy and you don't have to, you can drop it any direction and it's going to fit right down in there.  You don't want to have to drive one back up. And so that would be irritating. So it's round. It has constant, same diameter all the way around. And so we have round. And we also have this funny thing here. It's a rollu triangle and manhole cover that also has constant diameter. So the rollu triangle number, which way you go around it, it's always the constant diameter. So you could put this thing up on any side and it wouldn't fall down into the hole either, which is interesting. So this exists in San Francisco. Does anyone have any idea why maybe we have the double pokey okay here? Pop is in San Francisco. Hills. So the people taking off the manhole cover, not just dropping it down in the hole, but if they let the thing roll, well what's going to happen is it's going to roll a couple of, and then it's going to fall over. This one on the left would go down a couple of hundred people by the end of the hill. And so you keep a ceiling steak from looking at the tragedy. And so I want you to start looking for these things in the wild. I want you to look for them in software and ideally it'd be great if you could start building these and this could become your new sport. And so this has been a sport of mine for a decade or so where I've been trying to build these things, trying to find these things and all my API designs fall into this idea of mistake proofing. And so it's a good karma thing because you know you're making the world a little bit safer and you're removing a little bit of tragedy. So the characters behind this term, Shingo, Shigeo Shingo and Taiichi Ono were at Toyota. And here are the books. So Taiichi Ono is the father of the Toyota production system. Really interesting book here on the left. And then Shigeo Shingo, behind the zero quality control and his name is tied closest to the Pokyokes. And then the book in the middle, this thing is really interesting. It's 240 examples that were pulled from different factories of these Pokyokes that were deployed. Okay, so let's start off by asking this question. Are errors unavoidable? And so there's one view that would say, yep, unavoidable, people make mistakes, blame, blame, blame, people do things, blame them. And then we'll detect the mistakes and our final expression and then we'll just let the customers find the mistake and let them yell at us and we'll give them a discount or get them to different customers. That is the most awful path. Everything about that is just wrong. The blame is wrong. Everything is wrong. And so let's move down to this other option. So let's assume that any mistake that people make can be reduced or eliminated. And we do that through training people and building systems based on prevention. Systems based on prevention, Pokyokes. So this is, it's a concept based on respect. It's respect for the workers and respect for the people you're working with. Just respect for humans here because you're saying people, you're not a bad person because you made a mistake. Everyone makes mistakes. And the real fault is when we put too much pressure on people and we have people pinned down and we say, you've got to act like a machine. People aren't machines. They're bad at the things that machines are good at. They're good at things that machines are bad at, at least for now, maybe 30 years and be different. So repetitive tasks, things where vigilance, memory are important. We want to have Pokyokes around this and we want to have people focusing on more important things like building Pokyokes. So the basic functions here around prediction and detection. So recognizing that a defect is about to occur and then doing something about it. Shutting down, low control warning or after a problem's already happened, detecting it and then shutting down flow controller warning. We can see that this is a map going left or right here. So we have a process. We have a prevention Pokyoké. We're gonna basically keep that mistake from happening. So think about FP. Think about all the things that whenever you first picked up your first FP language, the things that you no longer had problems with. So just kind of put those in your head right now and think about these prevention Pokyokés that are there. And then our next stage is around detection. So there's a mistake that's already there. What do we do to keep that mistake from being turned into a defect? And so also think about your code here. Okay, a physical example. We have, this would be in a plan. So we've got this part that's a steel, it has this shape, it has this hole in the bottom left. And we know we wanted to drill a hole in the top right. Okay, so we drill it, it's correct, everything's made. Okay, what happens if the part comes flipped upside down? So this thing, it looks the same other than the hole there. Well, if we do this, we've just created a defect. And so this is a real common model you'll see in the literature around Pokyokés. And so we have, then we can create a jig. We can create this shape that when a correct part lays on top of it, it will fit on top of it and nest on the little bubble that comes in. And then we can create our correct part. Okay, so when it comes in backwards, it's gonna fall down and it won't actually be able to see. And so that would probably keep the drill from activating or if the operator, you know, so it depends on how automated you wanna get, they can be very simple. But these are obviously things, your head's probably already turning now about things in your code that behave like this. So we think type systems, we think, you know, pattern matching. But one big thing I think in FP, this is definitely a thing in lean manufacturing, but valuing mistake-proofing over diligence. And I think that that is something that we get right in the FP communities that you hear people off in the OO spaces talking craftsmanship. And I always give the shivers when I hear people talking about craftsmanship, because I think what they're, there's a blame thing happens. And it's like you're not good enough. You didn't work hard enough. And so it's probably a slob, but the idea of putting everyone to the standard when a computer can catch you, when a device can catch the mistake better than a human can, you're getting foolish. And so there are people that argue that, that I think are just absolutely dead wrong. And so here's a blank here. You can see this is a form that you would define new book Yokei here. We see the improvement after improvement in that book. If you go grab it, there are 240 things dropped in here with little pictures of the before and after. So inside of the book, there are all these funny things where they're defining the best book Yokei. I think I like OK tag inside of Elixir when you call into something, you get your OK and then your values. That's what seems to me like a guide pen. These error detections, alarm, limits, which is counter's checklist. I start thinking about curry. I think about a tuple that's the wrong shade. It doesn't have enough elements in it. I think all these start messing over and you can start seeing how these checklists, how these counters, these different limits start coming in and work. And at the top here hints on, identify items with their characteristics, weight, dimension, shape. This is just straight up types of stuff. It's about, does this shape fit this slot? Then we have detect deviations, procedures and committed processes and detect deviations from these values via detection devices. So here's one, have you ever heard of Wombat? OAM, Erlang Solutions, it's a monitoring tool. So that's what I think of when I think about this bottom one, it's detecting deviations, but we'll move a bit on into diagrams here. There's this one, it's a little small so I'm gonna zoom in. And here we see this list of human errors and causes of defects and there's this causal chain. And the thing about this is that we really careful about causal chains. There's a real problem of hindsight bias. Like when a problem happens, it's pretty easy to find the problem that happened and blame someone and say, oh, Knucklehead did it again instead of actually identifying this process that's behind it or the three steps away. And some things, especially in software, are very complex and it's not as simple as it seems. Hindsight bias makes it seem simpler than it really is. But in this chain, so for simple things like that shape fitting on there, that's where this applies. When we're looking at programming in the small, we're looking at catching these things in the small. Charts like this really help. So the literature, you kind of get a sense of what's here. We can see that these inadvertent errors, so this is like, it's sort of goofed. It's like, I didn't realize I even made the mistake. That's the big chain of most of this there. And so that's what our book of yoke is, you're gonna try to help us with. So mistakes. Let's look at another definition. Does anyone have this book? Okay, this is excellent. Everyone else needs to raise your hand next time you get asked that question. Because this is a brilliant book, it's about design. And design in that sense of ergonomics and oki-okis, it just fits right in with this whole model. But most accidents are attributed to human error, but in almost all cases, human error was the direct result of poor design. And so rather than blaming the person, figure out the process, aim it there. The process, make these go away. And then we can actually save some lives here. Slips and mistakes are two different kinds here. So a mistake is intentional. I admit to do that, it just turns out I was doing the wrong thing. And a slip was, I was trying to do the right thing and I just goofed up, you know? And so we have both those in code and we need to think about the kinds of things that would help our consumers or our API, what will keep us when we're, our own consumer in our code. Like we won't be surprised by our own code later on. And so we're starting to think about, I really like it when empathy starts coming in to mind in the context of FP because it's a really, it's a perfect place for it. Like people on the outside don't really think of us as being empathetic, but we are.  And so that's why we're here. So let's look a bit about mistakes and software development. Okay, so we got Wikipedia talking about bugs here, we've seen bugs, but here's what it's gonna boil down to a lot. We're gonna talk about compile time errors, runtime errors, logic errors, design errors. These design errors are really tricky because we coded to the design, but the design was incomplete and this is where a lot of bugs show up. And so this is tricky. Like, and so we start thinking about different life cycles and spans where these can pop up. So this is our battle and the first tool against these things is our friend immutability. So often, FP land, this is serious. We have immutability. And I want everyone to sort of think for just a second about this idea of immutability, like a thought experiment. So what if you couldn't steal? Not just that it was illegal to steal, a really, really illegal to steal and you'll go to jail for a long time, but what if it was just physically impossible for it to happen? No one could. So you would change a lot about the way you live.  You wouldn't be dragging your laptop into a dirty bathroom. And so much had changed there. You wouldn't have to lock your house. You wouldn't ever lock your keys in your car because you wouldn't have locks. There wouldn't be locksmiths. You wouldn't have any of these problems.  Everything, your whole life would be better in a lot of ways if this was impossible. And this is what we get in FP. We have constraints. There are guarantees in FP that other stacks, other languages, they just, they're like, ah, you know, we'll try to be good. We'll recommend you do this. FP, you can't avoid it. It's guaranteed and the tools can count on this. They can live the life of someone in the place where there is no such thing as stealing. Think about threading. Think about all of the things that tools can take advantage of. So, let's look about what you learn in your first computer science class. So, what would this be called? An increment, right? That's an increment. And what would this be called in high school math class? Or when you're like a teenager, your math class. What's this? This is, yeah, you repeat your math.  And so, it's funny that kids, they're 16, know a lot more than what they learn in college here because the idea of X equal X plus one is just broken. And so, let's look at immutability here in F sharp. So, we say let X equal five. There, say X equal X plus one. And F sharp agrees with your math teacher. It says, no, that's actually false. That's a false statement. And if we get really nasty about it and we say, no, we're gonna force this assignment to happen. We're gonna pin seven here to X. It's gonna say, this value is not mutable. So, it's not gonna let us do it. Well, except for it's sort of would let us do it. If we were to put the mutable keyword on this. And this is this place where F sharp, there's, it's almost there, but in the space in it's in. It's in the dot net framework. And it couldn't be really, really good. And it couldn't turn this idea, well, not allow mutation ever, ever, ever. So, that was a compromise there. And as a result of that, F sharp gets to, doesn't get to ride on the same bus that you ride on if you're an elixir or a haskell or other places. There are things that it can't do for you that we get over on elixir that you get in haskell, you get in the interest and so on. And so, that's a shame, but it does keep you from getting a lot of bugs.  And that's where these things about the absolutes are important, constraints are super important. Talk about a constraint, purity. So, purity, so if we have A goes to B. So, our output of our function is based entirely on the input of our function. We don't reach off in an environment. If we have a pure function, the output is solely based on our input here. And when that's the case, and we can count on that, we can trust that, we get all sorts of good. There's a place where that doesn't happen, and that's in OO LAN. And so, OO LAN, my favorite quote about OO is by Joe Armstrong. He says with OO, the problem with it is you ask OO for a banana, but instead you get the gorilla holding the banana in the whole jungle. And so, you've got the entire environment there. You reach your arm in there and you don't know if it's gonna get torn off or what, because so you've got this class, you have this object, and you put your arm in that method and you're wiggling around putting a value in there. You don't know which constructor that object was created with. You don't know who's called what property setter. You don't know what method was called just before you or how many times you, you don't know any of this stuff. You don't know if there's another thread in their wiggling state. You have all these uncertain things and so you have to code defensively and you have all this stuff, you're pinning around, you have to be a craftsman.  The thing you should do is get out of the mind view. You're in the wrong place whenever you have to worry about gorillas every time you call into a method.  So, Elm has a really beautiful setup here where you have referential transparency, you have purity here. And so, crazy, this builds up on top of, it compiles the JavaScript, it's just, so if you can do that, if you can build something that's clean and pure and compile it to this, then anything's possible. So, you know, whatever they tell you at school, anything's possible. So, here we have Mario and we see our character here. He's hop, hop, hop. And we're seeing the timeline of where he's hop, hop, hopped over time. So, what do we do about time? So, in this case, so every function, if you're referring to the clock, then that's gonna be non-determinant. It's always changing out there, right? But here, we're actually taking time as an input into every function. So, if we hop, we have a hop and also a tick on the time. If we don't hop, we just have a tick on the time. If we walk left, we have a left and a tick on the time. And so, time, time, time is moving. And so, let's see this in action here. So, Mario's walking, walking, walking. We're gonna go time travel debug backwards here. So, we're gonna go back to the beginning here and we're gonna start changing Mario's future here. We're gonna change how high you jump. We're gonna affect gravity here. And so, then we're gonna move through here and see how he plays through. And so, this is absolutely beautiful. Like, how would you do something like this in an OO language, where you were mutating, you just wouldn't have, this is just, it's this territory of these, this is why they can't have nice things. And so, we have nice things here.  So, if you like, if you like this guy, probably also like this. So, this is a line of business, a boring line of business, Blaba, as Scott Blaschen would refer to it. A version of the previous.  You can see everything that happened because, again, every function call is the inputs are the only thing that affected anything. All right. Oh, so this is our danger with OO is every time we do anything, sometime later, this thing's gonna, we're gonna get shot in the back by ourselves and which is, this is over and over the problem. It's a dangerous place. Even the people associated with the name say it's a dangerous place and this is a way I like to visualize, when you hear the term JavaScript in a functional style or C-Sharp in a functional style or whatever in a functional style, that phrase just really tears me up because on the left, we have these three declarative things, they're hard constraints here. We have a plug in the US, a UK plug and we have an India plug here, lined up and we have an OO plug over here. We have an imperative plug and it's like, hey, we can do the same thing, guys. We're all thuring complete and so that's, we can all have the light bulb come on is what they're saying but they keep on missing the thing that the fact is is we have constraints over on the left and on the right, you're gonna shock yourself and so you're gonna go to the hospital and you're gonna send someone else to the hospital. It's this dangerous, dangerous environment and so every once in a while you'll have this, we became slightly more functional. We introduced lambdas or whatever and so basically what it is, they hooked a ground wire off with the alligator clip and so it just tears me up and so we need to shut that kind of talk down when we can. Politely move them to the right way but we're all in the choir here. Okay, so height forward. So we have this idea of functions and we know that inputs go to outputs and we can change many inputs to outputs to inputs to outputs and here we are. So height forward is using a lot of languages and elixir, it takes the expression on the left and pipes the thing, the output of the expression on the left in as the first implicit argument to the expression on the right and F sharp and Elm and so on is gonna do the same thing other than it's gonna be the implicit last argument to the expression on the right. Okay, so here's a transformation. We're gonna take drink, your oval team is our stream and we're gonna try to transform that into taco, wrapped in tacos and we're gonna yell, drink your oval team and we're gonna snake case things. We're gonna put little snakes into the spaces, okay?  I mean it's painful, it's, I could actually, when I typed this I had a bug in my code. I missed my tacos, I had it in the wrong function with taking the tacos and so this is the way that a lot of code is written but then you move over and you see what we get here. We have this mistake-proofing device right here. It is really hard to make a mistake whenever you drink your oval team, snake space, wrap in tacos and yell. It's very clear, very obvious and it's not inside out. Union types. Autorated types, those types. So we're also gonna talk a little bit about pattern matching here. So we have C sharp or F sharp, we have our type, shape, circle, square, triangle, rectangle and you can describe a circle by a float, it's radius and so on. And we can then define this get area function here that's gonna take a shape and we're gonna match that shape. We're gonna have this pattern match here and if we hit circle it's gonna destructure that whatever came in into our radius and we'll be able to say pi times radius times radius and so on for the others. That's good, that's clean. And what we have here is this shape, we just have four things it can be. And this is powerful because this is again this thing that has a certain number of slots. If we add ellipse up here to our shape, we're gonna get warnings by the tool. You have this pokey okay that just kicked in and it warned us.  You just added an ellipse and you haven't updated all of your matches all over the place. And so this is excellent. We keep from having these disasters happen here. The tools are able to do this. Another thing they're able to help us with is here if we do something really goofy like say get area of null, well it says shape does not have null as a proper value. Well of course it doesn't because null is ridiculous right? And so an F sharp says make invalid states unrepresentable. And so this is that straight up thing of the pokey okay each thing is just straight up like the jigs that we won't allow the operation to happen if we won't allow the defect to happen. Let's take the same example and look at units of measure. So the United States we mess everything up in the entire world for everyone. And so here we have what all sane countries have the metric system with centimeters. Of course it's in centimeters. And then you've got everyone in the United States and of course it's inches. And so here we come in and so we're gonna handle this. We're gonna have a unit of measure here we're gonna add in it's gonna take a measure all you're gonna take the measure. And now we go down in the bottom we say get area rectangle of two centimeters and three centimeters and we get six cubic or square centimeters. That's nice. And if we say get area rectangle of two centimeters and three inches we see the unit of measure of two centimeters does not match the unit of measure inch. And what we just saw fly by here is the Mars polar orbiter which turned out not to be an orbiter after all it ended up being a lander a very fast lander because they had a unit of measure problem and it wasted years of work millions of dollars and who knows what good research they just went away because some American with inches or something along that was the problem. And so but we have Hokeoke's here that would have kept that from happening. Dependent types. So now we're getting into some really deep territory that I barely know anything about but I know I'm interested in it. So this is Edwin Brady here the inventor of language Idris. And so he says what are types for? They're checking a program has intended properties guiding a programmer towards a correct program and building expressive engineering libraries. This is what we're here for, right? This is this talk, this is Hokeoke's it yells these things. And so Idris has this amazing thing called dependent types in it. And so dependent types lets us so in a normal function we might say, okay this thing takes a list of integers or it takes two lists of integers. Okay that's good we get types saved do we pass it in list of strings that's gonna give us compile error, right? So but here in Idris we can say we're gonna take a vector so a list with a length of it and we're gonna guarantee that at compile time that we're gonna put these guarantees on so that we can match on values. So we're gonna have a compile time error if you call this thing with a vector of six ints and a vector of five ints because it knows it needs to add those two up and so we can set these constraints on values. So values is types. So we see something like that in Erlang where we do pattern matching on constants. We'll see an example of this a little bit later but that's at runtime where you're getting these checks. This is a compile time and it's spooky magic. And so this is my 2018 plan is to actually learn this language because it's just y'all spoke of your case and so I'm grabbing, I have the book, I've already started it and this is my 2018 plan. All right, incorrect docs. So a lot of things incorrect in C-Sharp, a lot of things incorrect in this example but this is on MSDN, I think they've updated it now. It was on MSDN like a month ago. So we have this documentation here E equal O as employee and so what this would be doing is we'd be doing a cast basically it would be saying, oh, we're gonna turn you into an employee and if you can't be turned into, if you're not an employee, E is gonna be equal to null which is really awful anyway. I mean, even if this was a good example, this would be a terrible example because this is a horrible set of things that are happening here but notice what we're doing here in this example saying bar E equal O as employee and we're saying if O is equal to null. So it should be E equal to null, that's our bug here and so what this would allow us to do is we could pass in a burglar class that happen to have a name object or a name property on it and the burglar would come in there and say okay, as a burglar is an employee, E is gonna be null but O is not null so it's gonna fall down the bottom and it's gonna do a name compare and it's gonna say the burglar named Bob is the same as the employee named Bob, let him on in and so that's terrible. So what can we do better? So over on the lizard side we have this idea here of inside of our code or code comments, we put example. That's nice, right? That's show everyone how to use your code but what we have here is really a doc test. So if this is wrong, if this is not true, that's a failed unit test and so we broke the build at this point so if I do a full request and I break a new count and I somehow say it's off by one or something, that build of elixir will never go out the door. You can do this in your own code, it's not specific to the elixir project but in any of your elixir code you can have these doc tests. Very powerful, very nice. Cycles. C-sharp, we have, here's some C-sharp code. This isn't the best C-sharp code I admit, I'm sort of picking on them but they allow it so we're gonna pick on them. So here we have class A depends on B, class A depends also on class C down here and then class B depends on class A, class B depends on class C and then class C depends on A and then class C depends back on B, I think I got that right and something like that, I think it was. Okay, then over on F-sharp, here's what we get. So we've got the same exact construct set up but we get a compile error. It's gonna say nope and it's gonna say nope. Notice the one at the bottom, there's no nope down there. It allows the type C to depend on A and B. It doesn't allow B to depend on C and it doesn't allow A to depend on either one of them. So what we have here is directional compilation. So you can only refer to things that are defined above you. This is a pocoyoke, this keeps cycles from happening. Okay, so you might think it's just a mistake. I thought it was a mistake the first time I bumped into F-sharp and I saw this. I thought they just didn't get done with F-sharp. And so, but then I saw this thing and I was like, okay, this is me being a bonehead because this is intentional. So even on the project, so we have big zoo FS project, notice these files aren't in alphabetical order. So in F-sharp, our projects are defined in the order of dependency. So we can know that common utilities here doesn't depend on anything else in this project. And we can go down to the bottom line of project FS and we can expect to see sub main because it's depending on everything above it. And if we go into the Elephant Washer file here, we can be pretty sure that we can change it without breaking anything above it. But we might have to check and make sure that we're not breaking activity group is powerful. And it's something I wish a lot of the language has but it's this beautiful pocoyoke that I don't see in other places. But this is the culture and F-t. See these interesting things, these things that keep bad things from happening. Concurrency, lots of bad things happen here. There's inverse relationship between delover, seniority and eagerness to take on the threading. We have a different story. Again, we have these tools that create these protections, these things that keep us safe. And the Erlang VM is full of these things. So here we have a group of processes. Each of these isolated processes are running. It's all within the context of Erlang VM, which is an operating system. Really, it's not just language runtime. The Erlang VM is running as each processes that we wrote and they're all out there. They all have their mailboxes. And if they fail, they fail independently. They don't share memory. They don't do anything. They're just out there isolated islands. The only thing they can do is they can send messages. It all happens just through message passing. And it's all happening concurrently here. Not happening in parallel. We're running one core here, right? But if we run multi-core, it's all happening in parallel. And it didn't change. Nothing changed because we have this isolation model here. The rules stay the same. And it's the same place to work. All this code is top-to-bottom sequential code. Easy to think about, even though we have massive concurrence, though we have millions of processes running on a box. We have processes running on multiple boxes. We have supervision. We have links and monitoring. We have all this communication between servers. And we don't have the same kind of problems that you have in the simplest thread pool problem in C-Sharp or Java. It's just remarkable. And again, it's these constraints that we have based on our choices that we put on ourselves. Air handling, tri-catch. So this is just the nuttiest idea, to say, okay, so months from now, I'm gonna predict what weird thing led to this thing that I'm smart enough now to actually guess what's gonna happen and code around it. But I'm gonna put this tri-catch block in here that'll probably figure everything out for me at the time.    And of course, it turns clean code into just a garbage heap. It looks awful. It's the, once you do catch something, quite likely you've got a weird state then to keep on. And eventually the whole thing, this is the problem of why, whenever something goes wrong on the computer, help Destiny say reboot your computer. It's this. And so you reboot your computer because it gets rid of all this trash. Of tri-catches, basically. So let's look at Elixir. It's air handling. Age left intentionally blank. So we don't do a lot of tri-catching in Elixir. The idea is to let it crash. You can do that because of supervision trees. Again, this device here that keeps us out of danger. So here we see at the side over here, we see this process here with these links over here. It's a supervisor, supervising it. And it's being supervised by here. So here's our root-level supervisor, supervising tree. And so we have this message being sent over here. Something about it's poison. And it kills our logic. We didn't handle it well. So then our supervisor basically just restarted us to a good state. And maybe that was a one-time message. Maybe that thing will keep on getting killed and it'll stop getting restarted after a strategy. But this is much cleaner because all that code was just written like there was no concept of an air at all. Code the happy pattern. Not everyone is running on the Erlang DM. And so there's a really nice pattern that Scott Blotchin has a talk on. This is a brilliant one to go off and watch. You can F-sharp for fun and profit, ROP. But this talk is just amazing. And so the idea here is you have functions that you have two paths. You can either exit with a success track or you can, so there's railroad analogy. Like you can always split off. You can have a success track that you exit with a failure track. And you can link these things together. Chunk, chunk, chunk. And then you can have the thing goes through the whole path on the success path. Or it was successful, successful and then it falls down into the fail path. And this keeps us from having to have all these nasty tri-catch groups in there. So this talk, this is one to worth going in. I'm not gonna go into much detail but I'll show you how popular it is that it even does show up in the Elixir community. And so it's been brought over there even though we don't have tri-catches. We don't worry with that. There's still cases of having to match on cases of different events happening. And so what we've done here is a built-in language feature that basically was built around this idea of the railroad-oriented programming. So with, so here we have all of our happy cases here. There we go. So all of our happy cases, okay. This one captures okay and then a user comes back. That's inside of our scope then. So we get to use that user. We fall on, fall on down. And any one of these fails, we're on the failure track, which is down here and then we can match. So this is just a handle validation and that sort of thing. Really nice. How do we match it? So we have this weird thing. So we're in Elixir. This is the examples we made in Elixir and we're looking at this low level idea of binaries in bits. So normally in a territory we would bring out the C compiler and probably create a segfault. We're gonna have a, instead, we're gonna have in this functional language with this declarative model here, we're going to strip into these binary files and we're gonna read this bitmap here which is five pixels. So we have a super zoomed in version of this thing. We have a black pixel, a red pixel, a yellow pixel, blue and white. And it's a 24 bit, five by one pixel. So we're going to do a pattern match. We're gonna say, okay, and then we're gonna capture a bin data. Just off of file read. Red, green, blue file. And we captured that. So our bin data now is equal to this. Okay. We know a little bit about the bitmap format. The first thing we see here is the BM at the left. So that's, we're making it like a literal. We're saying that this first two bytes of this thing has to be BM. So we're gonna go ahead and do this pattern match here and we'll walk through it to make a bit by bit. So our BM here, it matched that, obviously. So that BM, yep, that's it. Then we're going to throw away the next 64 bits because we just don't care what's there. It's header information that we are not interested in right now, but the next part we are interested in. So we're gonna capture the next 32 bits, is a little Indian, to this variable called offset pixels. This is gonna tell us where our pixel data begins. So this is gonna be after all the header data, right? Okay. So it's at 122, as we see up at the top. 7A, so we're gonna throw away the next 32 bits of data. We just don't care what that is. It means something to somebody, we don't care. Then we're gonna do a match off of width and the size 32 bit little Indian. And we can see here that it is five, right? So five wide, and so we're gonna do height. We can see off this match, it's gonna be one, right? So those are what we expected, right? This next one is interesting. So what do we have here? It's 24 size 16 little Indian. We're doing a literal match against 20, this is our color depth. We're saying this file, it better be a 24 bit color depth file, or we don't really know how to deal with it, so we're just gonna fall out. Okay, so we captured that, we threw away the rest of the binary. Didn't care about the pixels. Okay, but now we care about the pixels. Well, we're gonna show basically what we captured here, we're gonna offset 122 width, five, height one. Okay, now we're gonna care about the pixels. What we did is we threw away our offset to pixels bytes through that to the I don't care variable, the underscore there. And then we said everything else, we're gonna capture this variable called pixels. And we're gonna take pixels and we're gonna feed it eight bits, eight bits, eight bits into this 24 bit color depth here. And we're gonna read through the pixels until we've exhausted this. We have this list comprehension here. We're gonna exhaust all of our pixels and we're gonna project them over onto the ride into our RGB. One line, one screen of code. Inside of a REPL, we've parsed this binary structure and we didn't say fall. And so, this is the kind of power that we see in all, this could be, this needs to be ported into F-sharp. This needs to be another FB languages. It's here in Erlang for whatever reason, Elixir for whatever reason, just because of the history. But it's really beautiful. So, let me, I want you to just think about this problem here of like how, why Erlang? Why is this stacked? Why does it have nine nines of uptime and all these success cases whenever you could look at and say, you even have a type system Erlang. And Erlang would say, nope, but I have an operating system. And so, instead, we have another formal set of constraints. And so, the Erlang operating system, the Erlang VM, forces a lot of things that we can depend on in the same way that a type system might help another language. And so, I'm gonna blast through, so this is an interesting document here, quite a computer stop and what can be done about it by Jim Gray. This is tandem computing. And so, this influenced the design of Erlang here. So, this is worth looking at. This is a brilliant book. It's gonna talk about complexity. It's gonna talk about what makes things fail, why some hard things, why we can solve some things with analytic reduction, why some things are bad with stats, and why software usually falls in this category of organized complexity, which is hard. So, a lot of it comes down into these organizations, these hierarchical levels. So, in Erlang, we might see something that looks dangerous. No type system when we're down at the little. But we have these constraints that build up and this whole system of these hierarchies, they feed back and forth. And we end up with structure at a higher level that basically keeps everything all right. And so, instead of being dangerous, it's delicious. No, we go, and so, we get this goodness out of there. So, in a lot of ways, Erlang has this extra step at the right. So, it plays in the space, a lot of languages don't. Elixir plays in the space. It has this extra level of recovery. So, the defect has happened. How do we keep the defect from turning into an outage? Okay, now this is the part I really want to run into here. So, property-based testing. So, writing unit test is a waste of time. And so, this would start fights in some communities. And I'd love to see those fights.  And so, John Hughes, Papa of QuickCheck. Property-based testing, one of the Haskell behind Haskell. So, here we are inside of Elixir. Def module, we're gonna go back with our color idea here. ColorNamer, nameColor, zero, zero, zero, can be black. NameColor, 255, 255, can be white. NameColor, red, green, blue. If red is greater than green, and red is greater than blue, it's gonna be red. Same thing for greens, greater than red. Green, greater than blue is gonna be green. So, we fall through. And anything else is obviously an impossible color. Like anything else is just ridiculous, right? Okay, so, we go into IEX, we build this thing. We say colorNamer, nameColor, red, ship it. So, we're done, right? We've got our product, we're gonna have our launch. Well, okay, we're more responsible than that. So, what we're gonna do is we're gonna bring out property tests here. And built in into Elixir One Six is property-based testing. It's right in the box, it's right here. And so, we're gonna walk in property check all. So, we have these generators here. Red, green, blue.  We're gonna run, we're gonna create 10, or 100,000 unit tests here. And try to just swarm this problem. So, instead of writing one unit test around the edges, we're gonna create 100,000 of them. So, come in through here, run. Run our property-based test. Found one really quickly. We hadn't thought about the case of red and blue both being there. So, we have to have our purple. While we're at it, we'll probably also add yellow and cyan. And now we've exhausted all possibilities and everything should be perfect, right? It thinks about it a little bit longer and it finds 250, so we find gray. So, we've missed this other case here. We're gonna run again. Zero failures. So, we have perfect code here. And John Hughes is down here doing his celebration dance, right? Right in the box on Elixir, these are again tools that you won't see in a lot of other stacks of those places. So, we're at the end here. Value, the state-proofing over diligence. Think about this. You've got, on this side, you've got karma where you're helping the world. On this side, you've got spaghetti where you're not really helping anything.  So, we're out of time and so throw questions at me on Twitter. I'd love to keep in touch. So, and also help yourself to the Google clusters even if you were too busy, you know, listening to Tweet or anything. And if you want to keep in touch, I will say I have cards up here. I'm gonna get off the stage the next person can pop up here. Thank you all.


A film in three minutes, distant voices, still lives. Terence Davis is arguably the best living director in British cinema. His work is a combination of biography and fantasy revealing to us the inner depths of his turbulent upbringing in working-class Liverpool with a visual style and editing approach like no other. His 1988 film Distant Voices Still Lives is the second chapter in his biographical film trilogy and the film itself is actually a joining of two shorter films shot over a period of two years. The end result is a touching portrayal of a close-knit family growing up throughout 1940s and 50s Britain. Unlike most period dramas, the structure of the film is unraveled to us in an unconventional way, revealing intimate portraits of each member of the family as we see them develop and grow. The first part, Distant Voices, follows the struggles each character endures at the hands of a horrifically abusive father, played magnificently by Pete Possilfwate. The father figure is a source of terror to the family and yet like with all people, his relationship with his wife and children is complicated, allowing for moments of levity and joy. But such moments like so many iconic images throughout the film are fleeting and it's not long before we're taken straight back to the darker memories the director has of his own abusive father. The second part, Still Lives, is free of the tyranny Possilfwate's character inflicted but instead there's a deep sense of melancholy surrounding the world that Davis has constructed. We see relationships become frayed, happy marriages, communal singing at the local pub, the entire gamut of day-to-day activities ordinary people once did. Although the story is set in Liverpool, Davis never allows for any wide shots of terraced houses with the mills of heavy industry next to the mercy lighting up the sky. Instead, the world these characters inhabit feels like it could be anywhere in Britain, with the specific time and place uncertain. This style creates a feeling of other worldliness, as if we're being asked to enter the lives of these people much like when we look at old photographs of forgotten faces. He keeps the camera close to the actors with minimal camera movement. When the camera does move, the sense of time fading away is palpable, giving us some of the film's most beautiful shots. The way in which scenes slowly blend into one another helps to emphasise how much of the film appears almost like a memory, as if a personal yearning for nostalgia had encompassed the film's world and the characters in it. The many moments where we see the family and friends singing in the pub are stark reminders of how different Britain was as a country, and they provide some of the warmest encounters we as the audience have with them. The use of songs and music is heavy and visually presented with wondrous effect, capturing the true sense of community that a Britain of the past once had. On this theme on the relationship of music and imagery, Davis has said, I do think that film is closest of all to music. Notes and chords on their own don't mean anything. They only mean something when you juxtapose them with something else. That juxtaposition is Davis' greatest strength throughout the film, leaving us as the viewer haunted by the power of the director's memory and the images he has chosen to best represent it.


Ribi, would you be able to lead us in prayer? Okay, how about Lubega? Let's pray. Yes, yes. Our Father, our Father in Heaven, we thank you for this morning and this day. We really thank you for this lecture we are going to have. Lord, we do pray for our lecturer. Let her be used as a vessel to teach, to remind us and to train us and Lord also let us be here to understand as we take the work of the Lord to another level in our generation. We do pray as those brothers and sisters who have not yet been able to go. We do pray and believe in the name of Allah Jesus Christ, amen. Amen, amen. Thank you. Thank you Lubega. So we will continue with what we were discussing in the last class. We saw how Satan has his strategies, he is a defeated enemy, we already have the victory but then he does his best to try and interfere with God's purpose for our lives. He does his best to play, we said mind games earlier if you recall, the methods of workings of the devil, his schemes and plots we should not be ignorant about them and many of them have to do primarily with the mind. So that is one way mind games is something that he is so well versed in and he can use that to bring down a believer. So when the believer is aware, this is how he works, primarily he works through the mind, he tries to interfere with the thought patterns of a believer and then we also, we will talk about open doors, violations and intrusions that he uses to interfere. So when a believer understands these things, we can be prepared. I am not going to, when you know that this is how a thief will try to get in, he will try to get in from the backyard, if so then what people do, they try to have some security system in the backyard or they have a big lock on that door that opens into the backyard. So preparation, so we are prepared even in our mindset. This is how the enemy could attack us, so we are well prepared and if at all, we are in the attack, we also have what it takes to overcome the attack. So that is how it is important to know all these things. So talking about mind games, again in the last class, I said that he wants to influence and take it to the greatest influence. So if we allow him, then you know, it just the influence, it goes into oppression and then it goes into, you know, the thoughts leading to arguments and reasoning and finally a stronghold and we know that strongholds in the mind area is where demons can occupy. The stronghold is a fortress. So in the olden times, you would have fortresses where people will dwell and soldiers would dwell in those fortresses and that is how the demons use the fortress created in the minds or in other words, strongholds to dwell there and we say that believers are demonized because they have strongholds in their mind. Unless these strongholds are broken, it's difficult to evict these demons. So we said put on the armor of God, we have to be thoroughly prepared for the attack of the evil one. So parts of the armor of God, you know, we went over different things and we said that, you know, if we can maintain, like if I have to summarize, then the armor is when in our mind we are prepared. So I understand what is salvation, I understand who I am in Christ Jesus, then I understand what is the truth, what is righteousness, what are righteous acts and I go by that. And I don't give any place to sin or the works of sin.  So then I am preserved from any attack of the enemy and even if there is an attack, I know how to overcome the enemy. So that is the manner in which one needs to protect themselves and don't give the enemy any foothold. That is no entrance, no entrance. Sometimes we see in territorial warfare that people will go and occupy a land very close to a certain space and before you know it, from there they will enter. If you remember the story of Troy, so very close to a place, the community is a horse and there is nothing wrong with this wonderful good looking horse and so what do the people do? They take that structure, that horse into within their fortress, they allow it and they think, nothing will happen, we'll just have this beautiful horse inside but that's exactly what the enemy does. He doesn't want you to fully open up everything to him. He just wants one entry point. So once the horse comes in, then the rest of the story of Troy unfolds, that there were soldiers within it and they come out, they attack, they destroy, I don't remember the names of the communities but yeah, so it's the war that happens. In the same way when we allow a little bit of the enemy and the beautiful thing is that we have the Holy Spirit dwelling within every believer and the Holy Spirit is so faithful to do his work of convicting us, of sin, righteousness and judgment. Now when we respond to it well and good, we are keeping the doors shut to the devil but when we don't respond to the Holy Spirit and we continue with our sin, that is when the problem starts, it's like giving ground to the devil and that foothold or that opportunity or the power that we give him, he can use that to his advantage and bring the crack in the entire building. So mind games, in the area of the mind, you know, be very, very firm with the word of God. So meditating on God's word and that's also something that I emphasized in the last class, we can all work on it and you know, it's one of those disciplines that really helps us to maintain a strong and a victorious Christian life and particularly against the attacks of the devil. Now other open doors, we said other open doors can be sin, sin is definitely one nice open door that Satan can come in through wrong words, either spoken over us or, you know, whomever we have authority over, that also will cause an open door for the enemy to enter through.  But, you know, maybe those are the times when we are not guarded anymore. Let's say I went and I preached, I'm not going to explain in detail sin and wrong words. We've discussed that thoroughly last time. So I'm just coming to situations here in our notes, I'm on page 42. So situations is like, even if it's not a certain situation where, you know, some family member is causing strife or, you know, something else, confusion in the home and that Satan can use against us. If not that, just in our own journey, the highs and the lows can be moments that he can use. So I was saying, if the ministry has gone well, or let's say, you know, somebody has gone on a mission trip and they've preached so well, they've seen so many people healed, they've seen so many people delivered from demons and miracles have happened, testimony, so it's a high. So what happens right after a high, generally to us human beings is we take it easy. We think, ah, okay, now I'm going to rest. I've had great ministry, I'm just going to chill, okay? So we sometimes also are low on guard, guarding ourselves because those moments we make ourselves more vulnerable and Satan can easily use it. So maybe pride, that's a good thing for him to do. He could say, oh, okay, come and put thoughts in our mind so that, you know, pride can happen or people may come and there can be a lot of flattery and those same people can give us some wrong suggestions and, you know, we end up doing something completely, you know, something that we have not thought through well. So there are a lot of ways in which he can use our un-guardedness and this un-guardedness happens when, you know, we are at peace or we are relaxed or we are very happy. So it can happen during moments of triumph or it can also happen during moments of great grief and trauma. So let's say we've been through a very low phase in our lives. It's easier, isn't it? For Satan to plant thoughts to say, oh, God doesn't love you or God has forgotten you. He can use that moment because you are vulnerable and many a time for believers, those are the moments where they feel, why did this happen? If God was with me, if God's promise was true, you see, what is happening? They are slowly letting go of faith and slowly Satan is bringing in his thoughts into their minds. So especially when things go very well for us and when things go quite badly for us, it's best to be on double guard, you know, over ourselves. Maybe you want to take time out or maybe you want to rest and then spend time in God's word or something like that where you are still alert and you can catch the enemy. If at all he tries to come in a certain way. So Satan is very happy to get such situations, opportunities, even when it comes to, see I'm talking in terms of an individual and that person's walk of victory. But think about a church situation, even in a church situation, Satan is very happy when you see some cracks, you know, maybe you remember in act six, there is a time when one community starts complaining that another community is not supplying food to the widows. That's a great chance for the devil. Now, if the leaders don't use wisdom to resolve it in a nice way where both the communities have been considered, Satan can use it to bring division and say, you know, the pastor is for that community or the elders are for this community, they are not taking care of you. You know, so many things, he's just waiting, okay, where is the crack? Even when it comes to a church setting, he can use different situations. So you know, one really needs to walk with God's wisdom. There was one such incident when Paul wrote to the Corinthian church. So in 2 Corinthians 2, he talks about one of the brethren who fell into sin and, you know, he tells them that, you know, you restore such a one, they had put him away because of the sin, but later Paul tells them, you please reaffirm your love to him. So this is, I'll tell you 2 Corinthians 2 verses 8 through 11, so I'll read the full passage. Therefore, I urge you to reaffirm your love to him for to this end, I also wrote that I might put you to the test whether you are obedient in all things now whom you forgive anything I also forgive. And for if indeed I have forgiven anything, I have forgiven that one for your sakes in the presence of Christ.  So, you know, Paul recognizes, okay, so that is an incident of a brother being restored. Now if that brother is upset and, you know, if, you know, he carries bitterness against the leaders, so many things can happen, isn't it? And that could bring about an issue in the church. So he is trying to speak wisdom into their lives and saying, okay, in correcting this person so far, we have, you know, dealt, we have spoken the right things, you know, for him, we have given him time all that, now it is our time to reaffirm our love to him. It shouldn't become like a war between us and this person. So employing wisdom, particularly in the church setting, we have to pick up, okay, is there some kind of bitterness that is cropping up? Is there some kind of anger? Is there something, anything, any situation because Satan loves it. If he can have one or two of those situations that he brings in commotion, very strategically he will tend to do that. So whether it is in our personal lives or in the church setting, keep the door shut to the devil, okay. So what, what open doors to the devil, we said that sin can open door, wrong words can open doors and certain situations that we don't deal with, they can also open the door for the devil. Now the third manner in which, you know, the devil would like to attack believers is we are calling it violations and intrusions, okay, violation and intrusions. Briefly I had mentioned this sometime back, I don't know if you remember. So if my home has a protective wall around it and the people who are permitted to enter can only enter through the gate, then you know, that's how the good people would do it. But what will a thief do? The work of the thief is jump over the wall, okay, or enter from the back gate as, back door, gate, whatever, as Jesus says. So what's happening, you know, this is intrusion, legally Satan is not supposed to do this. This does not belong to him. But here he is, okay, entering, violating, right, violating is again, you know, violation is wrongfully doing something, okay, that's not his, his part to do it. But here he is meddling with things that he should not be meddling with. It's a violation of the rule, violation of the law. So Satan tries to do this in the lives of believers.  But in the area of finances, you see that Satan is trying to do something, okay, something happens, some big loss happens, and then you're like, what is this? How can he do this? And so then we, you know, it could be any one of these things, whatever we listed out so far, Satan is trying to attack us in that way. He could have an open door. So then what should I do as a believer?  So then I tried to fix that, or it could simply be that, yeah, there is no open door, but he is trying to violate.  So legally or lawfully, these are the things that belong to us. Now what does Satan do, violation, intrusion, he'll try to bring a sickness, he'll try to bring, you know, problem in the finances, he'll try to bring a problem in the family, he'll try to do all these things which he's not supposed to do. So then in those moments, if we have understood, yeah, there is no open door, so this is an intrusion, okay, or this is a violation. What do you do? Basically, you take your stand and you say, no devil, I will not let you do this, okay, or, you know, a child whom you brought up in the ways of the Lord and now the child is influenced, you know, more influenced by, let's say, some friends who are leading the child into wrong habits and things like that, you can say no devil, you can't and then you have to take your authority and begin to enforce victory when you find that the devil is trying to violate or intrude into any given area of our lives.  So if you allow him, he will do it. He will just enter in and take as much control as is possible. But when we enforce our victory, then what are we doing?  So these are all things that we begin to fight with and enforce our victory with because our understanding is quite clear. Here is a defeated enemy who is doing his best this way or that way to bring destruction. So time and again, it is my responsibility as a believer to catch him.  If he is trying to violate in truth, stop him. So when I do that, that is when, you know, I am taking authority over Satan and his demons. And you know, while we talk about this, there is also a very important thing. See, we are resisting the devil, okay. So that's what we were saying right now. So if he is trying to come in illegally, resist the devil, James 4.7, okay, it says therefore submit to God, resist the devil and he will flee from you. So we have to resist the devil, but always remember that the resistance comes after submission. So which is why I said, are there any open doors? We check on that. So as long as I am submitted to God completely, whatever the Holy Spirit is speaking to my heart, I am doing that. I'm in a good place and then I can resist the devil. Now, unfortunately, and we'll talk about this later as well, when we start to resist, but you know, there are loopholes in our attitude towards God. That's not effective against the devil, okay. But yeah, the point from this chapter that you have to take with you is, we can't let him do what he's doing. And that is another reason like, you know, we minister, right, we minister, many of you are involved in your churches, you are involved helping pastors for the Sunday services for other meetings. So what happens through all this ministry, you know, we are going against the devil who is putting destruction over people's lives in different ways. And that's what we are doing as a body of Christ. We are saying no devil, you can't do it.  That's our, that's our role as God's people. We are here to enforce God's victory in our lives, in every area of our lives. So you would say, in my marriage, children, finances, workplace, relationships, future, ministry, everything, okay, and others, anyone that the Lord brings to me. I'm here to resist the devil, to enforce the victory of the cross, because we have already seen that Satan is crushed, expelled, condemned, disarmed and destroyed. So you know, we do our part, okay, and the Lord Jesus, he also equipped his disciples and he told them to go and do the same works that he did. What kind of works did he do? John John 3-8, we know that the Son of Man was manifest to destroy the works of the devil. And here we are disciples. What does a disciple do? Does what the Master did and what the Master has instructed and very clearly, you know, even at that time, when Jesus had his disciples with him during his earthly ministry, he sent them out, okay. He sent them out to go heal, deliver and do all the mighty works. So this is the way in which we recognize the games of the devil, yeah, sorry about that, and we have to take our position and enforce our victory, okay. So this would lead us into the next chapter here, which is about maintaining an overcomer's lifestyle. We can't, we've seen this, right, so the devil still has time before he is totally stopped from influencing this world, but while he is still active, we can maintain an immunity against the devil. And if he chooses to intrude, violate, we enforce the victory, okay, through an overcomer's lifestyle. So we are going to discuss that. But before that, I think I'll just pause and see if you have any comments, any questions, any thoughts at this point. Yes, yes, Nicholson, please go ahead. Yeah, good morning Parthik, am I audible? Very much so, based on what's happening at church, I just had a question, like there's this scenario where probably one spouse is a believer and the other is not. And one is a strong believer, they believe in God's word and they enforce all of this, but the other is the other extreme where, you know, they're still following certain rituals and obviously open doors. And that is one scenario where we've not seen any breakthrough, actually, where it is affecting the family. So as per my understanding, being, even though it's the wife, she has the authority to claim the family for Christ, but there's still not complete deliverance there. So that is one question. And the other one is similarly, there's another recent family who are new believers as well, whether daughter as such is under the influence, but she's much older.  And what like, I hope I don't know if I'm too clear or not, but how does the authority and resisting the devil come into play there because they're not seeing deliverance? Okay, yeah, sure, Nicholson, no, you were clear. So we've understood the scenario, just a moment, I want to give you a scripture. Okay. So we have talked about this passage when we did prayer and intercession, first Corinthians chapter seven and verse 14, I'll post it for us. So as you can see, it says for the unbelieving husband is sanctified by the wife and the unbelieving wife is sanctified by the husband. Otherwise, your children would be unclean, but now they are holy. So from this, the idea we get is, if there is one believing spouse or one believing parent, their spiritual authority is greater than the spiritual influences, you know, whatever spiritual influences that either, you know, that other spouse has or the child. Okay. So having seen this in God's word, I would say Nicholson that it's just a matter of time. So though you haven't seen breakthroughs yet, you know, continue in prayer, continue in seeking God's wisdom and, you know, yeah, just hold on and claim, you know, the passages of scripture that say that you and your household shall be saved. So if you look at God's word, there is one believer in the house and in this marriage scenario, there is incredible spiritual influence. Okay. So keep exercising that influence is what I would say. Sure. Thank you, Pastor. Yeah. Yeah, sure. And I know, I mean, right now you don't have, it doesn't look like this has, this is visible, but yeah, you just need to encourage the person to continue praying and continue speaking God's word. Sure, Pastor. Thank you. Yeah. Sure, sure, sure. Thank you. Yes. Very, very good question there. So anything else from the others? All right. So anyway, we are all in agreement that Satan tries to influence us, you know, in different ways, but, you know, by God's power, his dominion and authority, we can overcome the enemy. So let's study about how you and I can become overcomers, because this is one enemy that we have to face, whether we like it or not. So how can we be in a safe position to start with, we'll talk about our position and how can we maintain that safe position?  Immunity doesn't mean that Satan will not try to influence you, but it definitely means that we have some strength against what he does. So when we are in Christ Jesus, we have that immunity. So there are two scriptures given here. Yeah, let me read. Volosians 3 and verse 1, it says, if then you were raised with Christ, seek those things which are above, but Christ is sitting at the right hand of God. So this is Christ's position. And you notice, we have also been raised with Christ, and we've seen earlier that we have been seated with Christ. So when we are in Christ and positioned with Him, as we see in Ephesians 2, positioned with Him in the heavenlies, the right hand of, like we are with Christ, the enemy cannot touch us. And I've given you that scripture earlier, 1 John 5, 18, which says, we know that whoever is born of God does not sin, but he who has been born of God keeps himself and the wicked one does not touch him. So by virtue of the fact that we are now God's people, our God's children, the enemy cannot touch us. So we already have that inner strength or if you want to call it immunity against the evil one. So we have protection. And not just that, when we study Psalm 91, we see that he who dwells in the secret place of the Most High will abide under the shadow of the Almighty. And the Psalmist says, he goes on to share how protected he is, how covered he is by God's presence. Now if you go back to the time that man was created in the Garden of Eden, sorry everyone, it's just this little long standing cough that I'm trying to deal with, but it's a lot better now. So yeah, it should be okay. So when man was created, I was saying that God would come and meet with them. If you remember that, it's like the presence of God was a constant at that time. Like the Psalmist says, Psalm 91, he who dwells in the secret place of the Most High will abide under the shadow of the Almighty. So it was like the presence of God was their address. That's where they dwelt when they were in the Garden. And that position of being in the presence of God and being in relationship or communion with God was something very, very special. Okay? And we know that God tried to restore this for us through the Lord Jesus because mankind had lost it through the fall. But when we go back to that original setting of this presence of God, communion with God, God visiting man and being so close to man, talking to man, the original setting. Sometimes you have your gadgets and all they come with some original setting. So that original setting was that there was a relationship that God established with Adam and Eve. This was an intimate relationship which involved worship of God. Okay? So they were adoring God, they were honoring God and they were walking with God. So there is a relationship which marks that interaction. There's also submission because for the entire time, except for when Adam and Eve chose to disobey God, they were submitted to the will of God. Okay? Whatever God had told them to do, they were doing it. So there was relationship, there was submission in the original setting. Okay? Then there was also responsibility. Responsibility is God had given them a mandate and told them that, okay, I put you here.  So he gave them responsibility in that sense and we also know that, you know, he gave them, he wanted them to tend the garden. So originally God gave them a sort of a fulfilling life where there was something for them to do, something for them to accomplish and enjoy. So that's how God made them, then God also gave them dominion. So they had the authority to care for everything in the garden. They had the dominion to protect the garden, which means that if at all there was an intrusion, they must stand up for it, you know, was Satan around at that time? Yeah. You know, he's a creature, he was created way before. So he very much was existent at that time and, you know, God in his understanding knew that the garden needs protection. So it was the responsibility of Adam and Eve to walk in the dominion that God gave them. So all of this was how God originally intended for them to live. And as long as they maintained relationship, submission, took on the responsibility which they had from God and exercised their dominion, they were okay, so nothing really went wrong. So in other words, you know, we can look at their lives and we can see that, okay, at that time, what did we discuss? We said, okay, we must speak God's word, we must renew our minds, you know, we have all the other weapons of warfare which we will study about the name of Jesus, the blood of Jesus, all of those things, but in the garden, these people were able to have a safe and a fulfilling life just by virtue of these four things, maintaining their relationship with God, maintaining their submission to God, maintaining the responsibility and the dominion that God had given them. So learning from this, what we are saying is, one is we recognize that now we are in Christ Jesus, now we are seated with Christ in the heavenly places, so our position has changed. So knowing it, God's people perish for lack of knowledge, so we know and we can use that. And also, when we live in the presence of God in this way, like Adam and Eve live, there is also a place of security. He who dwells in the secret place of the most, I will abide under the shadow of the Almighty. So shadow is like a covering. Just through these things, we end up having a covering, you know, by maintaining our relationship with God, by developing our relationship, intimate relationship with God and also, you know, our submission to God and knowing our identity, okay, I have dominion, I have authority, all these things. So we just like to encourage to keep this up and that in itself is like a weapon against Satan. Okay. Now, the next thing that is important in our lifestyle, one is we are maintaining the strong relationship with God, we are aware that we are in Christ Jesus. Next, holiness and consecration is very important, okay, what is consecration? Consecration is being set apart, you remember, for this whole deliverance topic, we said that any object which is consecrated or in other words, we can use the term dedicated, okay, dedicated to demons, it becomes a channel or it becomes a vessel of expression of that, you know, that kingdom. So if it is dedicated to demonic entities, we would say, okay, that particular object was consecrated to demons and demons start expressing themselves through it. Similarly, when something is dedicated to God, or let's put it this way, talking about people, when we are dedicated to God or consecrated, set apart for God, what can you expect?  Now how to do this?  You dedicate, you consecrate, you sanctify everything that belongs to you and one is we make that dedication and then we walk in submission or in obedience to God, okay. So earlier I brought up this verse from James 4-7, submit to God, resist the devil and he will flee from you. So before resisting the devil, if I maintain a lifestyle of submitting to God and what happens? I am in a good position, I am protected and Satan will do his part, you know, if he gets an easy access, he would love that. But through these three things that I first shared, we are not giving him any easy access.  So if we want the enemy out, then we better maintain a lifestyle like this. But if we choose to, you know, play around with God and also say, no, no, it's okay.  You know, it will not work and which is why particularly when it comes to facing the devil, facing Satan, the main thing is my submission to God. The more I am submitted to God, the enemy cannot look me in the eye. He'll be like, okay, I better leave this place.  So can we walk in obedience, can we walk in submission and holiness before the Lord? And you know, you also in James 4, 6 and 7, you see actually in 6, I think, yeah, it talks about God giving grace to the humble and then 7 is where you read submit to God, resist the devil.  God gives more grace, he gives more grace to whom, to the proud, oh, he in fact resists the proud, but he gives grace to the humble or the submitted to God's leading and God's guidance. So let's put it this way, to the extent he reigns in me, he can also reign through me. So we must allow God to rule and reign in our lives and that's the best way of living a life of an overcomer against Satan. So let's take a break now, we'll come back and we will look at a couple of other things that will protect us against Satan. So 10 minutes, let's come back at 11 o'clock, thank you.


Good morning. I'm all dressed up in my Sunday best once again. Oh my camera's dying.  Everybody knows that Take pictures. It's sort of like a fax or a scan and then it gets sent straight to the right people. Oh Whoops, I gotta put what trip number this is on here. Oh Boy, whoops. Okay. What's like what is a trip number? Put this on hand trip number So that they know what load this is So how are you guys doing? How was your day? How was your day? Let me know let me know Scan this in Bear with me here people we're getting this day going so I have an empty flatbed behind me now And I have a load of lumber that's waiting for me in Atchison just west of the city Except that next and send it in there we go my proof of delivery Is that the office and I can get paid because they won't pay me without that Because for some reason they think that I drop everything in my backyard or something I always need to prove that I delivered it Big pile of garbage here off to our right behind these trees. Yeah, it's like a mountain of Scrap metal Fridge couple washing machines Maybe it's a recycling plant. I don't know All right, so we have 30 miles to go to our Pick up the only thing is on my 70 hours that I can drive in a week. I've only got six hours left The six hours left and that's in that time. I've got to pick up this load and get going So I'm not gonna get very far today Tell you that much so probably still have a Full day tomorrow, but then I'll be home until next Saturday Which reminds me I have to call in and make sure that this load is able to deliver on Monday That they're not expecting me there like Wednesday And the forklift in front of me I Remember getting loaded here when I was on dry van. We used to pick up dry van loads of lumber here all the time Now the flatbed I've never been this far into their yard Just told me to follow him. So I have no idea where we're going. It's a pretty tight yard lots of wood here though So much lumber that gets sold.  Look at this Check this out. How far back are we gonna go? I have no idea what I'm picking up exactly Something something of this stuff When there's even more back there yet. Oh wow, I had no idea case So I'm probably gonna load right in this open area here. I'm guessing I'm gonna turn around and Guessing right in the middle here Okay, we're heavy We are really Really heavy. I'm taking a look at this load Let me show you we are loaded right up to the max for the US weights We're taking this all the way down to Wisconsin So I plug you guys in there first So we're all ready to rock now. I only have Five hours just under five hours remaining on my 70 hours. So I can't even go that far down the road I'm not even gonna make it to Saskatoon I might make it to north battleford Somewhere in there and then I'll have to do the rest tomorrow. I Believe there's a gym on the way that I could stop that today because if I don't stop today I'll have to stop tomorrow Like to stop it both of them, you know today and tomorrow I'd be great because I haven't been again since when when was the last time we were at the gym Was it in Michigan? Oh That's a long time. It's like five days again. Oh, man. No wonder I'm feeling kind of like a noodle I gotta get back there. I'll see if I can swing by the one. I think it's in Veggeville, Alberta, Alberta Veggeville, Alberta There's about an hour and 15 minutes east of here. It's on the way back I think we're gonna have to do that So easy so easy to make excuses about why I don't want to go to the gym today Oh, we'll go tomorrow. Oh, you know what?  He'd probably rather be at the gym, but you know, not everybody's Arnold Schwarzenegger I can't speak for everybody I guess but for myself anyways if I have a choice. I'm gonna want To skip the gym, but hey, hello. Hello Hello, excuse me. I was on the right of way. You were pulling out of your parking spot. Excuse me I'll forgive you because I'm a forgiving person because I was taught to forgive No, not you. No, I only have so much forgiveness Rolling across the prairies of Alberta right now You know what I've noticed I actually get better fuel economy when I'm fully loaded Weird right I guess maybe just the momentum of all the weight just pushes me forward pushes me down the road I notice that when I have light loads or no load at all I actually get worse fuel economy than when I'm fully loaded As long as I don't have a load that catches a lot of air Like this load of lumber the air can just stream right around me, right? Doesn't have anywhere for the air to create drag But I'm fully loaded and I'm just sailing along here doing better than I was doing yesterday with the wind pushing me And today the winds not even pushing me. It's a calm day It's interesting Is it Vegaville the town that we're stopping in here? What's this town called again? Yeah, Vegaville, Alberta It's just a couple of minutes up the road here. I'm gonna stop at the snap fitness lift some stuff up and put it back down And we'll probably make it to north battle for I'm thinking Looks like I can barely make it there. I have three and a half hours left on my 70 hour clock I'm gonna need about every one of those minutes to get to north battle for it But Maybe we'll stop now Lloyd Minster. I could stop in Lloyd Minster, but That's a little too long of a day tomorrow, then I'm too little too long of a day. I could do it, but If we can go a little further today, why not? I mean still got plenty of day ahead of us This used to be the actual Trans Canada that went right through the highway 16 Went right through Vegaville here until they built the bypass where the four lane now goes around the town So I've never actually been in this town, but I've driven past it hundreds of times There is so close to the beaten path right so close, but just off These kind of towns always remind me of radiator springs from that movie cars You know, they used to be a real hop and happen in place lots of traffic And then they built the bypass so that everybody could save two minutes But this town is still thriving this isn't like radiator springs at all it's still thriving lots going on here So snap fitness is supposed to be off to our right here. There it is All right, can I get in there with my truck? I probably shouldn't I'm loaded right now. I probably shouldn't go in there. I could fit in there doesn't say no trucks But their driveway is designed in such a way that it obviously means no trucks Okay, so we'll go around we'll park in the back All right, can I park on the street here? It looks like it Yeah, I'll just park on the street right here Here we go perfect So you don't even have to go and mess up anybody's parking lot Snap fitness is right on our right here now. So we're behind the building. I'll have to walk all the way around to get in but Whatever I move up a little bit. What am I doing? Move up. I can go all the way up to this yellow paint on the curb there Gotta leave room for the fire hydrant though. There we go All right, so diesel it's right there on the other side of you see it See it's it's right snap fitness diesel. You're gonna come and lift stuff up with me No, I'm good man. I'm in the old main. I'm gonna sit here. I'm gonna have my mid-afternoon nap You just woke up from a nap. You want another one that was my afternoon nap This is my mid-afternoon nap.  He lives here.  Well, you go to work. I take my dog to work with me He's with me all the time Calls in because my dog's in the truck He then I go out and look at the truck. He's sticking his head all the way out the window. Just give me this big smile You were perfectly fine. Hey diesel that was a lot like two years ago now Can't believe some people they just panic right away. He's fine. He's fine All right, let's do this It should take about 45 minutes to an hour. You'll be fine diesel. I'll leave the windows open for you again Don't have to worry about anybody Getting in here because diesel will literally bite their fingers off if they stick one finger in here. I'm serious He's ultra protective when I'm not around or when he's in like guarding mode. He gets pretty scary He won't let anyone near the truck never mind touch it You touch the truck I can always tell when someone got too close to the truck because everything I left on my dash and everything Is just all over the place because he just jumps up on the dash throws everything off I don't discourage it.   All right Oh It's a good workout. I know I got nothing to brag about yet, but Feels good feels really good. I can barely lift my arms right now. They're just like flubber That's good. That means I've worked them real good And my legs too whenever I do my legs Walking to the truck from the gym seems like it takes uh, it seems like it's like 10 miles Okay, so we've been here almost an hour and a half. It's time to get rolling Let's see if we can make it to north battleford north battleford is let me see Google give me your knowledge Give me your wisdom. Oh, why is one? North battleford. I want to get there How far away is it? learn me Okay, here it is here it is Directions come on google. Don't disappoint me two hours 47 288 kilometers and the speed I go A little over three hours And I have three hours and 17 minutes available to me I think we can make it. I think we can make it if I gotta speed up a little bit. I'll speed up a little bit whatever okay So we're gonna go park at the petro pass there overnight We're going tomorrow and then it's about a 10 hour drive home From there tomorrow. Who's talking to me? Who goes there? What do you want? Oh, it's an email What happened? What happened? What happened? Oh something I ordered from amazon was delivered Nice to know I don't know what my favorite part about headed heading back east is one side You want to know what my favorite part about heading back east is? I don't have to stare into the sun all evening This is gonna be great We're headed well we're pointed west right now But it's because we got to go around the block here and head back east I've been driving into that sun for four days Every evening's right in my face Okay, okay go go go check it. There you go.  Hopefully nobody cuts in beside me on my right looks like people are smart This is Alberta people are smart here.  Are you turning? See this big truck is turning the pickup behind him. I don't know if he's turning or not because he doesn't have a signal on Okay, so you are going straight. Well, why did you why didn't you just go around him then? I'm so confused Okay, nobody hit me Nobody get in my way here. I go Here I go toy Oh, I feel so good now It's like whenever you leave the gym it's better than Knocking back an ice cold beer after a hard day of work, you know, it's it's better than that. It's just Well depending on the day, I guess I should say it's not better than that, but it's It's better for you than that Beggarville look at the little town like those houses over there all identical Little love shacks. Oh, it's a motel. Oh, that's cool. If you stay at that motel in Beggarville You get your own little mini love shack Cool No noisy neighbors or The neighbors won't hear you whichever side of that you're on cool Off on our left there. Look at that Don't mind this guy jaywalking It's weird. It's like two towers that they built into one or the two towers individually I don't know. Why why do these things amuse me? I'm amused by the strangest things I think I'm just excited to be headed home. I think that's what's going on These orange pillars mark the border Between Alberta and Saskatchewan I always wonder still When you live in a town like Lloydminster where half of the town is in one province and half of the town is in the other province And one province has higher taxes than the other province Why does everybody even bother living on the on the side with higher taxes? Why don't you just move to the side with lower taxes? And is the education the same on both sides? If one side's getting a Saskatchewan education The other side's getting an Alberta education. Is there differences in funding? You would think that one side has got to be better than the other they can't be exactly the same Any of you live in Lloydminster, what's the differences when you live on one side or the other? How about registering your vehicles? Is it cheaper to register your vehicles? If you live on one side rather than the other They must be pretty equal. Otherwise, like I said, everybody would just move to the other side of town Where it's cheaper. That's what I would do. Am I the only one thinking this way? Can't be Why do I think of these things? I don't know. I haven't figured that out yet. I'm a weird guy These are the things that go through my mind on a daily basis. I'm not normal I don't know what's wrong with me You got to think of them, right? To me that's normal. That's what I would think of I want you to pay close attention to this truck right beside me As he pulls forward. Look at his mirrors. Look at his mirrors That is the Dodge Ram and he doesn't have his tow mirrors out Wow, that one does though. He makes up for it Okay, well in his defense he needs them because he's got that big thing on the back It is very rare already these days that you find a Dodge Ram that doesn't have his tow mirrors out Sometimes you'll even see Dodge Rams that don't even have towing packages on them. They don't even have a hitch They got their tow mirrors out


This is stock number 10588. We are here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used sports car headquarters. Today we are checking out this super clean 2016 Chevy Camaro 2S-S. This vehicle has the 6.2 liter V8 motor which pumps out 455 horsepower. It has been fully safety and inspected by our service shop has a fresh oil and filter change. All the fluids have been checked and topped off. It has four brand new tires and this car is 100% ready to go. Mosaic black metallic is the color. We shoot all of our videos in 1080p 60 frames per second. So if you have HD capabilities on your computer tablet or smartphone device turn them on right now because it's definitely your best way to check out the quality and condition of the vehicle before seeing it in person. If you want to check out all the photos on this car in the upper right hand part of your screen is a link right to our website. Click that and check us out there. It comes with the 20 inch painted alloy rims. Brand new Goodyear Eagle 24540 ZR20 tires. Rembo brakes all the way around on this car. And of course those tires being brand new have all the tread left on them. Front fender is in excellent condition. The hood is in very nice shape. I didn't see any dents or dings on that. It comes with the HID headlamps, the LED running lights and the LED fog lamps. The front bumper is in really nice shape. I didn't see any major dents or dings on that. And the passenger side front fender is in excellent condition as well. Passenger side rim on the front. No scuffs or scrapes on there. And as you go down this side of the car take note of how clean the body is, how reflective and mirror like that paint is. We take these HD videos so if you are far away or even if you're close by and just cannot make the trip down but you're still interested in purchasing the car you can see the car hear the car and have confidence in the vehicle that you're looking at before you even get here. Back tires are brand new as well. And you can see the little wear line on there from being brand new. This one does come with the sunroof. The roof is in nice shape as well. As we come around to the back of the vehicle it does have the dual rear exhaust. Rear bumper is pretty nice condition. One tiny little ding on the rear bumper there. Nothing too bad though. The deck lid and spoiler is in nice shape as well. Do get the LED tail lamps back storage area. Lots of room back there for storage. That trunk shuts nice and solidly. As you go down the driver's side just as clean as I passenger's side no dents or dings on the rear quarter. And for full disclosure this back rim is in excellent condition as well. Driver's side door looks really good. No dents or dings there. It does have blind spot monitoring and those are heated mirrors. Inside the 2SS package gives you the black and red leather interior. You get the SS emblem in the backrest. Back seats are very clean as well. No rips or tears back there. They do fold down for extra storage. It does have the latch child safety system and you do get a wireless cell phone charge pad right there. You get that red leather trim on the doors on the inside. It does have the Bose sound system memory driver seat power windows power locks. Get the Camaro plate on the door sill there. And as we hop inside the car you can see that this one has 11,633 miles. You get the LCD digital display. This one has the heads up display as well. You can see right there you got your mouse power as well as I believe that's your g-forces right there. Anyways you get the flat bottom SS steering wheel. The steering wheel is heated. You get the thumb pads on there. Cruise controls, Bluetooth, audio controls on the right. The red stitching. Really good looking. Comes with the Chevy MyLink system with the factory navigation. These seats are heated and cooled.  You also have projection so you can hook your cell phone via android auto or apple carplay to the screen and you can project your own cell phone to the screen. So if you got ways or google maps or something you can project it to the screen and then you get a different navigation system on there as well. This is also where your backup camera shows up and I believe those are dynamic grid lines. Yeah they turn as you turn the steering wheel. So pretty cool there. And the dash and instrument cluster is very nice and clean. Passing aside floor mat and seat are in excellent condition as well. No rips or tears. The headliner is in really nice condition and it does have that power sunroof. Up here you get your homelink buttons, map lights. Those homelink buttons are for garage door security systems and line systems and then for your power sunroof. You do get on-star capabilities in that rear view mirror as well. The six speed manual transmission and you got your stability control and your electronic parking brake as well. And then your modes you can do your tour, sport, track, and snow and ice. So you have your different driving modes there as well. We'll take a quick look under the hood. I do apologize for the wind. It's always windy and fondlec. Under the hood we have the 6.2 liter v8 motor. 455 horsepower. This car has been fully safe and inspected by our service shop. It has a fresh oil and filter change. All the fluids have been checked and topped off. Four brand new tires. Get the true cowl hood there. And this car is 100% ready to go. To see more pictures of this car, one of our other 450 new and used cars, trucks, SUVs, minivans, Wranglers, halftones, three-quarter tons, one-ton sports cars, Camaros, Corvettes, Mustangs, Challengers, Chargers. You name it we got it. Go to our website www.summitauto.com. Full pictures and descriptions of every single vehicle from two locations all at summitauto.com. And if you'd like to check out more HD videos, you can go to youtube.com slash summitauto. Remember to like, subscribe, and share on this video and all the videos that you see there. In fact, in a second you will see a link to subscribe to our YouTube channel on your left. A link to more Camaro videos like this one on your right. If you have not been to our website on the bottom, a link to this vehicle on our website, click those, check us out. And we really look forward to helping you with this super clean 2016 Chevy Camaro 2SS in mosaic black metallic. Thanks again.


Kremlin can unleash new war in Europe by Lukashenko's hands. Political analyst of the Institute for Euro-Atlantic Cooperation of Ukraine Volodymyr Hobak predicted the likelihood of a hybrid operation of the Russian Federation against one of the NATO member states and an ultimatum to deliver a nuclear strike. As he stressed in an interview with Glavred, the Kremlin can use proxy forces for example Belarus, where Russian nuclear weapons are allegedly already officially deployed. Belarus introduces this into its legislation and returns its nuclear status. Therefore, Russia can play with it using Lukashenko and use Belarus under its control in the same way as Iran is using the Houthis, so as not to expose itself to retaliation, the expert said. At the same time, he pointed out that today Russia is really preparing an information field for hybrid operations in Europe. They are already beginning to complain about the deportation of Russian citizens from the Baltic countries and, for example, about the closure of the border with Finland for the access of Russian citizens to its territory. No one knows how NATO will be ready to respond. I think everything will develop gradually and perhaps this process will reach a certain culmination, which will generally diffuse all this tension that Russia brings to international relations. Perhaps such a nuclear challenge will consolidate the Western world, but this can only be verified in practice, Hobak added.