Yes, I'm not a front-ender. I am much more the back-end type. I have been learning quickly, but still it would become rapidly apparent. My lack of knowledge about actually doing things well. So the other more serious point, though, is that the sands of Drupal 8 continue to shift. And I'm gonna be talking about things that we would like to bring in here, but we're not exactly sure how much we'll make in, so I'm gonna try to keep it as clear as possible. And towards the end, I talk about the sort of three different rough things that we could shoot for. But yeah, keep in mind that none of this is fixed, and it's especially applicable to the code, which is intended to be illustrative, not functional. Also, just with the amount of things that have been shifting, I mean, I've had to rewrite significant portions of this presentation in the last two weeks, and even the last 72 hours, based on conversations that I've had. And is Chris Wallsmith here? Yes, no, maybe so. No, okay, awesome. He's the author of Ascetic, and so I figured he was gonna tear me a new one afterwards, but I'll just have to meet him later, because I believe he is here at the conference. But without further ado, let's talk about asset management. So when I say asset management, at least for these purposes here, I'm also, to be clear, just talking about style sheets, CSS, and JavaScript, not talking about images. That is something that Ascetic also helps us with, but that's not my focus so much here. So with respect to asset management, there are a few different parts to it that go into it. So first is how you declare them. That is how you tell the system you're operating in that they're there. And in a system like Drupal, this is actually fairly complicated. The different places you say I have this asset, I want it added to the page. Whereas in a lot of other systems, it may be less complicated. If you just have template files, will you just write in the, you write in a script tag or a link tag that says this is the asset that I want. It's more complicated in Drupal. How you can write them, that is do you have to just write JavaScript or CSS or can you use SAS or Compass or any of the other interesting new ways of writing assets. Since right now, it's a pain to try to do. How many folks try to use CoffeeScript, SAS, whatever else in Drupal 7 right now? How many folks enjoy the process of trying to get it to work? I have one hand up until, oh yeah, actually try, okay, good, good, that's this last year. Well hopefully it'll be better. But yeah. Then there's really the trickiest question in Drupal which is how you organize them all together and we'll spend a fair bit of time on that. But finally, there's the question of how the browser gets them and how fast the browser gets them since of course your asset management strategy and how much you can aggregate, bundle, et cetera, has significant effects on your front end performance. So right now, Drupal collects information in a few different ways. For one, there's the information you put in the theme info file says I have these assets, add them please, always. There's also libraries and we've moved more and more things over to libraries but inside of hook library info you declare different, you can declare actually JavaScript and CSS together as a single library and then other systems can say I depend on this library and that will ensure that that library and its contained assets are brought in to the page. And there's attached which is especially for front end folks that is show of hands, who knows what attached is? Yeah, who knows what the render API is, render arrays. So Drupal's internal system for deciding what it's actually going to render, we have this whole system we instituted in Drupal 7 called render API where we basically build big arrays of instructions about things to render and it's full of lots of these pound attached values. It's very, it's inspired by form API which is a set of instructions for how you render a form. Well, this is generalized to doing all rendering and the purpose of pound attached is to say I have additional attached resources that should be added when this thing is being rendered and it's used to do things like say add this piece of JavaScript or the CSS or also declaring that this library should be included, things like that. But it is as I'll talk about more later the sort of primary base mechanism that we're trying to move towards. Then of course there's Drupalad CSS and Drupalad.js and I was familiar with those. Yeah, considered a bit more common. So those are going away. That's maybe the only thing that I can say for mostly sure is that we're trying to get rid of those. But beyond that and especially when calling Drupalad CSS and Drupalad.js, we have a few extra meta properties that we attach to our assets. The scope that they live in, group, browser information and then of course also some things like the media query to use with style sheets at the very least. So we have a sort of collection of things that serves the different needs and purposes. We have themes that need to say I have these assets, there's also themes that need to manipulate the other assets in the system. There's modules which I guess sometimes at least need to add their own assets. And really the purpose of the attached case though is kind of the more sensible one. It says I'm putting some like maybe a block on the page and the block needs some CSS to go with it. So I'll put pound attached on the block bringing its CSS and JavaScript.  Does anybody know? What is it? Minus 20, yeah. We use explicit weights for all of our assets. It's the way that we manage it. You don't always see it but when we build up the big array of all the JavaScript or all the style sheets that we're gonna add to the page that each have a weight assigned to them. This is how we get them out in the correct order. It's kind of crazy because the way it actually works is the order in which you call Drupal add CSS like it adds just a little teensy bit to the weight for each one thing that gets called. So we really just sort of hope that everything gets called in the right order and it works out well enough most of the time. But since we have explicit weighting, it's a poor solution since the problem we're trying to solve really is making sure that well if I depend on jquery then I want to be added after jquery. Having a weight that makes you get added after jquery accomplishes that but it also means that there might be a whole bunch of other things that you are weighted after that you don't actually care about. It doesn't actually matter. You have a bunch of unrelated JavaScript that is still an explicit weight ordering and ends up having significant effects on how we can do aggregation and bundling. So explicit weight is a very mediocre solution. Global Functions, Drupalats, CSS, Drupalats, JS, they are death to caching, to good, proper ability to, I really did not do that. They are death to our ability to cache the page in a proper way, mostly because you can call them from anywhere and they change page output from anywhere and if we can't predict what the page is gonna look like then we can't cache it. So this is why the primary reasons that we're trying to get rid of these global functions. As I said before, using SAS, CoffeeScript, et cetera, all these new systems that actually make you want to be a front-under is awkward at best and folks come up with sort of one-off strategies but we don't have any systematic way of supporting this right now. There's also problems because the list of declared assets is opaque. So by that I mean if you are in a theme and you're trying to look at the list of all the JavaScript or CSS that's been declared, you wanna manipulate them in some way. You have no idea if you're looking at the scope value or the media query or anything else that's been set on any of the assets, whether that was actually something that was directly set by the code that added the asset or if that's just a default that was added onto it later on. So you are really just sort of poking around in the dark when it comes to, ideally if something actually explicitly set a value when they added an asset, you should probably respect it. They probably know more about it than you but if it's just a default that got added you probably know more than the system so you might wanna supersede that but you have no insight into this whatsoever with the way that we add assets right now so it's kind of crippling if folks wanna do meta-operations on assets and there was at least one other thing under that opacity that's in my speaker notes that we're never gonna know because I can't remember it. So, step one towards helping with these problems is aesthetic. Now who's heard of aesthetic? All right, aesthetic is a PHP library which is, it's an asset management system that's designed to handle assets. It's inspired by Python's web assets and it ships with Symphony now and it's, so it's an essential part of how Symphony works but really it's about assets and filters at its base. Assets are used to, so we have different classes to represent them and bear with me, this is a bunch of PHP here but yeah. File assets, glob assets, string assets and HTTP assets. File, string and HTTP should be pretty straightforward to understand but here. In aesthetic, to declare an asset you say new file asset, you give it a path to where that asset actually lives and it creates this object that we can use to load and dump and there's dump methods on it which will actually output the body of the asset. Well there's, I'll put a pin in that for a second. There's a lot of things you can do once you've actually created one of these asset variables. Remote asset is represented by an HTTP asset so you pass it the path to that. Literal string, you just pass in the body of the asset that you want right there. And then a glob, something we don't, we won't be looking so much at with the way we're using this Drupal but the principle here is yeah you can pass it a path with like a star in it and it will capture all the assets in a sub directory or something and glob them all into one combined asset. Filters are where it's interesting so you declare one of these assets then you can apply filters to it. There are lots of different filters that a static ships with. This is a, I mean a small sampling coffee script filter, compass filter, CSS embed, JS mint, SAS, CSS compressor, JS compressor. There's a bunch more. One of the big issues of course is that most of these things are not actually written in PHP. They require an external binary of some kind that you've downloaded. Maybe it's Node, maybe it's Ruby, maybe it's Java but the purpose of this system and what a static gives us is we have a one simple way in PHP land of declaring an asset and then saying I want to apply this filter to it. I want to take my coffee script file and turn it into a Java script and you do that by just adding a filter to it. So we say new file asset path to drupal.css. We now have a representation of our asset and then we ensure that the CSS mint filter is attached to it. Now it's incumbent upon the system to make sure that the Java binary or the Ruby binary or whatever that actually will do the work is present and that that's been registered but the way that we will be doing this in core is we'll see how we do it in core. But ideally we will have at least some subset of the filters that a static ships with. We will hopefully package in some of these binaries so that you just get them for free. You have to do absolutely nothing. You don't have to download additional libraries or install anything additional on your server for it to work. It'll just work by downloading Drupal 8. So yes, you get these for free. Even if we can't ship all the binaries that we might want with Drupal 8 though, it's very easy for, it'll be very simple to download them yourself, put them in and in a settings file you'll just say this is the path to the binary and it'll work just like this.  Yeah, and so then the dump method here will, what we would see the output of asset dump here would be Drupal 8 CSS after having been run through CSS modification. So the way that's, and actually, sorry, I'm gonna go back real quick here. I'm intentionally not going into many of the nitty gritty details about aesthetic, apart because I think it would not be ideal for this audience, but there's also plenty of resources out there. I will put these slides up online and maybe a link on the page, but this link down here at the bottom if you can see it, is a slideshow presentation that's a couple years old but it's still the sort of best, simplest introduction to how you put things together with aesthetic. So this may make it a little bit easier to understand aesthetic's role. So everybody knows twig? Yes? Yes. So in a twig template, you might use aesthetic this way. Say, aesthetic and then you pass it the path to your, in this case, coffee shop file. You indicate that the filter you want to use is coffee and you tell it that the output directory should be JS and then the name of the file should be script. Then you have the actual literal script tag here for script source and then the generated asset URL. And behind the scenes aesthetic will do the two things, one of actually generating asset URL, which turns out to be JS, script.js and then writing out the corresponding asset to disk. It will read in your coffee shop file, it will run it through the coffee shop filter and it will actually write that out to disk at the appropriate location. So this right here though is indicative of why the sort of more standard way of doing things in symphony is not quite so applicable to the way that we operate in Drupal because we're not really writing literal script source tags in Drupal. Pretty much ever, that's something which is delegated to another part of the system, which means that what we have to do is it's perfectly fine for us to use the asset classes and to declare filters and stuff, but we have to solve the problem of how to organize them and then ultimately. So in Drupal aesthetic, the first thing we need is some of our own versions of those asset classes, the file assets, string asset, HTTP asset, and glob asset, along with some others. So first, and this code is written, not in, but written, the first change is that instead of having a generic asset type that isn't specific to the type of asset you're including, we have ones that are. So we have JavaScript file, JavaScript external, JavaScript string, and style sheet files, style sheet external, style sheet string. They follow the same pattern. If you want to include a local file, that's CSS or will become CSS after running a filter. Over it, then you call style sheet string asset. Or you, sorry, you make a new style sheet file asset to represent that. We also have then the asset library and the asset library manager that's to replace the old system for declaring libraries, but they end up looking pretty much the same. But so here in the old system, if you were to call Drupal as CSS and say path to file that CSS and then specify that its media type is prints the new system, you would say, make me a new file variable that represents this file asset, set the media type to be prints, and then call Drupal as CSS in the file. Drupal as CSS in the file is a lie, as I said, we're getting rid of those, but this is the idea, it's roughly the equivalent. Now as I said before, since this is having to do with the opacity issue, I don't know where, how, what value got set. In the new system, we can actually tell the difference between a default value versus a value that the code creating the asset actually set. So we make this new file asset, path to file, that CSS, and then if we explicitly call set media on it and say prints, then when some other code somewhere else calls, get media on it, it will get back prints. But if it calls get media default, then it will probably get back all, assuming that that's the default. Allowing, which means that other code somewhere else can be much smarter and understand, oh, there actually was a value, a real explicit value set. If we hadn't called set media print, then get media would just return nothing. And we would know that, hey, we can set our own value if we're doing something that way. I've had a number of people bring up this issue to me as being something that makes it very difficult for them to work with the assets that are produced by Drupal system right now. Asset bag is the simple system that we have for grouping assets together. If you have a bunch of different ones to clear, then new JavaScript file asset, new style sheet file asset. Here I've also included just a little sample of how it looks to attach filter. And then you add them to a bag. The bags are useful because we do need to be able to pass these around and keep them in order. Bags actually do a lot of different things, which I unfortunately don't have pseudo code to demonstrate, but bags are the central thing that we add all the assets to. Blocks produce, well, actually. I'm gonna leave that out, I'll come back to it later. Bags are our way of passing around groups of assets. Libraries get converted to the new system. So the old way, this is old hook library info from a system module. We're saying, the part that you look familiar is what's here in the middle core MISC JQuery JS that is in group JS library and has weights of negative 20. That pretty much goes away in favor of make a new asset library class for that. We add to it the jQuery.js. We don't have to set grouping or scoping and we don't have to set weight. That's stuff that we can handle implicitly because of the metadata on the asset. And then we just give a title and a version to the library in the same way. We pass that back along. Here's something that's maybe actually exciting. I'm hoping this is exciting for folks. The way that we get rid of weights is with these nifty little depends on system. So I make a new JavaScript file asset. Paths to a script. And then I say, I want my asset to be dependent on jQuery. All you have to do is this simple thing. Script depends on jQuery. And then when we're actually doing all of our page assembly calculations, we can take into account the fact that you should depend on jQuery and we will locate you somewhere after it. But you don't have to care about the 17 things that might be in between you and jQuery. We can have it to dance around with specific weights. We can also do some things. The dependency indicates that it must be there and I must come after it. It's also possible to just say my asset should come after this other asset if something else adds that asset. But I'm not necessarily saying it has to be there. Just make sure I'm after it if it is there. So you have a style sheet that you wanna make sure comes after system.  Either way, it's much easier than having to dance around with weights and manipulate those. All you do is just say after it depends on or you can clear that value out and the system takes care of figuring out order. This is a lot, it's very similar in principle to things like require.js, anything that handles script loading and ordering for you. And in fact, the goal here is that when we put all these things together into a big giant asset bag that has the however many dozens of assets that have been added to the page, we can write them all out directly or we can basically hand off responsibility to something like quite a little least work for the JavaScript side of things. But yeah, the issue is really we need to kill the global functions, Drupalad CSS, Drupalad JS. And there are a couple of different strategies for doing it and here we are with the three different ways that things could go in core. So the first one, the sort of lowest common denominator that we're shooting for is that we just use attached everywhere. If we do that, then we don't get core aesthetic or the Drupalad editions that I've discussed. So you don't get nice easy access to the filters and using CoffeeScript and all those other lovely things in core. It could still be put in and contrived but it would be awkward. I'm not really sure how we would do that if we don't have it as part of the base system. But themes are still declaring their assets via .info and now .info.yaml file. And everywhere that we call Drupalad CSS or JS that ends up being replaced with attached on a render array. But attached declarations look the same as they always have. They don't change at all and our asset grouping and aggregation strategies are also pretty much unchanged. How many folks have ever looked at the asset grouping and aggregation strategies in core? Apart from WIM, everybody knows WIM's done it. All right, yeah. It's awkward. And anybody who really cares about front of performance should look at it and kind of cringe. We have like five different axes that we group things on and it makes it basically impossible to nearly impossible to get down to a really, really tight set of just two or three style sheets that you send out. Yeah, so that's option number one. Option number two is attached plus aesthetic. Still themes declaring their assets via their .info.yaml file. And we're still replacing Drupalad CSS and JS with attached on render arrays except now attached declarations use the new aesthetic asset classes. You're doing new style sheet file asset if you're adding something there. Although again, I imagine for a lot of the folks in this room, you will never ever type new style sheet file asset or anything. You will be perfectly fine with just populating things in your .info file and this will work behind the scenes for you. It's only if you wanna get into more advanced manipulations of the assets that have been added to the system that you'll start working with these objects I'm describing. And yeah, once if we have the asset objects in place then grouping and aggregation, we can make much more pluggable and hand off to a nice little service which will make, we can do much better things with front end aggregation. And the third option is scotch which is in disrepair right now. Scotch the Drupalad initiative of which I am co-lead. So once again, themes declare assets via their .info.yaml file but attach is less important. The goal here would be that there's really only three places that assets come from. You have like Drupal core system gets to declare some assets, some systems, CSS, things like that. And that's harvested first and then we have the entire page composed of blocks on a layout. Those are all the top-level elements and then blocks have a formal way of declaring the assets that they have. And so that's basically the only additional assets that get to make it onto the page beyond what the system says and what the theme says is blocks that have actually been put on the page get to add assets other than that, no. So modules don't get to mess around and stick a bunch of random assets on the page that you have to deal with in the theme. Then finally after we've processed block assets it's theme assets. Once that's done the theme is the only thing with an opportunity to actually go in and change the asset stack. So again you don't have modules mucking around in there. And then finally we hand off to an aggregation process and then we spit it back to the browser. We still do use attached a little bit like below the block level. So if you're defining different types of render elements then you can still put attached on there but ultimately everything comes up into blocks. We have a much simpler top-level system and we understand where all of our assets are coming from. Yeah. So that's my wonderfully disco-ordinated presentation. How long did this take? I have no idea what time it is. All right, so questions. Yeah, I should use the mic though. Beside to take what symphony components are being used in the asset management. Ascetic. So that's the only one. Yeah, what else would there be? I was just checking the one you were showing like how we are doing the conversion. Or like it seems like similar to the page router conversion how we are doing like page callbacks converting into the new symphony component. Is there any conversion taking place for the asset management? Not yet because we haven't gotten the base system in place yet. Like I said, shifting sands. Yeah, I know Ascetic is a pretty standalone system that covers this need almost entirely. So there aren't really any other components to pull in. Like I said, the only additional pieces you really need to pull in beyond Ascetic itself is the external binaries to compile something from SAS into CSS. Apart from that, there are additions. There are these numerous additions, our own classes, the style sheet file asset, et cetera, which we are writing and which would be a part of Drupal itself. But yeah, no, there are no additional components from symphony for the system specifically. Thank you. So I have some concerns about wanting to include binaries. When Drupal, I'd say if you want to include SAS or Compass, then you have to include Ruby. And it's like doing local dev on OS 10, trying to have, like I'm using version three of the SAS on theme, which includes Ascetic in it.  And even using side tools like mixture, code kit, fire, I always end up just going back to my basic command line Ruby, so I want to include a gem.  I tend to agree, and we probably are not going to ship many. It's, yeah, that is, we have so many discussions between here and then. It's good feedback to get, though. I think that what will probably be, the solution we'll probably put in place is if we get, what we'll probably do is we will just figure out some sort of paths of these resistance, and then there are gonna be some draw scripts for it or something like that, that's my guess. So I mean, I think, and if you are gonna try and do it, have it be like a user initiated thing after install, like you install Drupal, now if you want to try to automatically fold the stuff and have it blow up, here's the draw scripts. Okay, cool, okay. Good feedback, thank you. My question relates to using Drupal at JS, but more, I guess specifically with Drupal.settings and how to pass runtime kind of variables to the front end, essentially, which might be done in a module or moved into a theme, but at the same time, what you said about caching is like, blah, blah, blah. I was just wondering what you guys are thinking about in terms of how you handle some of that. Yeah, so I mean, there are a couple pieces there. I did neglect the settings part. I have elected not to make a JavaScript settings asset because it doesn't really make sense in my opinion. Kind of be like a JavaScript string asset since you're just passing in some variables that are gonna be translated to JSON. But there is actually on the asset bag, there's like an add settings method. So this is one of those places where the asset bag is really intended to be this meta thing that's passed up and it can contain settings. But that's definitely one area that I have not come to like a clear, this is how we should handle it. I will also say that while there are, it's not like we've completely removed any module's ability to tap into the page and make modifications to it. We're removing some of the more easily abused global mechanisms. But there still will be ways to get your settings onto the page for sure. Yeah, for the most part what we're really just saying though is that we're trying to decrease the situation where modules come in and make sweeping changes to the site without any knowledge of whether or not the thing that they're doing, the thing that they're responsible for is actually happening on the current page. That's why we're trying to, in scotch, we're trying to tie things more to blocks. If you have a block on the page, then you have some skin in the game. Otherwise, go away. So I'm gonna ask you a couple of follow-ups on the lazy automatic compilation of CoffeeScript, SAS, or whatever other pre-compiled languages for those assets. I've been doing a bunch of work with CoffeeScript and SAS both. And when you're in development, most of those tools have some kind of watch command that can sit there, and when you make a change it automatically recompiles and generates your CSS or JavaScript. If you're in production, you really kind of want a build step that generates that stuff and packages that up so that you don't have each PHP head responsible for having the exact same version of the exact same binders, the exact same gems, and duplicating that effort across those different environments.  And I tend to think we don't need more of those. Ten to agree. So I'm not sure I see the use case at all for having Drupal take responsibility for it, which like the workflow that seems like it makes a lot of sense is you have those tools that do the compilation, do the compilation while you're in depth, you have them watch it. So it's really not a problem that you have to have it recompile. I don't really want Drupal trying to watch my .coffee or .sas files and figure out if it needs to retrigger a compilation. Because when would it even do that? Presumably, all right, with the aggregation stuff makes it more complicated, but that's like a hard problem to solve that feels like Drupal isn't the system that should be worried about that. My build step and deploy step to actually get stuff out to production should do that compilation and do it once. And in development, I really don't want Drupal taking responsibility for it because those tools are gonna be better at it. So I'm not sure I actually see the use case or how this makes working with those external tools easier at all. It's a good point.  You don't have to, obviously. You can just perfectly find for you to tell Drupal about the target place that those tools are compiling to and not actually directly say that this is the filter to be used for it. In symphony, the way that this is done is symphony actually serves, symphony typically expects that its assets are served by PHP and when the initial request comes in in the sort of more standard configuration, when the initial request comes in for one of these assets, it will end up going to a static and it will do the compilation process and it will create it once and then it writes it to disk and then you don't have the problem anymore. You don't have a good overall answer to it apart from saying, I do agree. Like, this is not something that I really want Drupal watching. This is not something that I include the other tools are gonna be better at watching it. I think there are some uses for it. Certainly it can be useful if you don't mind having it done in development that way at the very least but yeah, I don't know. There's a lot of best practices to be worked out for sure. You have a follow up? So I've been using ascetic on triple seven and one thing that really makes easier is keeping the sass near parent child themes. Like, if you want to inherit, that's something else to say but then I ran over here and slipped my mind. Well, we've got a lot of people so let's move on to the next person. Thanks, Howard. I comment on that and I think one value of this is that 80% that use Drupal that don't come to DrupalCon and work on smaller, simpler projects and don't have the time to actually build, put together, build processes and all of that, having Drupal do this for them is a big win for those people. Those are the sort of people that wouldn't know where to start to install Ruby to load a Ruby Jam or whatever. My question is about loading scripts last. This is probably my biggest pet peeve with Drupal but it's not something I've wanted to fix but not got around to. So if you've looked at front-end performance, most people know that the biggest one you can do is load scripts at the end of the body tag, not on the head and not at the beginning of the body tag. DrupalCon doesn't do this. It should, that's the ideal solution. So there's two parts to the question. One, will this make it easy to fix in DrupalCon and two, what's the work around solution? Currently the work around solution is you just put print scripts at the end of your page.tip-of-it. Yeah, and that's not a great work around for, but yeah, this actually makes it drastically easier. A lot of that, the sort of crappy metadata that we assemble makes it, I've talked a lot about dropping JavaScript at the footer or something like the footer and the fact that we are building a real dependency tree that says I actually need to be after this thing and not I am after this thing, I happen to be after this thing because my weight is set in such a way. Means that we can make much more intelligent decisions about where we actually put things on the page because we have real knowledge that this has to go after this, but they can technically be located anywhere. So we have, since we have the real insight into that. Yes, so that's it, it definitely addresses that use case. Yeah. I think part of the problem in Drupal six and seven core is that sometimes scripts do actually have to be in the head. Right. Either because they're poorly written or they might have a legitimate use case occasionally. And the problem is that with Drupal edge AES, it assumes that everything goes into head by default. Right. So then people write it to work as though it's in head and then they don't realize it doesn't work if it's not. Right. Will that default change with this or is it kind of unrelated? I mean, it is a little tangential since some of it has to do, well, it's slightly tangential, but I would like to see it change. Yeah, that we can initialize either that we, really what I would prefer to see is that we just don't have something and says you have to be in head. That we don't say either way where you have to be. And so for those few things which actually do need to be in head, then we can add that marker to them. We know that. But for the rest of the stuff, we can let it float, which means we can push it down. And that, yeah, that is my plan is to write the defaults that way. Right. So the aim is for a default to follow. Well, it would default to nothing and then we would push it as far down as we can, which means the fodder. Yes, that's what I would say. Yeah. Cool. And my last question, how can we use acidic in Drupal 7? I don't know. But somebody else has ideas about that. They were just picking me this morning. He said that there's a theme called Sasson that's available for Drupal 7. Hi, Sam. Yes. First of all, thank you for all of your work that you've been but again for this. I know it's incredible. I had a question because I didn't understand one certain thing they were saying. In the scenario where Scotch is a thing and we are going to be using plugins in order to handle this problem, I don't understand exactly how handle this problem. Means you're saying that in the annotations of the plugin, we're going to say which of the acidic buttles we're going to be bringing in a block, not plugins. So well, it's our plugins, but yeah, so a block would specify, there's a fair bit to it, but the simple concept is a block specifies in its annotation. In order to, if I am placed on a page, then I have associated assets that should also be placed on the page. I have some JavaScript, I have some CSS. So it will have in its annotation something that's like add style sheet file asset and then a path. This is the real question. I suppose, maybe it's because I don't understand plugins very well. For every case where we have an annotation that describes the things that that plugin has, is it also possible to do those same things without the annotations? The annotations are an inherent part of the plugin itself and are required to, yeah, they're required part, why? I'm not, I'm not sure I understand. It's just a code preference. I don't like putting code into comments. Yeah, I, there was a lot of discussion about that. Yeah, okay. Thank you. All right, yep. So I was wondering about why are JS, you mentioned it briefly, and but also about aggregation of JavaScript and CSS. So are we going to be able to, for a Drupal site where you've got different pages, say using a backbone, like one app page or one page app kind of thing, are we gonna be able to get backbone in all of those dependencies and that stack sort of bundled together, being aggregated and what would, and how do you see required JS being potentially used or? Right, well, I mean there's just a couple, there's actually just a couple overlap. The idea of using backbone for some front end things and not others is complicated in and of itself. So yeah, this would be a long answer and kind of meandering. So you can feel free to ask me about it later and we can talk more about it. But yeah, I don't know exactly what that end change would look like at the moment. That's the easiest answer I can give at this point. Okay, yeah, I'll ask you about it. Hi, my question is about filters. You didn't really clarify, I guess. There's different kinds of filters that would do different kinds of things. So you're gonna have aggregation and compression and processing. Will some filters happen automatically or would we have to depend on every module declaring JS man for compression? That's another one of those defaults that we can set. I didn't show, but there are factories that we can use to make it a little bit easier to declare these as well. So instead of doing like new style sheet file asset and manual set, you can kind of compress that down into a set of calls and formulas.  So there's a lot, when it comes to setting defaults, those apply to the properties we're used to having as well as applying filters. I think we're almost like at time here, if not, yeah, we're past time here. So why don't you guys come up, you can ask questions and thank you everybody for coming.


Mr. President, what about the pay freezes that you apparently have decided on? No question. Well, since everyone else has reported it, Mr. Regan said so. Mr. Weinberger. Maybe he's just like to talk now. Maybe he's just like to talk. Today? Good. I'm going to say anything now. I've got to look at that schedule again. Yeah. At least for a little. We have the same talk. Oh, I've got two rabies. I read that article. No, that's an Anglo error. That's a cross between a thoroughbredman and a... Tell us. Well, nice to see you. And congratulations to all of you. Thank you, sir. And thank you all very much for the help that I know you've had with us. This is a real large place, huh? It's smaller, I just think, than when you see it. But this morning, just this morning, Secretary General of the United Nations sat over there and that chair came in for a meeting. He'd never been here before and said the same thing. Yeah, there's something about it. All that stuff is awesome, you know. The person who designed this room had an idea what the job is. There's something to it. He mentioned horses. Warner Anivert won't be this. Stay here. This, these. This is a collection by an artist that in bronze has lived through the history of the Western sound. If I can follow the bronze... No, I don't think I can. That's beautiful. It's really detailed. You know, that's... That takes a lot of work. Yeah. Because I got hit in the ball and I do a statue like that. I can imagine doing it. Yeah. That's the remington over there. I'd like to bring one of the horses right up here rather than have to go all the way up. You did keep one here. Did he? Well, it was traditionally not the difference in those days. My goodness, the word was deteriorated. I got a picture of it. That's when we were going to do it. Take it away. Take it away. It's a great run of the door. We have a resaber. No, they misinterpret it. They want to cut that out of your weapon. Pretty nice horse. The angle of error? Pretty nice. Yeah. But you know what, the thing about his training? We've got cured of this now. But what they evidently do just for the month of it was when you take him out of the stall and we first got him. He'd come out on his hind legs. He's up there pulling and so forth. My stud does that. Well, and you know the whole thing I found out is that an Arab breeder in a long time friend of ours in Arizona wears a man working for him. He was working for the president at the time he had this horse. He has some beautiful horses. I had one in his marriage. This man told me that this was trained for that. So that then everybody said, he's going to ride that horse. And you know what the funny thing was, if you have to settle on it and get on it, he's a fine ride.  That's how they go into politics. He has some beautiful horses. I had a horse. Thank you. Mr. President, good to see you again. Good to see you. Good to see you again. Mr. President, good to see you. How are you, Mr. President? Good to see you. Nice to see you. Good to see you. Thank you, sir. Thank you, sir. Thank you. David Kaye. Good to see you, Mr. President.もう. Mr. President, I'd love for you to autograph this, and we used it to get a copy of the convention. Everyone else, your Vice President, everyone else has done me the honor, if you would. I've always prepared. Thank you, sir. Most insurance sales don't matter. Mr. President, my pleasure. My pleasure. Thank you, sir. Nice to see you. You're responsible for me losing a white suit one time. Well, I was running off some announcements for your campaign in 1976, and it got the in-call over my shooting right in the home studio. I just wanted you to know that. The only other white suit I ever ruined, I knew you couldn't be that old. Back in the early thirties, I guess I shouldn't confess to this when I was a sports announcer out in Iowa, and Iowa, you know, was famous for in those prohibition days for his row houses that served Iowa Champaign, which was MK gets near beer spiked without alcohol. And the group of us in this place one night after my sports summary, and I was in, or no, I wasn't. And, oh, what the Zud channel, All American Tackle for Iowa was there. I played guard in football. We were talking football. And there were some felling a white suit. He'd have both the way to dream him up doing it in the game, shoulder to shoulder, riding him up the thighs, hung him over our back and get right on the ground and dump him over a barbed wire offensive of a plowed field.  All right, listen, can we get a group shot or are there too many of them? Thank you. Listen, I should be thanking you and I do thank you for all that help that you give our people and give me. We tolerate them very much.


The hard part about entrepreneurship or even being creative is people forget that what's of value is the idea. A lot of people get stuck on like, oh I don't have the money or oh I don't have the connections. Just go back to the idea. How do I move this one step forward at a time? Today for young entrepreneurs we have so much information that unless you have the venture capitalists giving you all this money then your idea is worth nothing. I had nothing. I was the receptionist that took the bus. I had no contracts, no rich family, nothing, you know, so it is possible but you have to believe in yourself.


Good morning, John. I've been saving this one for a long time. I'm very excited about it because there is something very bizarre about the universe. But before I get to it, look at this beauty. Look at this! This is the one week, just until the end of this week, you can get shirts that will someday be legendary. And if they were pizza-miz pants, they would also be amazing, but we don't, so I don't know why I'm talking about it, except to say that these shirts go with any pants! But back to the topic at hand, the universe is a very, very, very big place, possibly infinite. And yet, as far as we can tell, both the hottest and the coldest place in the universe is the same place. And I know this sounds like a riddle, but it's not. The second coldest place in the known universe, as we all of course know and talk about at parties and on office, Zoom calls is the Boomerang Nebula. It is expelling matter out of it, and the most energetic matter leaves more easily, leaving behind the less energetic matter, which is basically how sweating cools you off, like the hotter molecules of water evaporate, leaving behind the colder molecules. Now, most of the universe is quite cold, 2.7 Kelvin on average, but the Boomerang Nebula is a mere one Kelvin, just one degree Celsius above absolute zero. Think of it, 1.7 degrees Celsius colder than the rest of the universe. They must be there being like, brrr, but you can't hear them because it's in space. But the coldest place in the known universe is so much colder than the Boomerang Nebula, like wildly colder. And I'm gonna let you imagine, like, where would it be? What nebula is colder than that? It is, at any given moment, in a laboratory on the planet Earth, which is not even a nebula. It's a room of different labs trade back and forth, which is the coldest at any given time. But the coldest we have ever gotten something is so much colder than we could imagine happening naturally, that outside of other intelligent systems like us, we're pretty sure that it is the coldest any matter in the universe has ever gotten. So, like, go Earth! And, like, I hope you're clapping at home because Earth is where you are. It's where you're from. It's like your planet. So the Boomerang Nebula is one Kelvin. The coldest we've ever gotten something on the planet Earth is 38 pico-kelvins. That's 38 trillions of a Kelvin. Humans! Like, let's see a goose do that. Now, there is maybe a problem, because there's always a problem. And the problem is that black holes are very weird. You might think that black holes are hot, and, like, maybe they are. I don't know what it's like inside of a singularity. But they have mass, and we used to think they didn't emit any energy, so they would have, like, zero temperature, or they would be zero Kelvin. But it turns out they do emit some radiation. It's called Hawking Radiation, and I don't understand it.  But the biggest black holes would actually be colder than that. But what we're doing is just, like, taking the amount of radiation and dividing by the mass of the object, and I don't think that's what we mean when we say cold. So some people will say that black holes are the coldest thing in the universe. I don't think that's what cold is. And I am very qualified to say what I think cold is, because it's what I think.  But, like, they don't actually need my validation. That's the weirdest thing about black holes, actually, is that they don't need any external validation. They just only care what they think about themselves. Which I don't know what that would be like. So that's cold. What about heat? So again, the universe is a very big place and there are lots of tremendously energetic things happening inside of it. There's giant stars, there's supernova, there's black holes ramming into neutron stars. There's Barbie and Oppenheimer coming out on the same day in the middle of summer. That was very exciting. Like, and that can only happen in this universe. But just to start off with something that's got to be pretty close to the top, right? The core of our Sun is 15 million Kelvin. That's about 30 million degrees Fahrenheit. The core of a supergiant star, though, might have a temperature of over a billion Kelvin. So the Sun's not so hot. I'm gonna forget to bring those sunglasses back inside, and Catherine's gonna be so mad when she can't find them. Current Hank editing the video, and would you believe? They're still right there. This is three days later and I still haven't brought them inside. There's the Pizza John sign. I'm gonna do it right now. But even hotter than that, a supergiant star going supernova at the end of its life could, in some areas, produce a temperature that is over a hundred billion Kelvin. You know how many degrees Fahrenheit over absolute zero that is? It's like all of them. Every degree got together and had a party, and it was at the core of a supernova. So give it all that. As far as we can tell, the hottest thing that has happened in the universe since the Big Bang. So not just like recently, but for the last 13.7 billion years. The hottest thing that has happened in the universe happened on the planet Earth. It happened in a particle accelerator, and the temperatures that the particles reached was not a hundred billion Kelvin. It was not a trillion Kelvin. It was seven trillion Kelvin. To get a sense of the scale here, imagine something small and something big. And the small thing is the core of a giant star going supernova. And the big thing is just a particle accelerator going faster and furrier, sir, here on the planet Earth. Now, the universe is big and weird, and we don't completely understand it. So maybe there are events that are hotter than this, but we don't know about. And also, many, many billions of years from now, the universe might expand so much that it will get even colder than that laboratory in Germany.  But it seems like maybe in the middle time between the Big Bang and billions and billions of years from now at the heat death of the universe, the hottest thing and the coldest thing that has ever happened, happened in one very tiny little corner of the universe during a very short period of time. Both of those temperatures seem unlikely to exist naturally in the entire rest of an infinite universe. That's us. Sometimes I feel like in the scale of the cosmos, we are so clearly insignificant. And sometimes I think that there's like nothing more significant than us. And I'm really not sure which one it is. John, I'll see you tomorrow. And until then, Pizzamas products are available now at Pizzamas.com or at the Pizzamas app. And they're so great that you will not be mad at the rest of your shirts so much as disappointed in them. You look at the rest of your shirts and be like, I don't just I don't see it anymore. I'm just gonna throw them away. Don't throw them away. But the Pizzamas shirts are only available this week. And at the end of the week, never again, no matter what, no amount of pleading will change my mind. You think you can boss me on this? You can't. These shirts are limited like we all are limited. Love these shirts because they are like us, both the hottest and the coolest thing in the universe.


Hey, when somebody stands you up, do you immediately get upset? Never call them again. Do like, if they're going to stand me up, it ain't worth my time. I'm not doing business with them. I'm not taking their money. They may want to give me some money. They may want me to sell them, but no, I ain't doing it. Quit complaining. Quit whining. Stay positive. Cater your schedule to theirs. If they stand you up, don't ignore them. Maybe they've got a good excuse, believe it or not. Call them back. Follow up. They request information.  I'm going to call them, text them, email them, door knock them. I'm getting back in that house or I'm getting in the house to begin with. Stay positive. There's no reason to complain. There's no reason to think about or there's no reason to make assumptions that maybe they hate me. Maybe they'll never buy from me.  Maybe they're broke. You know what, that person will never buy insurance from anyone. That is false. The assumption that you need to make is they will see you. They will buy from you. They will be one of the biggest cases you've ever written. They will be your best client forever. I say it all the time. I'm a firm believer. The harder the lead is to get in front of, the harder the prospect is to close. The better of a lead and a prospect it actually is. My best and biggest clients were the toughest to get in front of. Now they may not always been the toughest to close, but my best long-term clients were the toughest to get in front of. They weren't readily available for anyone and everyone to just stop by, come on in. Don't start thinking negative on me. Stay positive. Cater your schedule to theirs. Stay positive. Don't complain. Reschedule as soon as possible. What you can control is your attitude and what happens.  What is in your control is how you respond to the negative situation and how positive you become your attitude and if you make the settle the very next time. What do you guys think about this? I want to hear it in comments below. Whether you're on Facebook, YouTube, I want to know what's going on. I want to know what you guys are thinking and I want you to follow everything that we're doing from now on. If you haven't been to our website, you need to check it out. It's crazy. Leads, training, programs, memberships, scripts, freebies, anything you want, it's there. SecurAgeMajor.com. Thanks for watching. Appreciate you.


Mi'n amlwg Llynsyn Macai. I'm a modern apprentice in the Parliament, currently in the events team. When you think of the Parliament, I think a lot of people think politicians, politics in general, but I think not really appealing to young people, but I think as soon as you get in here, it changes your perspective completely. There are some jobs in here that don't relate to any politics or politicians at all, and there are some where you can be dealing with the politicians on a daily basis. I was in finance, and then I was in the chamber office, and then I was in procurement, and now I'm in events. It's just such a varied range of work that you never really get bored here. I helped out the media village for the referendum, working on something like that. It's just such an amazing thing, but unique again to the Parliament, I think. It's an exciting place to be, and it's different almost every day. In any job you're in, something can come up, which can completely just change your day. It's an exciting place to be, and I think it needs young people because it changes, work changes on a daily basis. People who are quick to change direction, and they're quick to deal with issues that come up. I definitely encourage young people to apply for this new intake of apprenticeships. It's, I think, a valuable experience. I've certainly enjoyed it. You feel that you're a valued member of the Parliament workforce, and I think it's a truly unique and interesting place to work. If you're interested, please apply. Why not? You can apply online, or you can contact us by telephone, email or social media.


Hello artist, I'm artist Susan Jenkins and welcome to Monet Cafe and my patreon page I'm making this video available on both platforms because I believe this content is just that important as an artist I talk about value all the time. This is a really neat gray scale and value finder I think you can find it on dickblick.com. It shows you the Degrees of value from black to white black being number one I used to get that confused and white being number 10 And you see those little cutouts that look like keyholes think of that keep that in mind when I talk about this What I'm showing here would be considered high key. Notice the value numbers are higher and it's lighter values What I'm showing here would be low key the value numbers are lower one to five That would be a low key painting. It's darker values So I'm gonna give you an example of both of these along with a mid-range value painting All right, often when I'll do a little exercise like this. This is really all this is to Give you instruction. I'll take a painting or a scene of mine. That's real familiar and quite easy to reproduce So that's pretty much what I'm gonna be doing here. I will give an example of a high key painting I'm gonna speed up this part a low key painting and a mid-value Painting again, these are just exercises and my patrons, you know, this is going to be your homework over the weekend This is your PE patron education, which we have on Fridays and once again I decided to open this up to the Monet cafe YouTube channel because I feel this lesson is really important I have a lot of beginner artists who say we need more beginner videos. So this is core to Understanding value and representing it correctly in your art. I find we often use too large of a value range We use something super dark and super light all in one painting and when we can learn to isolate and understand values That's gonna help us all as artists and again. I encourage you to do a very simple scene with these I'm just doing once again something very familiar some trees on a hill another hill in the background with some distant trees a Road kind of pulling your eye into the painting and so they're all gonna be kind of the same and I decided to do one Of them as a horizontal format as well for my mid-range example. So I'm gonna give you guys examples of each Value range low key high key and mid range I'll be using for this. Oh, by the way, this is just watercolor paper Okay, these aren't gonna be any fancy schmancy kind of paintings So I'll be giving you right now an example of a high key painting and It's that upper Part that I'm showing there and the darkest value is going to be somewhere between values six and seven Uh, maybe a little bit darker than just what you saw at the top there And I've decided I was going to use the unison 120 half stick set that I've had for a few months now and I love the set of pastels I'm going to show it to you guys I love the set of pastels because it's pretty all inclusive It has a very large range of values colors Neutrals and the neat thing is they're already organized in a way I'll be showing more of the set in a way to do this exercise to see the range of values within a certain color family Now I've moved my camera so you can see the whole range of colors I'm going to be using you see that row that I'm pointing to right there. They're all kind of topi mauve colors And I'll be using just the lighter values or the higher key values that one there It's a little darker than value six. So I'm going over a little bit into value five That's going to be my darkest dark often when we start a painting We like to grab the darkest dark like that you have in your whole set to represent the the trees Or things that are in the foreground And with a high key painting your dark is dark is not going to be that dark I will not get any darker than this now. I'll show you little examples of each color As I work and I'll also at the end I'm going to show you all of the colors that I used again So we know that vertical things like trees are usually darker So and especially things in the foreground There's that one color that I just used right there So I went ahead and got the trees in the foreground and the road Because it's kind of some deep grasses now the next value the next darkest Value is this It's more of a medium taupe value and I'm using that one for those Trees in the distance. They're going to be a little lighter in value Now my foreground grasses on the sides of the trail will be a little bit lighter in value But they can still be Darker in value than the rest of the painting because it's in the foreground things and the foreground are typically darker in value Things in the distance are lighter in value. So that's the color that I used right there So we've got two values in now I'm going with the third one and these are all kind of close and by they're just gradually getting lighter Now I'm going to add a little bit on top of the distant trees to lighten them up just a little bit And then I'm also going to use this value to get more of that hill Around the trail in the foreground once again, we're still dealing with the foreground, but These grasses are more flat with sun shining on them. So they're a little bit lighter in value than the Foreground grasses where you're maybe seeing the roots and the you know the deeper grasses So that's why I use the the middle value in my particular range here Now here's the next lightest value glazing it over some of the grasses on the hill And they will represent that distant hill because things get lighter in value as they recede into the distance And also you can control value A bit by just your pressure I am not giving as as much pressure or as much coverage To the distant hill as I did to the where it was closer to the viewer And this is the next lightest value. I'm glazing it over. I did glaze it over the background Field there to lighten it up a bit and now I'm just kind of reinforcing some of the darks once again that top Color that I put on the side there. This is my darkest value I'm going to give a little bit of a a hint of a trail kind of going back into the distance a little bit there And so that is really a very shallow value range for this high key painting I am going to be blending these with my little chamois cloth technique I've been using lately and once again, these are not going to be final finished paintings Um, or maybe I will go back and finish them But this is kind of a neat strategy to blend it in to kind of cover up a lot of the white of the paper And if you wanted to go back and do more pastel application, you could apply a coat of clear gesso You know, I've talked about that a lot if you've been on my channel It has a little bit of grit to it the clear gesso will allow you to see through it to this underpainting that you've created And when you apply it and let it dry the little bit of grit in the gesso Gives texture and it gives some more tooth for the pastel to hold on to I have a new recipe by the way A very neat video coming up very soon. I think you guys are going to love it. I'm using this new recipe For a lot of my homemade pastel surfaces So I can't wait to share that with you. It should be in the next day or two Now I just use the lightest value up in the sky The white of the paper is the lightest light by the way And often you like to leave a little light right behind the distant trees right above the treetops So I didn't give too much extra value. It's almost the white of the paper there now Time for the low key painting. I've flipped the value scale over I'm going to be working more with the darker End of the value scale. So let's choose some pastels for that Now I could have done all these with one color family just with all the different values But I thought let's get a little fun and creative for this one the low key the darker values I'm using reds and this is a deep This one's dark. This is really a dark pastel. That's that'll be my darkest dark And then I'm going to gradually go down Not to get too light because remember these are all going to be the darker parts of the value scale Okay, so here we go with the darkest dark that I I showed you it's not I never really use black I always just use a dark version of color and that one's pretty dark So that now will be my darkest dark and you can see how much darker that is When you compare it to the low key Um, I'm sorry when you compare it to the high key painting that's to the left Once again, it can seem confusing Because I think in our brains at least in mine I had a tendency to think of black as the higher number But it's flip-flopped the lower numbers the lower keys on the value scale are the darker colors So I'm doing the same general idea using this darkest dark and now gradually My values are going to decrease from here just like they did in the high key painting But they won't get all that light. Okay. I'm not going to go in a big wide range of values We're going to keep it real tight with darker values. Now. Here's my next Value and it's pretty much right there at value Two again, it's hard to to think of it backwards like this sometimes. So this is a lower value Um darkness. Okay, so it's just a little bit lighter in value than the first one that we use So I used that one for those distant trees Remember things that are vertical are usually darker in value But they gradually get lighter in value as things recede into the distance. So I used a little bit of that color now I'm adding the same value kind of to the tops of the trees there to kind of give a little variety And once again in the roots of the grass is in the foreground kind of surrounding the trail And now we're going to go with our next Lighter value and it's going to be more like value three reds are tricky patrons You probably remember we did a neat little exercise where we had to determine values We made a chart and um, I a lot of you I I loved it was the same thing for me when I first did it I loved your responses like whoa reds are darker in value a lot of times than you think Um, especially bright reds sometimes you have a hard time with bright colors determining Is that a dark values at a light value? By the way, if you have any trouble with Determining value take a photo of your pastels and convert it to black and white now. This is one of those ones That's brighter. Uh, it might not be that much lighter than the one that I did before It's pretty close. It might be a little bit lighter. It's definitely a little brighter So but I mean it can get tricky when you get in those really close ranges But once again converting things to black and white will really help you to see values All right, so you see if you just look at the ones I've used thus far I think I am going to grab one more You can see they're all dark To medium dark values now. This is going to be the lightest one that I use I think I may I may stretch it a little bit and go a little lighter But you see all of these values are more on the Lower key range Um of the value scale now once again, like I said before I'm controlling the value a little bit with pressure here I'm just not applying it as Thickly or putting too much pressure down. I'm just lightly glazing there. Oh, I did go one value lighter Okay, so that is definitely the lightest value and I'm just applying it glazing a little bit over the distant field there and I think I add a little bit in the Skies typically are darker at the heavens at the top and they get lighter as they come down I'm glazing it over the fields there, but they usually get Lighter just above the treetop. So I'm going to put just a little bit in the upper sky And um just kind of blend it in a little bit to give the sky a little bit of color instead of just being white After all this is a low key painting white is uh is too light of value for this painting So I'm going to use my chamois cloth again. I'm just going to do a little blending And also while I'm blending I'll talk a little bit more about How you would uh go about Painting this if you wanted to go further you have a couple of options You could blend like I'm doing with a chamois cloth You could uh blend with a piece of pipe foam insulation That's become a common tool for blending and usually this blending stage is just to cover the white of the paper All right. I don't blend a lot at in the later stages of a painting So you could use the chamois you could use a piece of pipe foam insulation You could also use a brush with some water or alcohol And do a more of a wet underpainting after all this is watercolor paper And I like that technique too. I I do a little bit of all of these so Um and then once you have your underpainting this is called The way you want it then you would apply the clear gesso or once again the new recipe that I've come up with I'll be sharing that soon. All right. I did add a little bit lighter to the value I didn't want that sky just totally white. So I went one lighter just to get the sky So this is definitely an example of a low-key painting We don't have any really light values in this other than the little bits of the light of the paper showing through This would be good a low-key painting for a Uh a scene that doesn't have a lot of light you already can sense from looking at these two one of them feels more like daytime and one feels more like Evening just as the sun's going down Then i'm going in and establishing some of the darks and I would probably not have done this here If I decided to go further with this as a painting I would have applied my clear gesso or something first and then Um moved forward, but I'm not going to I don't think I'm going to do any more of these little paintings These were just exercises now. Let's move on to more of the mid-range values I would say this is typically where most artists work is not super dark or super light and um What I'm going to do instead of the top or the bottom Horizontally, I'm going to do it vertically. I'm not going to be using any of the darkest darks or the lightest lights They're all kind of middle range values once again Let me show you the colors that I'm going to or the values and colors. I'm going to use I decided with this one to use some of the middle value greens. These are really pretty bright greens And once again, my lightest light is not going to be that light Not by any means towards the end of the spectrum with value And my darkest dark won't be nearly as dark as the one you saw in the low key painting And as a matter of fact, this is the darkest dark that I will use you see how it's It's not as dark as the low key darkest dark and it's not as light as the high key darkest dark I hope that's not confusing. It's a middle range dark. Okay So this will be what I will use just like the other examples for the vertical trees Especially in the foreground because they're usually darker in the foreground for those deep grasses and that little trail simulation that I'm making there Leading the eye back into the painting and then I will gradually go Lighter in value and because this is mid-range I'm not going to go nearly as light in value as I would in a high key painting So this is my next Darkest value again, just like the other ones. I'm using it The things that are vertical are usually darker But because these distant trees are further away They will be a little lighter in value than the trees in the foreground And the same thing the grasses in the foreground will be a little darker in value by the trail Gradually getting lighter as they go into the distance and also as the as things flatten out They usually get lighter in value like distant fields You can't see down deep into the grasses when it's far away. So you're usually just seeing the sun Shining on flat surfaces Now this is my next darkest value a really pretty green often I use values in a gradation From around a trail and almost simulating a hill, you know where a hill goes down The depths of a hill is usually darker and the crest of a hill is usually lighter So I kind of use that strategy when painting. This is my next lightest light Is this pretty bright green because it's a little lighter than the other green I'm going to glaze it once again emulating kind of a hill stroke Your directional strokes will give the illusion of what you're trying to paint And once again like the other ones using a lighter pressure back here I will use my blending tool again to blend all of this in But really what we're doing with value is creating an illusion Another neat thing to do is to paint in low light sounds crazy This is my final lightest value here But if you paint in low light you're kind of forced to see value because you don't see color all that well So it's a good way to Identify your values a little better giving a little bit of lighter values to the top So the trees in the distance going to go ahead like I said Yes, I'm putting green in the sky and give a little bit of value to that sky And I'll blend it in once again just a little bit because the sky is typically lighter than the ground And we've got our basic little mid-range value study I used my finger because my chamois cloth is getting a little dirty and dark And so I just blended it in a little bit with my finger. All right, here we go And also too this whole thing has been a real time So if you do this patrons as an exercise remember to share it in our homework album because you get credit When I do the drawing At the beginning of the next month and the more homework you do the better your chances to win the drawing and some free art supplies I give a gift card to Various so far I've been using dickblit gift cards. So it's a lot of fun So make sure patrons if you do this you submit it in the homework album Also, you can keep this as simple as what I'm doing here. You don't have to go and make it a final painting I always say I think we often get overly fussy thinking we have to create Some big great work of art when really we need to do more practice stuff Myself included. All right, once again, I'm just reinforcing a little bit of the tree trunks here also in Now this isn't on value but on With regard to how things behave in nature and with physics things get more detailed in the foreground So you typically give more detail to things that are closer Or areas that you'd like to give a little more focal point Or focal interest So I hope you guys have fun with this. I had fun with this. You you see this didn't take all that long at all It really doesn't have to take long But do you can pick the same general subject matter patrons that I did and If you want to do it exactly like I did it or you can pick a scene that's familiar to you Try to do the same scene for each of these Exercises though, so you're keeping it all consistent Now if you're not a patron of mine, I hope you learned a lot in this video I am trying to cater to you guys who are asking for more beginner content And even though this was a lesson on my patreon page I felt it would be really good for all beginner artists And if you'd like to become a patron, it's only five dollars a month You can cancel at any time and it is a a big help for me to be able to continue to bring videos Free videos to monnaie cafe. So bless you and thank you to all of those who have Supported my patreon page. I'm really really grateful Now i'm going to be showing you the actual pastels in the box that I used for these three examples You can see the ones that are sticking up. That's the High key values that I used these are the low key. There's the darkest dark remember the low key values Remember they're darker values And then for the mid-range values are the greens that I used you see them sticking up I've developed this little system to where I like this set because it has so much Available with color and value and neutrals and brights and darks and so it's really neat to be able to Do a lesson with this set. So here's the final high key painting Low key painting and mid-range painting So I hope you guys try this and you learn a lot and please subscribe to this channel if you haven't already Like this video comment become a patron and I can't wait to bring you lots more awesome stuff I've got so many videos to upload. So get excited happy painting