Pre-charged pneumatic PCP air rifles are powered by compressed air contained in either an integral air cylinder or bottle. The design incorporates a hammer that strikes a valve that releases some air to propel the pellet out of the barrel. The hammer always strikes with the same force, so the amount of air released by the opening valve changes as the rifle's onboard air pressure behind it drops. This impacts the power of the rifle as it progresses through its air charge, resulting in what's known as a power curve. Generally, an unregulated PCP's power output will rise to a peak before dropping off to the point it needs recharging. A power output that's dependent on the air rifle's pressure is not ideal because the pellet's downrange point of impact, POI, will alter accordingly. Because of this, many air gun manufacturers incorporate an air regulator into their guns. In a regulated PCP, the power output stays consistent throughout its entire air charge. When an air regulator is fitted to a PCP, the volume of air released is far more controlled for the entirety of the rifle's charge, and there is therefore no power curve. A regulated PCP offers what is known as a sweet spot that extends from the first to the last shots of the usable shot range. In some cases, because a regulator deals with air delivery more efficiently, the rifle also returns more shots between fillups. A regulator system incorporates a secondary air chamber, the plenum chamber, which is designed to operate at a constant pressure. This means that as the rifle's air pressure drops, the main firing valve always delivers an exactly metered volume pressure of air. The benefit of this is that the rifle's power output is the same, no matter where it is within its charge cycle. Thus, the power curve is eliminated, and the point of impact is not altered. It is important not to let the pressure in the rifle's main air reservoir drop below that of the regulator's operating pressure. Otherwise, the regulator effectively becomes redundant in the airflow chain. Many manufacturers now incorporate an additional gauge on their regulated PCPs to specifically indicate the regulator air pressure status.


All right. Welcome, everybody. Thanks for sticking around during lunchtime. We're going to talk about some cool, cool stuff. Talk about Lighthouse and how you can build seaworthy progressive web apps for the web. So my name is Eric Bidelman. This is Brendan Kenney. We are both on the Develop Relations team at Google, where you focus on Chrome and web. And we basically just give presentations, help developers use web technologies, build tools, build libraries, build things like Lighthouse that hopefully will make your life easier. The fun fact about me is that I'm from Michigan. So I point to where I'm from on my hand, go blue. And Michigan actually self-proclaims to have the most number of Lighthouses of any state in the country. So you're basically never going to run into any shoreline in Michigan because we are well, well protected. Fun fact about Brendan is that he wrote this really, really cool demo back in, what, like 2010? Yeah. And it uses, what, CSS2D Transforms? 2D Transforms. Why does it use 3D? You only had 3D on the iPhone at the time. Everybody else was still stuck in the 2D version. 2010, not a lot of support for GPU and awesome stuff like that. But there's this really cool part here where you click this button, it says, don't click. And of course, when you do, there's this inception moment. We got really excited about this. And we actually hired Brendan because we saw this demo. I have done some things since 2010 right now. Well, speaking of, we both actually work on Santa Tracker every year. This is something that launches on Google.com. It's kind of fun. It uses, it's a PWA. It uses all the latest web technologies. So it's Polymer web components. It's got a service worker. There's these games that launch every kind of day. This is one of my favorites where you can actually give Santa a little shave. And he's totally cool with it. He's Santa. He's a jelly guy. That's Santa's gift to you. That's brutal. Let him give you a. But that's a fun one. And we do this because we want to not only build, like, real stuff on our team, but we also want to open source it and to have people learn from these apps that we build. But today, we're here to talk to you about Lighthouse. And so Lighthouse is a tool for web developers that helps you improve the quality of your web app, not just PWA, but general web best practices. And it's also for maintaining the quality of your app. Because I think maintenance is actually really important. You want to have the ability to take in poor requests from a community, but also ensure that your app is fast, always stays fast. And it meets the progressive web app requirements. You don't want to be this guy. This was actually me back in January, where I did a push to an App Engine app. My latency rose, like, 2 to 4x, because I was doing way too many database queries. Totally just a boo-boo. It was a mistake. But I fixed it. You can see where the graph went down. But wouldn't it be nice if there was a tool to help us prevent mistakes like this? If only there was a way to automate this. If only there was a way. You've probably also heard about progressive web apps here at I.O. and probably even before that. So let's say you want to take, go down this journey of building a progressive web app. You've probably seen our documentation over on developers.google.com. And essentially, there's just a lot of stuff you have to think about if you want to build a PWA. And it's all kind of just a manual process. You have to serve your site over SSL. You have to have a service worker for offline, and all in that entails. Responsive, add to home screen. Are you fast on 3G? If you actually just go and scroll this page, that's daunting, right? There's just a lot of things that you have to think about. Again, wouldn't it be nice if there was a tool to help us out with some of this stuff?  They've existed for thousands of years in many different industries. We have road science to help us navigate the road and give us information. We have lighthouses to help strips at sea guide and stay away from the coastline. So we said, hey, this is a great model. Why don't we take this and build a tool that does this for web developers? So we kind of reworded the definition of lighthouse for web developers. So lighthouse is a beacon of light that guides web developers. Nothing more, nothing less. It keeps you on the fast path.  Last year, Paul Irish, who's sitting in the front row right here, what's up, Paul? It looks so young. Yeah. He actually introduced lighthouse.  We had a really sweet, fancy logo done in MS Paint, as every alpha project should have at the time. But we've done a lot of work since then. Today, we're talking about Lighthouse 2.0. So a year later, the open source project is still open source, but we have a bunch of new stuff in Lighthouse. So we still have the progressive web app checks. Lighthouse will just go through your site, and we'll demo it in a little second, and tell you what you need to do to be a progressive web app. But we have a ton of other stuff, so best practices. We're already using the latest and greatest best practices on the web. So as the web continues to evolve, Lighthouse will adopt these new practices and then write audits for them. Is your site performant? It's great to have a progressive web app, but if it's not performant, no one's going to come back and use that experience. So we have a ton of new stuff for performance. And lastly, there's a whole section dedicated to accessibility. I'll be the first to admit that I often forget about accessibility when I build things, but no more Lighthouse can basically guide you through this process and tell you what you're missing. We also have a fancy new logo, which is animated, and an awesome new Twitter handle with four underscores. That's really important. Yeah, don't forget that. I don't know why we did that. Anyway, in the first day that we created it, it had more followers than me. That's not fair. Everybody go follow Brendan. But with that, I guess that's enough talk. Let's go ahead and just demo and show off Lighthouse what you get in a Lighthouse report. Yeah, let's try it out. So if we can switch to that, perfect. OK, so if you've been over to the mobile web tent and you'll have seen a giant Lighthouse, and this is the page that runs on it. It's a simple app. You put in a URL in this text box, and it goes and tests your app. So we've done a simulation here. Maybe marketing asked for some tracking scripts, and maybe business dev wanted some extra features here.  So let's load the page. And I want to use it, so I start typing in a URL. But as you can see, it's still loading, and it just erased my progress, because some JavaScript loaded and made it work. So we want to benchmark this in Lighthouse. The most popular way so far has been through the Lighthouse extension, which is in the Chrome Web Store. And we can go up here, and it's a simple click to get Lighthouse started. It'll actually clear things out, try and load this as a mobile device to the web app, and it refreshes a few times. So it can take a look, like, does it work offline? Does it work with a clear load? How does the accessibility look? And then here you can see the kind of checklist that Eric went through before. So at the top is the Progressive Web App Checklist, how your site is done as a Progressive Web App. And you can see that here's four things that we still need to do. Get a service worker is a big one. Get a service worker is a big one. And maybe work on our security. But we have seven things that we're already doing. So we're doing OK. And we weren't even trying. We're doing some stuff. Yeah. That's good. So next up is the Performance section. And here you can see a great breakdown of some really key metrics that have been talked a bit about at the show so far. And we're going to talk a little bit more about in a little while. But you can see them in context with the screenshots of the page load. And down here, Accessibility. Accessibility is a great one that a lot of people feel like they have to be experts before they even start on making their site properly accessible. But Lighthouse is a great tool to help you get started and just say, hey, make sure you do this. Make sure you do this.  Good job. And finally, best practices. Don't use document.write. Make sure your anchors have the proper opener if they're external sites, that sort of thing. OK. So that's Lighthouse and the extension. Super easy. I don't know why anybody would want. So that's a one-button press. You get Lighthouse. You get a lot of information in that. But I'm a power user, right? Maybe I want to tweak some things. Maybe I want to change some of the default settings in Lighthouse. What do you got for us? Yeah. Well, it's funny that you asked Eric, because I have a terminal back here. Oh, why?  So Lighthouse is also a C Light tool. And it's as simple as MPM install, G Lighthouse. And then we can do Lighthouse, you know, test the same demo server.   So this is just a little note script. It's doing the exact same thing as what the extension was doing. Exact same thing. It's in the background here. You can see Chrome is loaded.  And then boom, we got the exact same report. Very cool. C Light tool. Very cool. Okay. So Chrome extension. It's a one button press. I can run it on command line, use it in Node if I'm in that environment. Yeah. Programmatically too, which we'll talk about. Right. What if, you know, I don't really want to install anything. Like is there an even better way I'm working in, you know, as a web developer. Installing things is a lot of work.  Paul Irish covered this this morning. In Chrome Canary right now, you already have DevTools, or you already have Lighthouse in DevTools.  It's already installed for you. You can do this, run an audit and boom, there you go. That logo follows you everywhere now. Yeah. That's awesome. Yeah. So same thing. Same open source project is running in all three of these different environments and baked now into the Chrome DevTools. Yeah. So if you ever felt like contributing to DevTools, just go, you know, contribute to Lighthouse and it'll get put right into DevTools. That's awesome. You too can have code running there. Yeah. Everybody can have code in DevTools now. Yeah. Awesome. Thank you, Brendan. Okay. So let's switch back over to... Switch back slides. Talk about performance metrics. Those look fancy. Yeah. So you saw some of the performance section in Lighthouse which is something we deeply, deeply care about and many of you probably care about it too. But let's face it, performance is actually really hard and it's hard to maintain performance. Someone submits for a poor requester, comes in and changes something. You don't know if your app is still going to have that level of performance that it once had. So there's some metrics out there, right? You probably have heard of things like window on load and DOM content loaded. These are performance metrics, traditional old-school metrics. Are these good things we should be thinking about in 2017, Brendan? Well, I mean, it really depends. So, you know, maybe window.onload fires about when your page is ready.  So it's hard to say whether window.onload really reflects, you know, when your site loads. Again, WebVillum complex. You don't know if you should care about it. Yeah, yeah. What about, so Adios Money always tells me, like, reduce the size of your JavaScript bundle, right?  Is this something good or bad that we should be considering? Well, it's generally great advice. The more JavaScript you pull down, the longer it takes to parse and eval. On the other hand, sometimes it's a trade-off. Sometimes you want to go for a little size increase for, like, a much larger performance increase. Maybe you're bringing down server-side rendered assets, or maybe you're pre-computing something that would take a long time to do on a phone. So maybe a little bit size increase isn't necessarily a bad thing. It's hard to know. It's hard to make these trade-offs. It's definitely hard to know. So one thing we're focused on in Lighthouse is really raising the elevation of these user performance, user-centric metrics, such as First Paint, First Contentful Paint, First Meaningful Paint, and a new one called Time to Interactive. These are really about the user's experience, not just, like, window on load. Are your images loaded? Are your scripts loaded? It's about what the user perceives during this lifecycle page load. So let's walk through these in context. Do you want to take a shot? Sure. Yeah, so... Oh, yeah, fancy. So, sure, you press Enter, you know, you start navigating your page, and First Paint is really when the first pixel changes on the screen. That could be, you know, background color. That could be something like this, just like some vague structure. Next up is First Contentful Paint, and that's when the actual first content is drawn to screen. It might not be the most important content, but something has actually, you know, appeared in the DOM and been painted to the screen. So next up is First Meaningful Paint, and that's an attempt to actually measure what actually matters to the user. So maybe that's the content of a story. Maybe that's, you know, the search box. That's the kind of primary element of the page. Something that really captures, like, hey, as a user, I'm looking at this and saying, like, okay, this is actually what I came to the site for. So next up is Visually Ready, and then Time Interactive. So just because something's painted on the screen doesn't mean it's actually usable.  You're typing the input, and then it nukes the input. Exactly, it just nukes it, and then you want to smash the screen. So Time Interactive tries to measure that. It's saying, like, okay, everything's loaded, but now I'm going to look at kind of a bunch of activity that's going on, and when that calms down, when it's actually able to respond to user input, that's when Time Interactive fires.  Fully loaded. Yeah. Ready to go. Yeah. Cool. So this puts the performance part of the Lighthouse report into a little more perspective. You can see all those metrics kind of put into context with the page load, and you can see as the page loads, you know, really early on that page has the full layout of the page, but Time Interactive doesn't fire for quite a while as it takes. A JavaScript bundle. Yeah, it's pretty rough. We also have targets for each of these where we think you should be hitting. So that's really important, too, considering what the metric is that you should be targeting. Okay. So let's say I'm a developer, right? I want to integrate with Lighthouse, right? Maybe I'm already tracking performance metrics, and I want to kind of zest in my performance metrics with those awesome metrics that we just talked about that Lighthouse is giving you. Yeah. Phil and Shibi gave a great talk yesterday. Web performance, something-something. It's a very long title. And they talked a lot about how, you know, these are great metrics. It's really useful to be user-centered.  And so if you can go out and measure the exact moment that your hero element's ready, then you should absolutely do it. Yeah. So we can do that by writing a custom audit that plugs into Lighthouse. Okay. So before we do this, let's just, like, get this out of the way. Probably the most boring part of the presentation, which is a little bit of terminology and architecture. Is that okay, Brendan? Yeah. You get to do the boring part. Should I do the boring part? Okay. So in order to understand how Lighthouse works, you kind of have to understand how things are set up. The first is we're just a bunch of node code. And that's the Lighthouse portion at the top there. On top of that, we actually just interface with Chrome and the Chrome DevTools protocol. It's a really awesome set of APIs. Essentially anything the DevTools can do, the API can do as well. So it's super powerful. And this is how we're going to interface with Chrome and write a custom audit. Okay. So we have this Lighthouse runner. That's the kind of controller for Lighthouse. And in this, there's three different things. The first is gatherers. Gatherers are basically just things that collect information from the page. So in some cases, we actually inject JavaScript on the page to evaluate something. And that's what the gatherers are doing. And as you saw in Brendan's demo, Lighthouse actually reloads the page a couple of different times. And that's why we have a couple of different gatherer passes here, because we have to do things like cut off the network, make sure your service worker actually serves something offline, just a bunch of other stuff like that, that we need separate runs for. So gatherers interface with Chrome through this little kind of shim that we created called the driver. And that talks to DevTools protocol. So we're built on the kind of the stack of giants. Everything below us is just DevTools. DevTools protocol is pretty amazing. You can basically do anything you want in Chrome through the DevTools protocol, which means that Lighthouse can do anything you'd need it to do. Lighthouse fires up. It connects to Chrome. It opens a Chrome, and then starts running the page and testing things. So when gatherers are done, they return artifacts. Artifacts then are handed off to an audit. An audit is basically just a pass or fail check or something that applies scoring. So in the report, you see scores, and you see a check and an X if you did bad. Those are what audits are doing. They're returning and evaluating these things. That hands off just a big JSON blob of all the data. And then we go into report generation. And so report is basically just categorizing these things. Here's the progressive web app section. Here's the accessibility section, so on and so forth. So gathering, auditing, and report generation, and that gets you a Lighthouse report. All right. Pretty simple. So with that, we're all on the same page. We can write a custom audit. So yeah, this isn't something that we emphasized a lot before this, but actually since the beginning, we've written Lighthouse to be super extensible, and you could write a plug-in really easily. Because in many ways, Lighthouse is just like a really nice test runner with a bunch of functions already built for those tests to make difficult things pretty easy. So as Eric was saying, there's three steps, and we're going to do all three of these to write our own thing. So this is that demo page. We switched to the demo screen. Do you want to show the metric that we're... Oh, yeah, yeah. So let's switch over. Yeah, I'll do that. Nice. So the developer of this page is actually already thinking about performance. They already feel really guilty that it takes six seconds for that search box to start working, and so they did the basics that they could start with, and they're logging how long it takes to do that, and so we can actually open up DevTools here and go over to the console, and you can see that they're logging this in the console. Five seconds. Just so they can feel guilt every time the page loads. Five seconds? Not very fast for a search box. And they're also saving it to a global variable. They could send this anywhere. They could send it to analytics or something like that. We're going to do the simplest possible thing and just set it to a global variable named site metrics, and in-site metrics is a property named searchable time. So it's the time it takes to get to searchable state. It's about 5,000 milliseconds. Okay, so we know that that global variable is in the page, and we want to use Lighthouse to retrieve that. So let's switch back over to the slides. And so step one, we need to gather that global variable. So in Lighthouse, every gather extends from a gatherer base class, and that just sets things up for you. And then there's several lifecycle methods, which correspond to, during a page load, when you want to run gatherer code. So the first stage is called beforepass, and that's before the page loads. It runs, and it can set things up or set some sort of throttling up or something like that. But in this case, we don't care, we just want that global variable. So instead, we go to afterpass. So afterpass fires, after the page is fully loaded, everything's settled down, nothing seems to be loading anymore. Lighthouse calls afterpass from us. And in this case, all we're going to do is get the driver, which talks to the debugger protocol. And then there's a bunch of helper methods on there to make a lot of things easy. And one of them is evaluateAsync. And evaluateAsync just runs this JavaScript snippet in the context of the page and returns whatever that result is. So that's that same variable that we saw in the console? It's the same exact variable. In fact, it's exactly the string that we ran in the DevTools console, window.siteMetrics. And just like in the console, it's going to return that object with property searchable time. So in this case, we're just going to return the results of that. And Lighthouse will take that and bundle it up as our artifact from this gatherer. And it'll just use the same name as the gatherer, siteMetricsGatherer. That'll be the name of the artifact. So let's go on to the next stage and actually audit our result. Okay, so just like gathers, every audit extends from the audit base class. And then audit needs a little more bookkeeping. They have this meta object, which tells Lighthouse kind of what to do with this, how to categorize it. When it puts into a report, it tells, like, what help text, what description to use to tell your users, like, you know, how to fix this or something like that. But the most important thing is this required artifacts there. And that tells Lighthouse, hey, I'm going to need an artifact from the gatherer stage named siteMetricsGatherer. So every audit has an audit method. And that's called with our artifacts. And in the artifacts is our siteMetricsGatherer artifact. And just like in the DevTools console, there's a property named searchableTime. So we're going to get that searchableTime. And then our audit there at the bottom is just, is it less than four seconds? And if it's below four seconds, we pass. If it's above four seconds, we fail to get a big red X in our Lighthouse report. And that's an audit. Super simple. And you just chose four seconds because, hey, why not?  Like, come on. You should have an input before four seconds. Yeah. So the last thing we need to do is make a configuration file for Lighthouse to tell it how to find the gatherer, how to find the audit and how to run them. So just like something like ESLint, you can extend from the default Lighthouse run and that just tells it, hey, run all the normal passes and audits and gathers that you normally do so that my gatherer, my audit can be in the same context, the same report as all the rest. So as Eric was saying, we have this concept of passes. This is the number of times that we reload the page. And we want to say, let's put our gatherer, our site metrics gatherer into the default pass, the first pass of Lighthouse. Let's add our load audit to the list of audits that Lighthouse runs in the default configuration. And then finally, let's make a category in the report just for our site. We're going to call it my site metrics because that's the best name we apparently can come up with for our presentation. Very descriptive. Very descriptive. And we're going to say, hey, have this audit in there and if there was more audits, they would be averaged together and you can add a nice weighted average. Okay, so we have a pre-recorded video. So we just, for this thing, you can do yarn start. You can see what it's running. It's Lighthouse. It passes the config path to it and the URL. It's running. It's running. So this is running Lighthouse with all the stuff that's default. But then if you scroll all the way down to the bottom, you can see my site metrics. Amazing. And you can see that six seconds for this run and it totally failed. Failed it. We got a zero on my site metrics. And now you can say, like, oh, well, that's awesome. We really need to do better. So this is great. We can run any audit we want. We can write and have it available for our site, particularly for our site. And so we can know when we're doing terrible. But if only there was a way, oh, wait. Oh, yeah. There's a nice slide for you. This is the command. Yeah. But if only there was a way that we could automate it so that I don't have to run Lighthouse every time, I could just have a machine check it for me. That would be the ideal. We can do that. Oh, we can do that. Oh, thank you. Yeah, we can do that. That's not a problem. All right. So you can use Lighthouse programmatically. And people often kind of forget about this. They come to us and they say, hey, can you add this feature to Lighthouse? Or can you add this audit? And we're like, well, we're just no. You can write a program that uses Lighthouse any way you want. So Lighthouse is just one required statement away. Always. Keep that in mind. So a cool example of this. We'll just write a couple lines of code and show you how to use Lighthouse from Node or some JavaScript. The first thing you do is require Lighthouse. That's no big deal. We have this Chrome launcher that's part of Lighthouse's code base. And that basically just is the thing that launches Chrome with a debugger port open. It does things like find Chrome on your machine, selects Canary or stable channel. It turns off some background processes so that it traces a little cleaner. It's not trying to download dictionary items or something. It's just trying to run some Chrome features that you don't need when you're running Lighthouse. So we're just using that. We're just going to import that and launch Chrome that way. So I'm going to write a little helper method called launch Chrome and run Lighthouse. And I'm going to use async and await. But you can totally use promises if you want. Async. Yeah. Wow. You're like from the future. The future. Yeah. But it keeps the code a little cleaner. So this method is just going to take the URL that we want to test. This is the page we want to test. We're going to run Lighthouse and also a placeholder for the configuration file if we have the custom config that Brendan just showed you how to write. So in this method, the first thing you do, no surprise, is just launch Chrome. Chrome launcher.launch is the method you call. And that returns a promise. And then when Chrome selects the port, we basically just stash that port. And we're going to forward that onto Lighthouse. So Chrome is launched. It's found it, set it up for us.  And this is also going to return a promise. And when Lighthouse returns, we give it the URL.  So we'll just forward on the URL the flags and the config right to Lighthouse. Once we have the results, we're good to go.  And that will basically shut Chrome down using Chrome.kill. And then we'll return the results to the caller. The way you use this method, you just call launch Chrome and run Lighthouse. You give it the URL you want to test. For example, .com in this case. And we're specifying that we want the results in JSON rather than the default HTML file you get. And then you can use the results any way you want. So... Yeah, that way you can test against it. Use it on your CI or whatever you want. So all in all, like 12 lines of code, not too hard to use Lighthouse programmatically. And that's exactly what we're doing. If you've joined us over at the mobile web sandbox during the show and apologize for the live streamers who haven't had that, we do have a nice little video of the big Lighthouse over in the sandbox area. It's just using Lighthouse in Node and it's using the Hue Lights API to control the lights based on the score you get when you run a URL. So a quick demo of this. This is the big Lighthouse where I put in a URL. I think it was like chromestatus.com or something. And Chrome Status is a PWA. It does pretty well and it changes the color of the lights green. Come over and try your site and you can get a very satisfying green glow or, you know... Or red or... A little fog horn to show you. There are some surprises. To improve. So if you want to check out the code that's on GitHub under that URL there for the big Lighthouse. Another thing people often want to do is, you know, integrate with GitHub and pull requests in Travis, right? A lot of us are doing development work on there. And so you can do that as well using Lighthouse. You basically want this little beacon of light following you wherever you go, right? Yeah, you want Lighthouse watching in your back. Watching your back. Little Lighthouse telling you, good job, or... You want to know if somebody sends you a pull request if your performance or your Lighthouse score is going to drop. And so we have a demo of this as a proof of concept. This is totally doable. What I have here is a pull request on the left. I don't know what it does. Don't care because Lighthouse is going to help me. On the right, Travis is just going to do its normal thing.  So as that's happening, we'll just see that log output go through. We'll check out and see what this pull request does. We'll look at the changes. Let's pop over and see. So there's a script tag. It's like loading jQuery, which... That's okay, yes. But there's this delay thing and the seconds thing. It looks scary. It looks questionable. So let's let Lighthouse decide. I don't know if it's good or bad, but let's determine that through magic. So we're building the PR.  And then Lighthouse is going to go test that URL, return the results, and then modify the pull request. So if we do that, you can see this little helper script called runLighthouse is testing the URL and I've set a minimum score of 96. I want to get a 96 or above in order to pass this pull request. And eventually, when all this stuff comes back, Lighthouse will finish auditing the pull request changes and tell me that, uh-oh, this is not a good change. Hashtag I promise this is not going to hurt your performance was not true. Turns out. So I've got a 93 out of 96 and I wanted a 96. Thanks Lighthouse. Thanks Lighthouse, yeah. So this is really kind of very simple to set up. We have some example code if you want to check that out at the top there. Again, it's just normal Travis. So do everything you're normally doing, like building your scripts and linting and all that good stuff. And then the magic comes in after a success. And so I have a little shell script that deploys the pull request to App Engine. If you're using Firebase or some other server, then you can choose how to deploy your own stuff. And then there's this example runLighthouse JavaScript file. And that basically just fires off Lighthouse, test it on a headless version of Chrome in the cloud, and then returns the score. I'm passing two environment variables here, the score that I want to achieve, and the URL that I want to test. And in this case, it's that staging server URL on App Engine. So that's how you use Lighthouse and get that little light everywhere on GitHub and Travis. Another thing that just actually happened was Chrome launched headless mode in Chrome 59. So brand new stuff, very cool for automated testing. If you fire up Chrome from the command line, you can pass the dash dash headless flag. And that'll start Chrome essentially without Chrome. So it's great for headless testing, Travis, automated environments where you don't need a full UI of Chrome. You just want to do some browser testing. You can do some cool stuff from the command line. You can take a screenshot. You can create a PDF if that's your cup of tea. You can dump the DOM, so essentially just kind of curl the page and get the HTML of the page. There's also a command line flag for setting the window size, which is kind of convenient if you want to scale down to a mobile device, for instance. So if you want to use headless Chrome with Lighthouse, you can totally do that. We talked about the Chrome launcher module that we have in the Lighthouse source. You basically just create the launcher, and when you launch it, you pass in an additional flag called Chrome Flags. And these are just normal Chrome flags. So anything you need to launch Chrome with, you can pass it there. And we'll just pass the dash dash headless flag. So really easy to use Lighthouse with headless Chrome. Yeah. Yeah. All right. So that's a lot of stuff. I'm kind of tired. I'm a little sleepy from lunch. My line is yawning. It's not roaring. Yeah. He's not scared. He's yawning. Yeah. So with that, let's just kind of recap what we talked about before we close out here. Basically, if you're building on the web, this is your web app. OK. You don't want to be that guy. You definitely want to use Lighthouse, continuously test, integrate. It's really, really awesome. And we're trying to make Lighthouse as friendly and user-friendly as possible. Don't forget about this useful tool that could have helped you not do that. You want to remind us? Sure. Yeah. So everywhere that you can run Lighthouse, Lighthouse is available as a Chrome extension. You can go install it at Chrome Web Store. Super easy. Easy to use. Easy to just drop in any time. Lighthouse is available as a Node module and CLI tool. We just shipped the newest version of Lighthouse to MPM. So if you want to try out the newest version and file out some bugs for us, that'd be great. And there's a bunch of command line flags here that we didn't talk about that you can use to tweak. Yeah. So if you want to walk specific resources, you can change the throttling. You can do all sorts of customization that you wouldn't be able to do with extension. One thing we didn't talk about is web page test. So web page test is obviously a super popular tool that people use to test the websites. It has a great way to share reports after you're done with them. So web page test actually is Lighthouse integrated into it. If you go down, you can see there's a Lighthouse check box there. You click that. Your Lighthouse report score will appear, and you can click that and see the full Lighthouse report available. Super easy to share. It's available right now, actually. And then as a couple of people have mentioned throughout I.O., it's available now in Chrome DevTools in Canary right now. You can go try it out and see what your score is anytime, as long as you have Canary installed. OK, so that's where we are right now. Eric, what's next? I don't know. What is next? What? What is next? There are some slides. There are some slides. So one thing we want to do is kind of be wherever developers are. So another place that you often go to is HTTP Archive, and they have a slew of data on the web. They run against like, I don't know, tens of thousands, hundreds of thousands of URLs, and basically have all this interesting data and surface that publicly. They're considering integrating with Lighthouse. So pretty soon, hopefully, you'll be able to see how many URLs out there are progressive web apps. What are their accessibility scores, and their performance scores, and best practice scores? And so that's something we're pretty excited about, because then you can see kind of the shape of the web over time. Another one that I want to give a shout out to is Caliber, which is an awesome online performance testing tool. And they're integrating with Lighthouse. You can actually get Lighthouse results in this tool. And you can see their scores, PWA, best practices, same Lighthouse stuff. So they're consuming Lighthouse, and then you can actually track your performance over time, which is a really awesome UI for that. On the roadmap for Lighthouse itself, there's just a ton of stuff we want to do that we haven't had time to do yet. A lot of new audits. We could test anything, really. And we'd love to have your help actually contribute some of those audits. JS code coverage, whether you're not using CSS selectors or not. SEO best practices. There are a lot of things you have to think about in order to work with crawlers. UX, right? Are you popping up an interstitial? Can you scroll the page at 60 FPS? These are really good things that we can just automate using Lighthouse and tell you if you're doing them well or telling you if you can improve. Security and some other ones. And there's also a bunch of stuff we want to do on the core team as well. So what happens after a page load for single page apps? Maybe you have an app behind a login screen. Maybe there's some things you want to test after the page loads and use Lighthouse for that. Faster auditing, just make the whole process faster. As we add more stuff, obviously it's going to get slower, so we want to make it as fast as possible. More integrations and also making it a lot easier for folks to contribute. Brendan showed you today how to create a custom audit, but we can make that probably even easier. So the good stuff is, I'm going to throw this up for just a brief moment. If you want to get Lighthouse on MPM, you can MPM install Lighthouse. We have extensive documentation for reference material for all of the audits that we have up on developers.google.com. And if you want to write your own audit to work with Lighthouse, you can check out the DevTools protocol reference, which is really good. It's got all the APIs there that you can learn how to actually use the DevTools protocol. Crazy amount of information you can do, get from the browser, and a crazy number of things you can't do to the browser. We also have some in the GitHub repo, if the custom audit thing went too fast, we have some great recipes in there that you can copy and paste to get started with scripting Lighthouse and doing your own thing. Very cool. Brandon and I are the ones talking today about Lighthouse, but I do want to give a quick shout-out to the rest of the Lighthouse keepers. We have some people that are working internally at Google on this, on the DevTools team, on develop relations, but also we have some folks in the community that are helping us build Lighthouse. So it's not just a Google project, we have a ton of help from the outside, too. So hopefully you can come in and help us out build some stuff. So a shout-out to the Lighthouse keepers. And with that, my name is Eric Bidelman. This is Brandon Kenney, and don't forget that it's really important. Thanks, guys.


With that said, as I mentioned, we're only going to be going through chapter 36 tonight We're going to be looking at what I what I called Alehu's monologue and it's really the end of his speech that he's making So let's begin reading together here in the book of Job at chapter 36 We'll read verses one through four and we'll get into our study Job chapter 36 beginning at verse one reading to verse four Alehu also proceeded and said bear with me a little and I will show you that there are yet words to speak on God's behalf I will fetch my knowledge from afar I will ascribe righteousness to my maker For truly my words are not false One who is perfect in knowledge is with you Yeah, okay So what we have here is Alehu once again This is the young man who had been silently listening as Job had been arguing With his three friends who had traveled to come and bring words of comfort and then began an argument And as we've been watching this we saw how that Alehu began to speak and to give his opinion and So he's continuing his monologue at this at this point by telling his listeners that they need to bear with him a little You see he's been lecturing Job and he's made it clear that as he was sharing with him that he considered Job to be prideful Not only was Job filled with pride But he also had gone on to say that his friends were trying to speak to him was really incompetent You see if his friends were better equipped he was saying they could have convinced Job of his sin Because Alehu believes that Job is in sin Well, you see as we've gone through the the arguments that Job has been having with his friends We we've seen that he continued claiming his innocence and his friends had failed to convince him otherwise and because of this Alehu felt it necessary to step into the argument and So Alehu is convinced that he's filled with great wisdom. He's a younger man He's younger than the rest, but he felt he felt superior to them and When he began speaking he gave them the reason that he had been silent We saw in chapter 32 verse 7 how he had said I said age should speak in Multitude of years should teach wisdom So that's how we actually began I was quiet because I thought you older people Because you've lived so long should be the ones who speak and and give the the wise counsel to Job But with that said he began to launch into an assault as an assault upon Job He said my words come from an upright heart. I'm speaking pure knowledge Well, he had just finished saying that Job opens his mouth in vain And he talks too much and he thought that Job hadn't learned his lesson which resulted in the lengthening of his trial that he was enduring because if he'd have learned anything Ali who has been saying he wouldn't be speaking in the manner that he is and so that's what all of you is doing now He's he's bringing words of rebuke and all and he's continuing now in chapter 36 to to to make his speech and conclude it And so he says again in verse 2 bear with me a little I will show you that there are yet words to speak on God's behalf I will fetch my knowledge from afar. I will ascribe righteousness to my maker For truly my words are not false one who is perfect in knowledge is with you So allow me to continue until I have finished what I have to say You see there are still things to say in order to justify why God has treated you like this job When he says in verse 3 I will fetch my knowledge from afar. I will ascribe righteousness to my maker He's simply saying I'm going to teach you things that are both ancient and deep in wisdom I'm going to teach you things that are ancient and very deep When we began this book when we were in chapter 8 one of Job's friends his name was Bildad Bildad had said in Job chapter 8 verse 8 ask the former generation Find out what their ancestors learned and so what aliyu is simply saying is similar to what Bildad has said When he's saying I'm going to give to you right now wisdom that is ancient Wisdom that we all have been taught that we've all had passed on to us I'm going to teach you what the former generation has already known with our ancestors have already learned He says in verse 3 I'll ascribe righteousness to my maker So the things that I will now say will prove that he is righteous and is to be trusted Now that may be in contrast to what he thinks Job has been saying when he says God has treated me in an unfair way So he goes on in verse 4 to say for truly my words are not false One who is perfect in knowledge is with you So when he says one who is perfect in knowledge is with you the commentators that I use were kind of divided on this Some were saying that they believe that that he's saying the one in reference to God but the ones that I think are Right on this one. It would seem that aliyu is speaking of himself It would seem that aliyu is simply saying I'm not a novice. I'm not immature Just because I'm younger than you doesn't mean I don't know the things that you know I am seasoned and I am wise and it seems that he's claiming spiritual maturity and spiritual wisdom And so he's saying I'm speaking truthfully. I have complete confidence And I have a complete confidence that I'm speaking for God I'm speaking on God's behalf. He had said that in verse 2. I'm speaking for God Now as I read this and I'm not creating this for myself the others that I use and I use several different commentators It seems that aliyu is speaking from a heart filled with arrogance Listen, I'll make this real practical as practical as practical as I can If you have a desire to give advice and I think it's a good thing that sometimes we need to I Think sometimes we who've been walking with the Lord for a while Sometimes we're called on to give advice. So if you are called on to give advice do so with humility It doesn't doesn't it doesn't work. Well, if you come with a sense of pride or arrogance. It just doesn't so Humility should be what is prompting him to give advice not not a desire to prove that he's equal in understanding and experience If you take notes, you might want to note Romans 15 verse 14 Paul was writing there to the church and he said this he said I myself am convinced my brothers and sisters That you yourselves are full of goodness Filled with knowledge and competent to instruct one another If you're going to be instructing one another Paul was saying you need to be full of goodness and filled with knowledge If you're full of goodness the good goodness is going to balance the knowledge If you're not filled with goodness then pride and arrogance is going to be the motivator of you bringing correction But if you have a relationship with the Lord in a sense of humility before him and you understand Who you are especially in comparison to who he is and if you have sympathy and concern for the people that you need To bring a word of correction to Well, that goes a long way because You really aren't going to be effective in your ministry to people until you've learned to weep with those who weep You need to learn how to I have to learn we have to learn How to hear with our heart in some ways to understand because sometimes people will say things That they don't intend to say and we immediately jump on what they're saying and correct them for what they're saying When in fact that's not what they intended to say at all And so if we will listen with a little charity, you can sometimes bring a healing and there needs to be that So what we need is is we need goodness a moral goodness We need to have a knowledge of the things of the Lord And we need to be competent to instruct one another It seems to me that alley you is speaking from a heart that's filled with young arrogance And so as he's going on he says in verse five, behold God is mighty but despises no one He is mighty in strength of understanding He does not preserve the life of the wicked But gives justice to the oppressed He does not withdraw his eyes from the righteous But they are on the throne with kings for he has seated them forever And they are exalted And if they are bound in fetters Held in the cords of affliction Then he tells them their work and their transgressions That they have acted defiantly and so he begins to speak And notice how he begins in verse five God is mighty unlike human beings God does not Even though he is mighty despise and oppress those who are weak Behold God is mighty but despises no one He's mighty in strength unlike human beings God's greatness doesn't cause him to oppress those who are weak his strength is guided by his wisdom And because his strength is guided by his wisdom alley you says that prevents him from being a tyrant In verse six, he does not preserve the life of the wicked. He gives justice to the oppressed God doesn't favor the wicked. He ultimately judges them And God will deliver those who are oppressed. He gives vindication To those who are oppressed by the wicked So he's saying God is mighty, but he's also just now remember in chapter 10 verse 3 Job had asked is it good to you speaking to the Lord? Is it good to you that you should oppress That you should despise the work of your hands And he goes on he says look favorably upon the counsel of the wicked And so Job it felt that the Lord was treating him unfairly And so Elehu's responding to that he says in verse 7 he doesn't withdraw his eyes from the righteous Job implied that God had withdrawn himself from him Though Job himself was righteous And again, he said in Job said in chapter 29 verse 2 He said oh that I were as in months past as in the days when God watched over me So he's saying God has withdrawn himself, but Elehu says he doesn't withdraw his eyes from the righteous Why will Psalm 34 15 says the eyes of the Lord are on the righteous His ears are open to their crying So Elehu is saying this he's saying God watches over the righteous And not only does he watch over the righteous, but often he elevates them into high positions It's like what the psalmist said in Psalm 113 verses 7 and 8 He raises the poor from the dust he lifts the needy from the ash heap He seats them with princes with the princes of his people So God watches over the righteous is what he's saying here In verse 8 he says if they are bound in fetters held in cords of affliction Then he tells them their work and their transgressions that they have acted defiantly So when the righteous are afflicted he says God will deal with them, but he also reveals Why he's chastening them He moves on into verse 10 and says he also opens their ear to instruction and commands That they turn from iniquity if they obey and serve him They shall spend their days in prosperity their years and pleasures But if they do not obey they shall perish by the sword and they shall die Without knowledge So here we go Allie Hugh gives his reason as to why he thinks Job is suffering And he's saying the reason you're going through what you're going through Job Is because God is disciplining you in order that he might restore you Now in Hebrews if you take notes Hebrews chapter 12 verses 5 through 7 listen to what the writer said He says you have forgotten that word of encouragement that addresses you as sons My son Do not make light of the Lord's discipline Do not lose heart when he rebukes you Because the Lord disciplines those he loves He punishes everyone he accepts as a son Endure hardship as discipline God is treating you as sons for what son is not disciplined by his father So these two boys were fighting And no They weren't my boys There were two boys fighting on the playground and a man came And he separated the boys And he took one of them and swatted them And the other one he let go And somebody who was watching Walked up to this man and said look I have to ask you a question Those kids both of them were wrong both of them were doing what is wrong Yet you let one go And the other one you spanked why did you do that? And so the man said easy the one I let go is not my son The one I spanked is And that's the fact isn't it those of you who are parents I don't know about you. I don't know if you beat up the neighborhood kids as well as your son But I had a tendency of disciplining my son Because he's my son He belongs to me and if you're going through discipline if you're going through chastening despise it not Because he loves you and is treating you as a son That's this as his child And that's how discipline works And so he's speaking concerning this and he's speaking how god works in these kinds of things how god Ministers and how god brings correction Again, he said if they obey and serve him verse 11 They shall spend their days in prosperity their years in pleasure. He's saying normally their lives will be blessed But verse 12 if they don't obey They shall perish by the sword. They shall die without knowledge So god brings correction because in doing so he saves those who belong to him in verse 13 But the hypocrites in hearts store up wrath They do not cry for help when he binds them They die in youth Their life ends among the perverted person see Delivers the poor in their affliction and opens their ears in oppression So when he says the hypocrites in hearts store up wrath The word hypocrite in it's in this context is speaking of what are called the godless those without god And these these are the godless those who live an entire life rejecting god These are the ones who reject him completely And they never seek him and they never they never pray to him notice verse 13 They do not cry for help when he binds them. They do not pray for ha for help They don't speak to him when when they're bound with affliction what they do is they harden their hearts And they reject calling on him. He's saying they can die young and Notice after death.  We've been going through revelation guys and in revelation 218 We just recently read this it says the cowardly unbelieving abominable murderers sexually immoral sorcerers Idolaters and all liars shall have their part in the lake which burns with fire and brimstone Which is the second death? And so he says that he binds them He says then they they die in youth and their life ends among the perverted persons They die and they suffer judgment But he goes on in verse 15 to say he delivers the poor in their affliction And opens their ears in oppression So he continues on and speaks about delivering You see the thing that I didn't touch on let me let me touch on this because I forgot to mention that it was in verse 13 It says the hypocrites in heart store up wrath Well, that reminded me of romans in chapter 2 verses 4 and 5 how paul had said this in the book of romans And he said to those who were rejecting the things of the lord He says do you show contempt for the riches of his kindness forbearance and patience Not realizing that god's kindness is intended to lead you to repentance But because of your stubbornness in your unrepentant heart you are storing up wrath Against yourself for the day of god's wrath when the righteous judgment will be revealed You're storing up wrath word storing up can refer to treasuring up it means to lay it aside and to build up And what you're doing is by rejecting god's grace every day you add to his wrath By rejecting his forgiveness every day you're adding to the account of judgment every day that you wait And never come to faith in christ You've stored up wrath for the day of wrath And that's an ancient thought that you see right here in verse 13 of chapter 36 the hypocrites in heart store up wrath And judgment indeed will come So when he says in verse 15 again, he delivers the pouring in their affliction And opens their ears in oppression. We can talk about that for just a moment There are many lessons that the righteous pour learn the righteous pour learn There are many lessons that they learn through affliction What happens is they are caused to hear And understand god in a way that is deeper In our day The idea of actually going through affliction pain suffering Obviously, it's never been popular I when I got saved I I wasn't really warned or told or taught The day I got saved about What it meant to follow the lord in terms of just a lifetime And what does it mean and what are you going to go through? But I've discovered that I've discovered some deep things about the lord through the things that I've gone through I didn't ask god to put me through these things god knows I wouldn't have asked for him But I've gone through things as you have I've gone through times of pain times of tears times of suffering times of sickness Times of loss have gone through all that of course that's part of being a human being we all do For some reason when I first got saved though, I thought that Now that i'm a christian these things are going to pass me by i'm not going to suffer i'm never going to cry again I'm never going to be hurt again. I'm never going to be disappointed again I looked at the family of god as being the a perfect family a wonderful family They're all going to be loving and kind and Uh-huh, and I discovered something about sheep. You know how the lord calls us his sheep Sheep May not be scary, but they do have teeth And they do bite And sometimes they they they they can injure we can injure one another of course And there are times that that you may go through things Maybe maybe a diagnosis that you didn't want to hear that causes you tremendous Tremendous pain tremendous concern tremendous fear Maybe it's something that's been said to you. Maybe it's been It's something that's been said to some of you love But you've heard these things and you don't know what to do with them and it causes you pain And it causes you to hurt perhaps you've gone through affliction or you've seen others who have and and you begin to question You begin to wonder and But I've discovered and I'm discovering and and let this be something that perhaps some can receive and others perhaps one day might Because there's never been anything that I've gone through that God hasn't used for good for me And I didn't know that at the beginning Because when things hurt me or things caused pain or disappointment I did not know that that was part of the way God was going to make me into the man He he wanted to make me to be I didn't know that I've had people ask me if I could change anything in my life What would I change up to this point and I at one time when I was young I there were several things I could say well, I wish this or I wish that but now at my age and that my experience with the Lord I've been asked that what would you change if you could change one thing and the answer is nothing Because everything I've gone through has resulted in who I am everything Everything the joys and the pains Have all worked together to make me into who I am and you know what I enjoy being who I am in the Lord I do I'm very very I'm very happy to be who I am. I don't know how that sounds. I hope it doesn't sound arrogant My name isn't alley. Hugh. I'm simply saying That what God has done has been for my good all things work together for the good of those who love God To those who are the called according to his purpose all things I have a I didn't know if I'd be able to read this. I think I can I I was looking into Poems and things that related to pain and This one says this I'll read this to you and it makes my point pain knocked at my door And said she'd come to stay though. I would not welcome her But bait her go away still she entered and like my shade she followed after me and From her stabbing stinging sword No moment was I free And then one day another knocked most gently at my door. I cried no pain is living here There's no room for more And then I heard his tender voice This I be not afraid and from that day he entered in the difference that it made for though He did not bid her leave my strange unwelcome guest He taught me how to live with her and no one ever guessed that we would dwell so sweetly here My lord and pain and I within this fragile house of clay while years slip slowly by I like that it says it all He didn't remove my pain. He just came alongside of me in it And that's what I needed and so he delivers the poor and their affliction Opens their ears in oppression. He teaches them lessons that they wouldn't learn Any other way and some of the things that you perhaps have gone through are going through right now Well part of those things and I'm sure that you're learning You wouldn't have learned any other way These are lessons that you learn where no matter how far you seem to travel down the path of pain He's still there with you.  Do not desire the night When people are cut off in their place Take heed do not turn to iniquity For you have chosen this rather than affliction You have acted in the same way that wicked people act when they're judged You see job. I haven't seen in you any repentance Judgment has taken hold of you When he says in verses 18 and 19 because there is wrath beware lest he take you away with one blow He's saying you by your constant arguing are now provoking God's wrath God's going to judge you job. You need to repent quickly Nothing can keep this from happening Including a ransom Or everything that you own He says in verse 20 do not desire the night when people are cut off in their place Take heed do not turn to iniquity For you've chosen this rather than affliction Do not desire the night when he says do not desire the night. That's a that's a picture of death Do not be desiring death You see because sometimes people experience that when they're going through his wrath He says do not do not turn to iniquity Don't speak against God As some do when they're in pain And there are those Many of us who have been in pain And so angry that we actually speak against the lord that we actually Have raised our voices to him and said how could you do this to me? How could you allow this to take place? Why did you do this? There are many who have done that He's saying don't be doing that. Don't turn to iniquity. Don't speak against God He says in verse 21 you have chosen this rather than affliction You've chosen to wish to die and to complain against God Instead of trusting him You didn't humbly wait upon him. You didn't pray. You didn't quietly submit to him job And then he goes on in verse 22. Behold God is exalted by his power Who teaches like him? Who has assigned him his way or who has said you've done wrong? God is powerful God is teaching you a timeless lesson job Don't argue with him Don't try to correct him as he does this Like he said in verse 23 Who has said you have done wrong? How can I say to god god you have done wrong when he's god and i'm not and the point is just Learn the lessons that god is teaching you through all of this He says in verse 24 remember to magnify his work Of which men have sung everyone has seen it man looks on it from afar you need to Remember his mighty works and you need to give him praise Everyone can see how great he is And they would see how awesome he is if they would simply open their eyes to see So he says in verse 26 behold god is great We don't know him Nor can the number of his years be discovered for he draws up drops of water which distill his reign from the mist Which the clouds drop down and pour abundantly on man Indeed can anyone understand the spreading of clouds the thunder from his canopy? Look he scatters his light upon it covers the depths of the sea For by these he judges the peoples he gives food in abundance He covers his hand with lightning commands it to strike His thunder declares it the cattle also concerning the rising storm God is awesome job. We're not capable of fully understanding him God is beyond He's past our finding out if god did not reveal himself to us. We would not know him If god did not choose to say this is who i am We would never know him We would not seek after him because like adam We were hiding from him and not pursuing him and that's why god had to say in the garden of eden adam. Where are you? It's not that god was lost. It was adam who was lost and by nature We have a tendency of moving away. That's why paul would say in romans 3 there is none who seeks after god We have a tendency of moving away from him and not close to him. So god is the pursuing god God is the one who reveals himself to us He did it in the old testament He did it through miracles. He did it through signs. He did it through prophets. He did it through his word But in the new testament god said i the invisible god i'm going to reveal to you who i am by taken upon myself human flesh And dwelling amongst you so that you now can see that which no one else has seen You will see god amongst you in the beginning was the word the word was with god The word was god and the word became flesh and dwelt amongst us and we beheld his glory That's what john said in chapter one of the book of uh the gospel of john He took upon himself flesh the invisible god the god who gave the command make no graven image God took upon himself human flesh so that people would see the invisible god made flesh That's called the incarnation And god if he is chooses to not be found Then no one would find him truly thou art a god that hideest thyself isaas said he could hide himself in a way That no would see no one would see him but he instead of doing that he he's he took him on himself flesh And he became in that picture of the shepherd who seeks out the the sheep that has wandered away He's like the woman who found her lost coin or he's the father who waited for his last son And that's what god has done for us But if god were to choose to hide himself there was there would be none who could find him So he reveals himself to us he reveals himself fully through jesus christ We we don't know we cannot know him by seeking in the sense of with my my Finite carnal mind. I cannot grasp those things. That's why in romans 11 33 and 34 That's why paul would say the depth of the riches both of the wisdom and knowledge of god How unsearchable are his judgments and his ways past finding out for who has known the mind of the lord Or who has become his counselor when's the last time god texted you with a question Who became his counselor So no one can fully know him without him revealing himself to us. He's so deep none could fathom him As long as we're in the flesh. We cannot we cannot hope to completely Completely comprehend In first chrithian so in chapter 13 verse 12 paul said it like this He said now we see but a poor reflection is in a mirror, but then we shall see face to face Now I know in part But then I shall fully know Even as I am fully known So to know god Well to know jesus is to know him In colossians chapter 2 verses 9 and 10 for in christ all the fullness of the deity lives in bodily form And you have been given fullness in christ who is the head over every power And authority the way to know him is through the son jesus christ And then finally he says for by these he judges the peoples He gives food in abundance Covers his hands with lightning commands it to strike His thunder declares it the cattle also concerning the rising storm By the rain he brings judgment By withholding it when it comes in abundance It's a sign of his provision And it's a blessing And even cattle know when a storm rises and strikes When god is moving through nature even the cattle have fear It says in verse 33 his thunder declares that the cattle also concerning the rising storm they become Concerned out there. I'm I'm no cowboy. I know we have cowboys in the church I'm no cowboy But I'm certain that when you're out there with your cattle They get kind of nervous when they start smelling a storm coming or sensing a storm coming and that's the point he's making His thunder declares that the thunder causes the cattle to become stirred Because they're aware of these things and he's simply saying god has used nature to reveal the reality of the creator Every house is built by some man. He who built all things is god Even nature can be used to awaken people to the reality That there's something greater than themselves That's why the psalmist would say when he looks into the heavens And considers them as being the works of god's fingers his finger work He said I can't help but think what is man That you are mindful of him the son of man That you would even consider him because The deeper you see in god's creation the deeper you see its handiwork and perfection The more admiration you have for the one who designed it God can reveal the reality That he is here By his nature and we'll see this in chapter 37 next time But it takes his spirit to reveal to us who he is And that's why jesus sent the holy spirit to bring conviction Of sin righteousness and judgments so that we would know That without him we're lost But with him we can be something brand new And ellie he was arguing with job here and he's saying job You're really foolish to argue with god and he's been laying out his argument But he's not concluded yet. We'll pick that up Next time Let's pray Lord we uh If we ever have the opportunity to someday Once again just sit outside Even when it's raining to sit in a a safe place but to hear the sound of the thunder The movement of the wind And smell the freshness Of rain those are all evidences of a creator Even animals can be aware that there's something greater than themselves I think that sometimes we human beings forget So lord i would ask that In the quiet times of our lives even in the times of affliction and pain the times of sorrow and hurt In the times of loss That we would find our comfort in you And that those times of affliction and pain Would serve to be the times that we drew closest to you And even as paul had said to the Corinthians and 2nd Corinthians That the comfort that you give to us As we've gone through these things May it be the comfort that we give to others Because suffering is never without a purpose affliction Affliction can actually Work a depth into our hearts A depth of joy A depth of comfort And even a depth of love for you For no matter where it is we are and no matter what we've gone through You have never left us nor have you forsaken us And in this lord we thank you So I ask lord That you would work in each one of us and even as In a moment we're about to partake in communion. I ask lord That we would realize the great cost For us to even have this moment The cost of jesus He gave up his life for us No one suffered like him And I thank you that he suffered on our behalf And may that cause us to love him even deeper than ever before And even as our eyes are closed for another moment and our heads are bowed There may be some right now who need to get right with god In a moment we're going to receive communion You need to be right with god in order to receive a communion And so I would ask you before we Close this prayer if you need to get right with him right now whether on online or in this room If you need to get right with god if you have sin that you're dealing with if you know that the lord is speaking to you Perhaps you've walked away from him or maybe you never even even have come to him But you need prayer and you need to be Right with him you want a relationship with him And you need prayer would you raise your hand? Let me pray for you right where you're at father You see these sands You know the reason why they're being raised to you right now lord in jesus name I pray that you would reach down and touch each person whose hand is raised Wash cleanse lord and by your spirit fill And lord have your ways have your way in them They're yielding to you lord answer their prayer And work within them now wash them cleanse them And fill them with your presence By faith we receive and we thank you Be there lord be there for them. Thank you lord You can put your hands down and jesus we prepare our hearts now to receive from you of communion in your name Amen


The festival came about because we had access to a series of films which had been recently released by the Taiwan government. So we had a set of films from the last four decades and realised that there really wasn't much of a space for Taiwan film in Australia. And as part of our core vision at CRW to engage with all aspects of the Chinese cultural world, we thought, well, with the resources we have, we could put together a film festival, which to my knowledge hasn't actually happened in Australia. I don't think there's been a Taiwan film festival, despite the fact that there's numerous festivals for different cinemas from around the world. Rebels of the Young God is really the first film that made Simon the Young known for what he has become, which is really a sort of, he's described himself as a slow director. There's a kind of monotony, there's a sort of beat and a pulse. There's a digital soundtrack, which is really inspired by the arcade games of that era. And the characters in the film, often they're shown at night and they're moving around the streets, they're moving in and out of arcades and there's that sense of that 90s digital urban culture. And so his idea for the film was really based on trying to capture something alternative about urban youth at that time and something uncertain. The film opens with a scene of these two friends basically breaking into a telephone box and stealing a bunch of money with a power screwdriver sort of thing. So there's that sense of sort of the edge of something not quite legal, not quite known, danger and yet the fragility of youth all within this gritty urban context. And his films often have focused on the marginal, the outskirts, the underside. On Friday night for the opening there's A City of Sadness, which is really probably one of the all-time masterpieces of Taiwanese recent cinema. And I would say even in terms of world cinema it's really quite amazing. So on Saturday night we've got Monga, which was incredibly successful and outsold Avatar at the box office. One of the reasons for that is that it has a star-studded cast of young, good-looking, very popular actors but the film itself also deals with a really high action story which has a bit of everything. There's romance, there's action, there's the tension within the young gang members and then visually the film itself is very lush, very saturated colours, a lot of scenes of a particular area of Taipei which is a bit old, a bit rough around the edges and the story also is reflecting change. There's definitely a cinematic Asian action movie Legacy which is there and you can see that also in the fact that these actors and the characters are so cool, like the way they're dressed, the way that they act. There's a real sense of contemporary style and a real cool aspect about them which comes also from things like Monga and the influence of some Japanese contemporary culture probably. There's many exciting things about the film festival but obviously one of them for us is the fact that we can work with the National Film and Sound Archive. They've been very positive about presenting this together as a way of showing that they're working on something new for the arc cinema and for the archive itself.


Hello everybody, E here. Welcome back to another Stephen King review. Today we are talking about Stephen King's second collection, Skeleton Crew. I like this cover. I've always liked this cover because I like the story that's in there. If you're confused and think I've reviewed this before, I have not. I do have an episode of Thursday Theorists, but those tend to be spoiler reviews because I have to talk about his entire catalog. So I'm trying to go back and do... I have written reviews up on Goodreads for everything he's ever done, but if you're confused, that's why I've never actually done video reviews of this, you know, this book and many, many others. It's like 50 reviews I don't have to do, so you're going to have content all the way up until literally next year. Okay, so we're going to jump into this. I'm going to go story by story and give my thoughts as quickly as possible. If you're here for the TL, DW, Too Long, Good and Watch, then just know this is not my favorite Stephen King collection by a long shot, but it does have some of my favorite short stories in there, and my favorite short story from Stephen King, period. I know that's weird, but a lot of these stories just completely fell flat for me, and I will... I'll try to tell you in as much detail as possible. I don't want this video to be too long. Some of these stories, I don't even remember all that much, but we're going to jump into it. So the very first one is a novella called The Mist. It is about a mist that rolls in off a lake, I believe, and there are creatures in the mist, and this group of people get trapped inside the supermarket, and it has all different kinds of wonderful stuff.  The film adaptation by Frank Darabont is one of the most bleak... Probably the bleakest... No, I'd say the bleakest Stephen King adaptation there is, other than maybe Pet Cemetery. Love that one. It's one of my favorites. Here There Be Tigers is a super, super short story about a kid who asks to go to the bathroom, I believe I'm correct here, and finds a tiger in the bathroom stall or something like that. There's been a lot of discussion whether or not this ties into the dark tower because of winds of the keyhole and other things, or if it even ties into sleeping beauties later on, because there's a tiger in there. I don't know. The next one is The Monkey, which is another favorite of mine. It's literally about the old symbol-crashing monkey, and it's cursed. It's a very fun story, and it becomes a super huge epic ending by the end of it. The guy's out on the boat. Anyways, I love the story for what it is. I love stories like this where King takes very, what is it, innocuous items, unassuming items, whatever, and not just novelty things like chatter and teeth, which we'll discuss when we get to nightmares and dreamscapes. But I love it when he takes stuff like that, and he turns it on its head and makes it evil. I love it so much. The next one is Cain Rose Up, not one of my favorites. I can't even remember what the story is about, so we're going to move on to Mrs. Todd's Shortcut. I would give three or four stars, and I think it actually ties into Lisi's story, Boo Ya Moon, and all that stuff. I would love to hear from you guys down there in the doobly-doo if you agree with me. But yeah, I enjoy this story for what it is, maybe three or four stars. Next one is The Jant. The Jant is my favorite Stephen King story of all time, period, over and done with. I love it so much. I always think that it's a night shift, which is my favorite collection from him, but it's not. It's in this one. And I would love to see this made into a movie. It's got, of course, the story came first, but event horizon vibes, that kind of thing. Somebody going through space and time and finding something that they shouldn't have. And it's one of the best descriptions of someone losing their mind or instantly losing their mind. And when they come back from this, what the hell did they see? I love things like that, and I think the mystery of this one makes it even better than it would be had he explained it. The next one is The Wedding Gig. I don't remember a thing about it. Let's see here, Paranoid. A chant, I believe, is a poem. Don't care too much about that. Next up is The Raft. That's another great story in here. I give it four stars. This one was adapted in either Creepshow one or two. Let me know down there in the doobly-doo which one it is. I believe it was number two. It was the George Romero anthology films based on Stephen King's work. I love the idea that these people go out onto this raft, this floating platform, and there's something in the water. I love creature features, especially creatures that even just touching them will harm you. That's a highlight of this. Word processor of the gods, not my favorite. This is another one of those stories where King uses his own writing experience to try and create a horror story. This one didn't really do all that much for me. I think another one that kind of fits in this genre is You Are, about the evil e-reader that talks about the future and all that. Next up is The Man Who Would Not Shake Hands. I remember enjoying this story, but I can't for the life of me remember what it's about. I wonder why are you even talking about them if you don't remember what they're about? I think it speaks to how much I like them and how much, you know, how they stayed with me and whether or not they're good stories or bad stories, at least in my opinion. Beachworld is a very, very strange kind of sci-fi, dune story that I enjoyed immensely. I think that's all I want to say about it. It's one of those that you really need to go in blind and not hear too much about it. In fact, I probably said too much as it is, but yeah, I enjoyed this one. The Reaper's Image, super, super short story. It's one of the shortest, just like here there be tigers. It is only eight pages long and it's about a mirror. That's all I really remember. Nona. I know Nona is several people's favorite king short stories, but I don't remember too much about it. He just has so many short stories and this one just never landed for me and it hasn't stuck. For Owen, I don't, is this a baseball story? I can't remember other than that. Or maybe I'm thinking about something else that he did that was based on his son Owen playing baseball. I can't remember. Maybe it's a poem. Maybe that's why I don't remember it. Fine, not finally, but survivor type. We've gotten to another good story. This is a story about a man. In fact, this was in the creep show reboot that's on Shudder. It's a series, not an anthology show. It's an anthology series. Each episode is about a different thing, but survivor type was an animated special. It is about a man who's playing Crash. He ends up on an island, cast away vibes, even though this came first cast away vibes, but if there were no coconuts or so on, you know, on the island and he ends up having to eat what he has available. I don't want to spoil it for you. But another thing is there's drugs on the plane.  And I love his descent into madness as things get worse and worse and worse. Next up, we have Uncle Otto's truck. But don't remember too much about this. Is it one of those ones like Christine and mile 81 and all that was a possessed car? I don't know. Then we have morning deliveries. Milkman is the, I can't remember exactly what the plot of this one is, but I do remember very specific visuals. And if I don't want to spoil you for it, but I did enjoy this one, I'd probably give it about three stars. Big wheels, a tale of the laundry game Milkman to again, same thing I said about the last one, a very specific visuals, but they're spoilers. So I'll let you read it for yourself. Grandma is the next one. Super creepy story. In fact, it was made into the absolutely atrocious, atrocious movie called Mercy with Carl from The Walking Dead. I can't remember the kid's name, but I couldn't, I couldn't get past the first 10 minutes of the movie. It was so poorly directed, shot, acted, all that stuff. I just hated every second of it. So I turned it off. It seems like most of Stephen King's short stories that are made into movies, I don't gel too, too well with it. I'm trying to think of one that I liked, maybe, let's see here, maybe writing the bullet. I like that one, I think. Anyways, moving on. The Ballad of the Flexible Bullet. Don't remember anything about that one. And then finally, we have Stephen King's favorite story that he has written, The Reach. The Reach is about an old woman who leaves her house to walk across this, I think it's Little Tall Island, so ties in the storm of the century. She's trying to walk from either Little Tall Island to the mainland or it's one of those two things. And it is such a beautiful poignant story. I highly suggest you read this one and the jaunt and the mist. If you don't read anything else in this collection, the raft too. Those are my favorite stories and that's pretty much all I have to say about this collection. Collection as a whole. I would give it three stars. I like it okay. It's not my least favorite collection. That would be everything's eventual, which we will get to eventually. See what I did there? I'm sorry. I'm so sorry. Anyways, but have you read Skeleton Crew by Stephen King? If you have, let me know down there in the doobly-doo whether or not you loved it, whether or not you hated it, whether or not you felt meh about it. But if you felt any of those things, explain to me what you felt in detail so that we can have a discussion. But until next time, I have been you and you. This has been another Stephen King book review. I'll talk to you guys later. Bye-bye!


My favorite way to eat potatoes, it's got to be Dutch style mashed potatoes. You boil it with a sausage, shredded carrots, onions, mash it all up at the end, and side with apple sauce. Sounds a little weird, but it's the best. My favorite way to eat potatoes is just baked with a little bit of oil on it. My favorite way of eating potatoes is a twice-baked russet potato where we bake the potato, slice it open, take the insides out, add a few ingredients, sour cream, onions, put it back together inside the shell of the potato and reheat again. It's just my personal favorite. French fries, of course, but they have to be homemade. Definitely just cut them up and toss some oil, salt and pepper, and toss them in the oven. My favorite way to eat potatoes is sculpted potatoes. First of all, because my wife and my mother, in her day, were good cooks to make sculpted potatoes. French fries is probably my second choice, and that's probably why I look like I look. What else do you want me to say? I told you I was going to say it like I think it. My favorite way to eat potatoes is mashed potatoes. My favorite way to eat potatoes is mashed. My favorite way to eat potatoes is mashed. My favorite way to eat potatoes is mashed potatoes. Ah, my mom makes them. I just grill them. My mother cooks them for me. No, I just plain mashed potatoes. Anything special that you're watching? No, just some butter and salt and pepper. Well, I don't have a favorite way to eat potatoes. They're all my favorite. If I had to choose, I'd say mashed with a lot of butter or on the barbecue. Barbecue, again, lots of butter. Butter is key. And onions. So in the summer I'd say barbecue, and in the winter I'd say mashed. It's hard to answer my favorite way to eat potatoes because I love them anyway. Baked, boiled, mashed, scalloped, French fries, and who doesn't like potato chips. So I can't really choose. I love them anyway.