It's all settled down, nerds. I want to get started. All right, so we're here to talk about the why and how front-end architecture feel the rhythm, feel the rhyme, get on up, it's front-end time. So who are we anyway? I'm Wester Wachaba. I'm a recent-ish addition to Lullabot. I'm a front-end developer. We have Karwin Young here, a senior front-end developer. And Sally Young, no relation that we know of, who is a senior developer at Lullabot. So like I said, we all work for Lullabot. It is an awesome place. Well, it's not really a place. I'll take it back. We do strategy design and development. And you should come work with us because we're awesome. So we have a buzzword in our talk title. So I thought I would try and define it, make sure we're all on the same page. So when I talk about front-end architecture, I'm talking about how you design, how you want to work with the front-end, and how you're going to collaborate with the people that you're working with, write your code, and then what kind of standards, libraries, and tools that you're using. So the byproduct of that looks something like coding standards, documentation, style guides, implementation guidelines, file organization, tools, building process, blah, blah, blah, blah, blah, blah, all that kind of fun stuff. So it's important to revisit these decisions throughout the project because things change, the team dynamic, how the code's working, how your build tools are working, all that kind of fun stuff. You can't always change this stuff mid-project, but it's important to have the conversation and figure out if you can address anything as it comes up and make sure that your team is liking the development experience that they have. Because we want nice, happy brains that are writing new features and solving bugs. We don't want a very grumpy, angry brain that's like, where do I, how do I, what, how? Oh, here it is, I guess, and now I'll fix it. So we want to talk about why we're picking these different tools and processes and how we make those decisions to make sure that we're successful throughout the life of the project. And as far as I know, I haven't seen a one-size-fits-all friend in architecture yet. So that means that we all have to kind of be aware of what the tools are that are out there, what kind of processes there are, and why you might use these things. And at the end, we'll have some time for questions. But if you don't get your question in or you think of something later, feel free to hit us up in real life or on the inner weapons. Second slide there will have our contact info.  So let's get into it with Karwin Young. So I'm gonna talk about that stuff. The organization of the front end is, to me, the underlying foundation of all of the architecture and stuff that we're gonna talk about today.  That doesn't necessarily mean that you need to structure a small team project the same way that you do a large team project. But there has to be some level of organization or you'll end up with a mess on your hands even if you follow all the other advice in this talk. So that's a mess and that's kind of the thing that we're trying to avoid. Like I put there, there's no logic in this place. It's huge. The organization and planning of the front end is one of those pieces of a project that's usually either neglected until after it's already way too late and you already have a big mess on the project or it gets fixated on by developers to the point that they don't actually get any work done. And so I would like if you didn't take anything else away that if you just drilled this one thing into all of your heads. Some kind of plan is better than no kind of plan. Well, no plan at all. Arguably the most important thing a solid organizational structure does is it make it easier for you to find your stuff. No matter who you are on a project, inevitably you'll come across the need to find something somebody else has written or you'll have one of these questions. Where should I put this fancy new template file? That kind of thing. And sure you can use grep or your IDs find function if you want, but if you know the patterns and the organizational paradigms that your project is using, you can get to modifications quickly and you can work more quickly in general. And it'll just provide instant answers to all these kinds of questions as they pop up. So having a solid plan for the front-ends architecture also prevents an overlap of code and it encourages compartmentalization. This makes it easier to work on new features and it gives you some measure of breathing room when you break something because you aren't breaking 5,000 other things on your site. And if you can break just one thing on your website at a time, I think you're living the dream. Because that's really hard to do. It's hard to break just one thing. So a solid organization and a documented set of project conventions are invaluable to every project. So now I've talked a little bit about why organization planning is so important. So let's talk about how you decide what to organize and to what extent. So firstly, what kinds of things can we organize on the front-end? Well, you can organize templates, your processor files if you're using those, CSS properties if you hate yourself, JavaScript libraries, helper functions, et cetera and literally whatever else you have going on. In short, everything. Organize everything. Write it down, document it, drill it into your heads. This thing goes here and that thing goes there and projects will be a little bit different depending on everyone involved. It is a real balancing act that takes place around the extent to which you organize. The level of detail you put into your plans will vary significantly with experience. So start small and then build on that. If it makes sense to you to organize right now, organize that and don't sweat the details of what should I be organizing because you'll have an innate feeling about this needs to be organized. So HTML, templates and preprocess. You can organize this. In general, a good thing to think about when considering how to organize templates, preprocess stuff is do these functions or files, does anything in here rely on code provided by something else, like a module? If the answer to that is yes, it might be a good idea to keep them coupled. If the answer is not yes, then it might be better to just put it in one place like the theme.  All my stuff for this thing is over here. So there's no right or wrong answer to something like this, but a call needs to be made up front so that the project is easier to understand. Otherwise we're running into small things that eat up lots of time. For instance, I was on a project where we had things spread out all over the place and it took me a lot of time just to figure out where and how I should be working rather than actually getting any work done and that was really frustrating. And then on a different project, I've had developers who were adding markup to items and views through the UI and that wasn't documented. So I had no idea where to make the changes I needed to make. And the reason for that was there weren't any firm decisions that were documented somewhere that I could read and say, okay, this must be infused somewhere. So making up front decisions is important, especially regarding front-end architecture. Wes actually wrote this slide. I thought it was funny. I'll let it sink in. Okay, I heard some chuckles. That's good. So JavaScript, we already know this. JavaScript planning is actually relatively simple, especially in the Drupal landscape and the decisions you make around how to organize things, they follow mostly the same logic as templates and processing functions. If your JavaScript relies on something, it makes sense to keep it with that thing. You will have some different decisions to make if you're implementing third-party libraries or jQuery plugins or something like that. You should probably handle that with package manager, which Sally's actually gonna talk about a little bit later. Let's just move on. CSS is probably the most front-endy thing I can think of and that's an actual word that I submitted to Webster, but they haven't put it in yet. There are a good number of organizational paradigms that you can adhere to, particularly if you're dealing with the preprocessor landscape in CSS. So instead of talking over the finer points of one or another methodology, I wanna talk about how to choose one first. And then before I get into that, I wanna say that if you're unsure of which one to choose, you can simply pick one that sounds interesting and then run with that because there's absolutely nothing wrong with it. Like I said, some kind of plan is better than no plan at all. So to get a little more specific, I think of CSS methodologies in three basic types. This is an official, this is just me. There's the component methodology, which is highly modular, discrete chunks of CSS and markup. Utility classes, or utility methodologies. The Lego version of CSS, you kind of tack on classes to markup as you go. And they do very few things like dot underline or dot red, which as you may expect, will make something underlined or red. And then hybrids, which are kind of a mix of the two, good for the environment. You can pick something that lines up with any of these, but the decision about which one to use needs to be based around how you and potentially your team want to work together. If it's easier in your mind to modify markup, you'll have pretty good luck with utility class-based paradigm, really. If you need to reuse a lot of markup patterns, component-based methodologies work great for that. Most projects I've been on recently kind of use the hybrid thing, where we start out with a component-based methodology. And then as we get further along in the project, we realize, oh, we didn't account for X, Y, or Z, or we didn't think about this, and so we can add a utility class here or there that kind of helps bridge those gaps. And that works really well. And in fact, that's my favorite way to work. As long as you don't go overboard with utility classes when you're mixing them, life gets pretty easy. And it's worth noting that Drupal 8 already has some standard best practices around how to architect your CSS. So if you're unsure of what to do or having trouble deciding, that's a safe bet. You can go with that. That way, the other benefit is, if you ever want to contribute something back to Drupal, you're already adhering to the Drupal standard. There's still no logic in that place. I hope we never have projects like that. So every project on some level runs on the currency of time. Some obviously have a lot more than others. And personal projects especially can seem like their budget of time is infinite. The upfront cost and time of organization when planning out the front end can be really, really hefty. And it's tempting as a developer to just say, I don't have time for this. I just want to take this PSD and I want to make something visual that people can play with and look at. But if you skip the planning organization, you'll end up with really fragile code. And you won't be able to live the dream of being able to just break one thing at a time. So be aware of that. Don't over engineer this stuff. Speaking from experience, I can tell you that it's really easy to let this organizational stuff kind of consume your life on a project. I mentioned earlier that sometimes developers can get so fixated on this stuff that they don't actually do any work. And I'm guilty of that myself. So that's definitely a real problem. And as I mentioned earlier, it's also important to realize that everything changes. So all the plans and conventions that you come up with, planning out the front end, they're all going to change. The project moves on.  So you need to spend time, set aside time for architectural decisions, keep them simple, and revisit them as much as you can. Preferably throughout the duration of a project that way everyone can land on something that they like and that they can work with easily. So I'll leave you with this once again. Some kind of plan is better than no kind of plan. Wes. All right. So now we're going to talk about build tools. So build tools have become really big lately.  So if I'm not using any right now, let's say why might I want to adopt build tools? What are they going to do for me? So one of my favorite things about build tools is it adds a layer of abstraction. So working in compiled languages is a good reason to use it. Sass, less, copy, script, handle, all that kind of stuff. Copy, yeah, the other ones. And then how you work and how your code is delivered are not the same thing. That was true to an extent before them but now you can do something that's very good for you but would be very bad if you delivered your code the exact same way. So having small files that are just for one component might only be like 20 or 30 lines. You might, if you did that back in the day, you would have way too many CSS files unless you concatenate them all. But there's a lot of cool little ways you can make it easier for you on the backend and then on the browser side, they get what they need in a really nice way. If you're doing all this stuff right, your code can be drier and more compartmentalized which goes back to the being a lot easier to work with. There's definitely, it can go wrong and that won't be the case but then look at best practices, figure out what other people are doing, how it's working for them. There's lots of great articles about ways of working with build tools. And then another thing that I really like about build tools is they can help bridge gaps in between different skill levels. So what I mean by that is a clean example are SaaS mix-ins. So you can have your front end dev that's like your lead, right, a really good mix-in for maybe a complicated little thing that you have to know all these arcane terrible IE8 things in order to get to work right in every browser and they got it right, they tested the crap out of it. And then another developer who might be junior or might be new to the project can use that and it'll just work and it's tested and when they build new feature B, it's gonna look great because they've already been able to handle that before. Another great thing about build tools is they automate tasks.  Computers on the other hand, really good at them, which is nice. So things like linting, repetitive command line tasks, minification, compiling, browser prefixing. My command R, Twitch, is going away slowly but surely. So you can do all these kinds of wonderful things and to do all this, you generally are using a task runner. So task runner will perform a certain set of things and it'll just kind of write down and use you this, that and the other thing and then you'll set up a trigger which is either I'm gonna type this into the command line or I'm gonna save a file and then you need to do all this junk. Another great thing about task runners is you can set up different types of task chains. So you could have one for different environments, local versus test versus production or you could have different ones for different type of developers. So your front end person would be really concerned with you know, SaaS linting or little different compiling things and they might want things to run a certain way whereas your backend developer doesn't care about any of that and they just want the site to not look broken because there's no CSS. So you might have something a lot quicker for them that they only have to run a couple of times. So a common front end task chain might look like this. Compile my code, let's say we're using SaaS or whatever it is, auto prefix it. So if you haven't heard of auto prefix there's a popular one. It'll query the last three major versions of browsers, figure out if you need Mose or WebKit or whatever kind of obscure little fix in there. Minify, so it's really nice and small, save the end product in the right location and then reload my browser. And all that happens within three seconds and that feeling is better than drugs. It is so good. I can't even explain it. So not all sunshine and flowers, there are some drawbacks to using them, there are some like gotchas. So caution all you who enter. If you're new to build tools, there's a learning curve. It is not quite as bad as the Drupal learning curve but it is definitely there and bumps and bruises will happen. Getting your first setup will come up with Bumside, guarantee it. The documentation for some of them isn't great but what is great is they're getting really popular and a lot of people are writing really good and getting started articles and there's a lot of really good stuff out there. So definitely look for that kind of stuff. General warnings, so if you use them for a long time you might run into some of this stuff. There will be some maintenance cost. The goal is that the benefit you get out of using these things is way better than the time you spend like making sure it's running the way you want it to run. So things that might come up are long load times or long compile times or you might have a new tool you wanna use because you have a new feature set or something that came down and you found a really nice build tool to help you address that problem. Don't over engineer. So that's always a risk with development but if you start using build tools that temptation is palpable. So just wanting to use the latest and greatest tool or get that compiled dime down just like a couple more seconds or like a half second. Beware long build times. That's definitely can cause a lot of frustration with developers. We had one compile time on a project I was on recently where it was up to a minute for some people and it's based on CPU time and whatever else kind of other things but you're usually able to address that. We got it down to 10 seconds for them and it only took an afternoon of someone's time. So it's not like you're stuck with that. Front end build tools. They're still pretty young. So there is some change that's still happening but it has calmed down and it is starting, we're starting to find like lots of cool workflows that people tend to use. So it's not turbulence but if I was getting started I would wanna know that yeah it is still kind of changing sometimes. Another thing that people may not think about all the time is that build tools can increase developer specialization meaning if you have a lot of cool tools that you're using like SAS and Copscript and all these things it might be harder for a backend developer to swing in and help out with a front end task real quick. They might not be familiar with everything that you're using. So how do I decide whether or not I should be using build tools? For me it kind of breaks down into project and code size for the most part. For small teams especially if you've never done it the setup can be prohibitive depending on how big the project is. If it's really small, it's like one page or something and I probably won't bother. It can hamper the cross functional team members so if you have, if it's you and a buddy and you're working on a site for someone and they're more back endy and let's say they don't know SAS or they're not as comfortable with build tools but they can help you with vanilla CSS I might just leave out some of that stuff or maybe all of it. If you have, but if you have a common set of problems and you have someone that you work with a lot you can get like a basic go to set of build tools that you use that solve your common problems and help you get started up quicker. So it's not always a yes or no situation. Or it's not always a no situation. So on larger teams project and projects I think it's easier to sell. They build tools really help build for scale. They really help if there's a lot of people contributing to one code base. And if you have a large team and you're probably gonna have a large code base too that any kind of efficiency you can get there is very helpful. Another thing is on a larger team you can probably have a point person that knows what happened if the build tool isn't working as well as should or someone's having problems getting started and that kind of thing. You'll usually have someone that can focus on that. And then again, word of warning. On bigger teams sometimes you can lose sight of whether or not these things are adding value. So you wanna come back and revisit that and make sure it's making it easier to work on and not being more frustrating. Watch for the long build times. Bigger code base can mean bigger load times but or bigger compile times. But like I said, that is something that can totally be addressed. Requiring a lot of command line knowledge can be a little tricky. Maybe some people who are new to front end or maybe new to the project that might be a little difficult for them but if you document, document, document how to get started, what your life is gonna be like now that you're working with these build tools, like how might you work a little differently? If you're writing that stuff down in a read me or whatever, it's going to make it a lot easier and cut down on some of these negatives. So are there large projects that I wouldn't use build tools on? I could think of one rather big one. One that we're all here for? Drupal. If I could control core for a day, I would not put in my favorite build tools. Build tools make a system opinionated about how you're working with them. It's not really the point of Drupal to say this is exactly how I want you to write your CSS that needs to be in SAS and then we're gonna use auto-prefixer and it's gonna work like this. So a little more realistically, let's say you're working on a large project and you might not know who's gonna maintain it down the road or it's gonna have to be used by so many different types of people that having build tools in it might be very prohibitive for them. So having that kind of judgment of whether or not it's gonna be valuable for who ends up having to use it is really where I kind of make that line. And yeah, another thing you can potentially do is if it's a big project and you really want to have the benefit of working with build tools, there is sometimes the option of being able to strip them out when you ship it so that the final deliverable is really nice, well-organized CSS but on the back end you're using SAS or whatever it is that you were using. So yeah, and with that, Lady Sally Young. Hi, so welcome to the package manager section of the talk. I'm gonna show you a problem that I come across quite often and it's this. So I start on a project, I open up the theme or whatever app I'm working on and suddenly I see a pile of JavaScript and that's great, I'm sure it's all working and I open up something that I need to debug. So some of the things that, one thing I need to debug is this minified JavaScript here. Well, firstly, I don't have the unminified version so that makes life really difficult. There's no meta information attached to it so I don't know where this JavaScript came from. I don't know if it has any dependencies or if something depends on this. I don't know what version we're using right now. I also don't know if anything else came with this JavaScript with any CSS required for this to do what it does. So this is something that package managers can solve really well for us and this is where we get slightly less abstract because it turns out you don't have too many choices on the front end for package management. So any kind of external dependencies, any kind of external dependencies that you wanna pull in so loadash or modernizer for JavaScript or Susie Grids for CSS, you can do that with NPM or Bower. They're the two main front end package managers that we use. You have probably already used a package manager in other aspects of using computers. If you've ever used Debian and done App Get or Yum on Red Hat, then you've used a package manager. It went off, it found the software that you needed, figured out all the dependencies for you, brought it all in and bam, there's your software. If you use Drupal 8, then it comes with Composer which is PHP's package manager. That's how we pull in all the third party symphony components. We're now able to keep track of all the versions. We know where everything came from. If there's a problem with that component, we can go back upstream and make the changes up there. So I'm gonna talk about NPM to start with. That's no JS's package manager. It has a really simple configuration file. It's a JSON file and there's not much to it. It just lists out the short names of everything that's in our project. So now if I wanted to look up Cheerio, I could go on npm.org. It'll give me a whole big description about it. It'll take me to the GitHub issue queue if I need. I know what version is there. I can see any dependencies that it might have as well. There's other things you can do with this file as well. You can split out dependencies that you might only want when you're doing development. So maybe I need some kind of packages to help with my build tools or I can just have any kind of dependencies I need for my front end. One common misconception about this is that you have to be using no JS in your project for this to actually be useful and you don't have to at all. You really, really don't need no JS to be able to take advantage as long as you're using any kind of JavaScript or I think you can even get CSS frameworks and other things through this as well. You can pull it in through NPM and even though NPM is the biggest repository of packages on the internet now I think, you don't necessarily have to use NPM parts on this. You can put GitHub short names in. You can point it to tags and do all kinds of stuff. So it's very flexible. If you have any private repositories, you can manage it through that as well. The other option is Bower. Guess what its JSON file looks like? Pretty much the same. So why would you want to use NPM over Bower or the other way around? They're slightly different in that their dependency structure is not the same. So for NPM, it's a nested dependency structure whereas Bower is specifically made for front-end dependencies. So that's flat. What does that mean? So when we bring in a package, you'll see this big node modules folder there.  So if we look at Cheerio, we can see underneath there it has its own node modules folder. And underneath there, you can see that we had a dependency on CSS select and under there CSS select had a bunch of dependencies there like CSS what and DOM utils. So this is something you really have to watch out for because it can get very turtles all the way down if you're not careful. But one advantage of that is you can be pretty sure that nothing's gonna go wrong because you have the exact versions of everything you need. Bower on the other hand, if I download two modules and they both require jQuery because it only has a flat structure, it's only gonna pull in jQuery once at the top and both my modules can point to that. So why would you want to use one over the other? I tend to use NPM if I'm writing JavaScript modules, you can use the require function in that to pull them in as well, which is great. So you can package up all your JavaScript modules with Browserify or Webpack, just use it, that's great. It doesn't tend to come out too big. NPM also has what's called a Djupe command and it will attempt to take all these dependencies that are common and push them up to the top. It's mostly effective, not always. Whereas Bower, you might wanna use that more for bringing in polyfills, things that are just gonna globally sit on your page. So you can use them both. What are the downsides? Well, now you've added all these external dependencies instead of having to check your JavaScript into your repository. I experienced this recently. Many of you probably did when GitHub was being hacked by, well, DDoft, sorry, by Chinese people. It all went down and every time I was trying to compile my project, I went off to NPM to get the packages and it just kept timing out. So I couldn't do any deployments, which was very irritating. But my project itself was hosted on GitHub. So I kind of would have had the problem had I not used NPM anyway. But that was definitely something you need to weigh up. So moving on to everyone's favorite subject, which is testing. I split up front-end testing into three areas. Visual testing, including regression testing, is probably the hardest of all of them to set up. And the reason for that is that setting up each application that you work on, they're gonna be very different. So say we were working on a Drupal project, it's gonna have all its build tools, whatever we're using in the front-end. So say Wes comes along and makes a pull request, he changes some CSS. So okay, we wanna do some visual testing on that. We're gonna have to spin up a new version of Drupal, apply the new code, figure out what pages we wanna take screenshots of and everything. So there's no one recipe for that. It's quite difficult, but it can be very useful, especially if you're doing any kind of cross-browser stuff. We can kind of hit that all in one go, see what it all looks like. And if you're not using a strict component-based architecture, if things have got a little bit spaghetti and cross-over-y, then that's really, really useful as well. Like you made some CSS changes in one place, and it made some kind of effect somewhere else that you weren't really expecting. And this sort of stuff is really good for catching that. It might not be great to even set up regression testing until you're kind of towards the end of your main dev effort because everything's gonna be changing really, really rapidly.  Like, yeah, I know. So that's kind of good towards the end of a lifecycle. And then as things start to kind of move a bit slower, very useful. The next type is unit testing. You might have seen or done some of that in Drupal 8 in particular with PHP unit. We can do unit testing in JavaScript as well. So we're actually checking that the logic of what we're writing, like typically JavaScript, actually does what we want it to do. With that, we're not testing any kind of services. We're just making sure that the code we've written is solid. And if we make any changes elsewhere, we're not gonna have broken the logic for other things that we've done. There's a bunch of different stuff you can use for unit testing. If you're using any kind of JavaScript framework, usually there'll be some kind of popular testing thing that goes with it. Use your Google Foo for that one. The easiest kind of testing you can set up, and for me has been the most useful though, is code sniffing and linting. And it's fantastic because it can save you so much time. You'd be surprised, like, I do it all the time. I put little areas in my JavaScript. I forget to do it. You can just pull that up straight away. So it really improves your code quality quite rapidly. It will also help you enforce coding standards across a project. So you can make sure that everyone uses camel case, which is very useful. You can also check for any performance problems that might arise or any kind of misuse of JavaScript variables. Always really good stuff to look out for. Super easy to set up. One thing to watch out for though is that you really need to keep an eye on false positives. Tests are not like humans. You know, they have a very set way of doing, they're set pattern of doing things. So for example, say we're using a database module, we've decided that our variables are always going to be camel case, but to use this database object that we've loaded in, it requires some kind of snake case. Well, now our lint is going to fail. That's what we do. Do we just let it fail or are we going to have to go and change the external library? It's not really possible. So most linters will actually let you turn that stuff off line by line. So that's pretty good. Also, don't always assume that the tests you've written are the be all and end all and everything is right. I've seen situations where a test has failed and in order to fix it, it threw up a performance error and actually the fix made performance even worse. So in that case, we need to go back and we need to fix the test. So you always need to keep an eye on stuff like that. And the thing that will stop that happening is that you have a really good peer review system in place. So you're never going to be able to replace humans. Humans are great. They can figure out all kinds of things that are wrong with your code. So make sure everyone's checking your stuff. And with that, I'm going to pass you back to Wes to talk about frameworks. Hooray. All right, front end frameworks. So we're talking Bootstrap, Susie Grids, Yeti Foundation, this kind of stuff. So why might I pull in one of these guys? Benefits. So a lot of testing, grunt work, coding already done for you. Also documentation done. And usually it's beautiful documentation, which is great. A lot of support, either official support or it's all over Stack Exchange or whatever, you'll just pull it up with Google and you can figure out what other problems people are having that might help you out. Those are almost always built to help devs of varying front end dev skill levels accomplish good interfaces. So if you have a project that doesn't necessarily have a bunch of front end rock stars on it, it might actually help you out. And then one benefit is that some front end architecture decisions are already made for you. So you can kind of just kind of go with what they've already been doing. They've documented it well, almost always. So you can just kind of go with the flow with that. Downsides, the more you deviate from the design that they have, the harder it's going to be to maintain. If you can find one that's exactly what you want, good for you, maybe you should use that. But if it's very different from what you want and you want to be able to tweak things, that's gonna hurt. Code bloat can be an issue. That is one of the popular downsides of this and the one thing I would say about that is it assumes that you would be good at not making code bloat anyway. So if you're not full of front end rock stars, it might actually be better to use this. Specificity wars, those will happen, especially if you start deviating, you're gonna start having to write really weird selectors and making sure that your CSS wins out over theirs because editing the base code will make it even more of a headache because now you can't upgrade or update whenever something new comes out. And then downside, a lot of front end architecture decisions are made for you and that's also a downside because if they don't work for you, it's kind of tough luck. You literally have to go with the flow at that point. So when might I adopt one of these frameworks? So it is pragmatism over idealism in some respects because one of these architectures are really hard to build on your own and if you're building for scale and you might have crunches in team abilities or time or you can't QA something that has to be so large, this can kind of cut some of that out. There is a lot of testing already done on these things. A lot of people are using them.  This can come in handy. And then supporting a lot of devs that may or may not be front end savvy is a lot easier. They can go and see that if I wanna make a component it looks like this that is this kind of content. My application needs to spit out this kind of markup in classes and I put my content here, here and here. So it can be pretty useful. I will say that if you do have a lot of front end rock stars and you do have the time, I don't recommend this. But that is not always the case. It is not always that perfect world. So the too long did not listen portion of our presentation. Some kind of plan is better than no plan at all. Build tools are good probably. Package managers, yes please, those are awesome. Testing is good but people are good too. The robot revolution is not here yet. Frameworks, use at your own risk. So with that, you can ask one of us lovely people any question you want. There is a microphone right there or I will repeat your question into this microphone and hopefully someone has a really awesome answer. I saw one guy back there for sure. I mostly use Bower for doing polyfills. So if I didn't have to do that I probably wouldn't use Bower at all. Oh sorry, the question was do you foresee a time where you would just use NPM instead of Bower? There are projects I could work on that I wouldn't need to use Bower at all. Some I wouldn't need to use NPM at all. So it depends what you're doing. You definitely don't have to use both. Thomas Laddermore who I totally don't know at all. So the question was how does browser if I play into NPM and all the package manager goodness? That's a question. So if you haven't used browser if I before what browser if I can do when you're writing JavaScript well no JS even you can do VAR whatever equals require and then you can pull in a module that you've downloaded through NPM. And then what browser if I will do is go through all of your JavaScript modules. It figures out all the dependencies and then it will add them into one big bundled JavaScript file. And so it lets you write your client-side JavaScript as if it were on the server which is really great and you can then run it in both places which is pretty awesome. Yeah I use that word. Yeah so you wouldn't, browser if I doesn't really work with Bower I'd say. Is there a way of automating it do you mean? Or yeah I'm not really, can you repeat the question I'm not? I think the question was something like is there a way of automating testing that makes it easier for users to be able to test your things? Yeah if you can for every code change you make if you can make some kind of automated environment that spins up and so they can someone who's like a product owner for example they're not gonna be able to pull in your branch and then like pull all the code in and test it. So if you can automatically spin up those environments which you kind of need to do if you were doing any kind of visual testing then they can just go in and click a button and like oh hey the navigation changed to green that's exactly what I wanted to do. So yeah you can. Yeah very little but have we done anything with PhantomJS visual regression testing? The answer was yeah a little bit. I actually played around with Wraith a little bit which I think is built on top of PhantomJS but the last time that I used Phantom it was a bit broken in that it could only really work in one browser at the time I don't remember I think it was Chrome. Okay session on it tomorrow at 2.30 if you'd like to know more. Nice. It was good. That's a different talk. Yeah so which build tool should we use and why? So there are advantages to different build tools and there's holy wars on the internet right about that. Yeah no I'm a grunt guy I'll say that but in this talk I didn't want to say like you should use this one because I like it a lot. So I just wanted to say like okay why would I use one of these things what is it even going to do for me? So yeah that's my answer. I use grunt. Grunt. Yeah we're grunt people. Yeah. Yeah it's a gulp. Okay so this is quite a common thing that people think grunt can't do and it definitely can do things asynchronously. I think there's a grunt concurrent plugin and that's one thing I really like about grunt is the ecosystem for it is huge so if you can think of something there's probably some kind of plugin for it that does it. Yeah. So the question was once you've pulled in all these things with package managers how do you pull them into whatever you're doing in Drupal? And it depends how you're using those packages so like the question earlier about browserify. If we were pulling things in with NPM to do it that way then browserify would take care of it for us. You can just put them into your info file manually if you like the file names won't change so when you update stuff with NPM or Bower it's still gonna work. There's a grunt plugin you can use called WireDep and if you look at the, there's a starter theme on the Lollabot GitHub called Windup and if you go in there there's a little script you can run and it will wire up all your dependencies for you and put it in the info file which is kind of cool. I think we're out of time now so thank you.


All right, several traders welcome on back here at top of the month, perhaps all of us here live joining us this Thursday, June 1st, shortly after 2.30 p.m. Eastern time. Great to have Joy still with us here, Elizabeth still with us here, the bell with us here, the ladies at the trading room in fact cleaning up actually right now on the Carvana trade. We had Elizabeth just before in Tesla and maybe something to come down the line for Joyce on the U-car coming up here, UCAR. That's been such a big move already. Great to see the ladies of course. Great to see Roger. I want to give Roger one of our longtime students a huge shout out. Listen folks, you see some people post regularly inside our live trading room. Everyone here does pretty well for the most part. Some do pretty well consistently. I want to give one of my students a big shout out here to begin this meeting. Roger, one of our Platinum students, he has killed it today. I want to say it's his best day ever without disclosing the number. I'd asked him just though before. I'd said, hey, Roger, what's given you the ability to do so well, not just today actually, today being his best day ever, he's actually had such a really good week. I think the last four trading days, he has up X number of dollars. It's been incredible to him. I said, what's been the difference really aside from the market just being up? He wrote back to me, he said patience and trading a thousand shares. I'd asked him, hey, is this the first time you're consistently doing the thousand because I hate to do this four days in a row before today even. That should be an enormous confidence boost to continue to do the 1,000 shares. It's not like a one-off thing. He wrote back to me. He said, yes, show no fear and be patient.  He said, which I would agree. He said this, which I like to wrap up. He said, don't chase every squirrel you see out of the corner of your eye. Stay focused. Big shout out to Roger here today and all of us that perhaps they did pretty well. Each and every day we have a couple of us that happen to hit the balls better than others. The more you're with us here, perhaps it just all avalanches all together and it's been doing that for Roger's been doing that really for the last few days. So big ups to him. Now AI, definitely nice move so far into the afternoon off support. This was incredible from earnings this morning. I mean, it's a level five stock. So it's not easy. In fact, right now it's shaking back down. About to take me out on a small loss live right now under 3460. So there we go. I was in right from above 60. So you got to set a tight stop there. There we go live. But nevertheless, though, stock ended up bouncing perfectly off of support off of $30 and 80 cents. This is what we were kind of screaming about in the market open session just here inside the trading room. Now at that, we have the phase three stock course lined up coming up at 305 Eastern time of Fausto. So stay tuned for that. The link for that should be posted coming up momentarily in the chat. There we go, Rich. Appreciate you there. 3080. Huge iceberg going into the market open for this trade to get the exact number of shares. Let me actually do that there. It was about 3940,000 shares roughly sitting on the bid. It was there before the meeting started there in pre-market there for about 45 or so minutes. So you got to figure it's there for a reason and it didn't drop all the way down to the next level at 30. It broke under it, broke back over it. And once it broke back through that level on the way up, ended up leading to a phenomenal entry. So from there, we're not necessarily expecting the perfect squeeze all the way back up to 40, let alone 37 where it had topped off at. It's good to take the money and run in parts and if it gives you the chance to jump back in, then perhaps you do it. If it's too fast afterwards and you find that it's just a little too chaotic, then move on to another trade. A bunch of us were trading this, but otherwise, if you weren't focused on AI, you could have been focused on PLTR, which trades with it in the morning. At least it did. And Palantir definitely showing a lot more weakness now compared to C3. But heading into the afternoon right now with this little shake, I was hoping to see a good direction right now. So we'll come back to it, the AI Trid. PLTR, Palantir, just to go back on that once more. That one also just a good sideless stock. I was short on that heading into the early to mid-afternoon and got out of a trade, but left a little money on the table. So hopefully that short may continue heading into the afternoon there. So we'll come back to them if we need to at the end. Now, the stock that really Fausto killed it on in the morning class at least, and then just now or just before it actually made a new pop a moment ago. Let's see, can I go back this year? What happened to my charts? Got to link back to my, oh, that's just makes sense there. Alright, so the UCAR, UCAR ended up having a huge pop in the market had opened up, actually go right to our YouTube channel right now and subscribe while you're at it as well. But we ended up posting a video a little snippet of our advanced trading class Fausto in and out of this UCAR trade as it ended up popping got halted. And then from there, you know, another stock much like the much like the other one there. It's just good to leave money on the table. You're not going to be perfect with the exit. As long as we are as good as possible in the entry, it gives us the best chance as possible to go at the momentum set or stops in case if it was the other way. So it was a quick in and out from Fausto and hey, it broke out higher later on. You know, we don't advocate to be trading during lunchtime. But if you know where your levels are, and if you know how to set a tight stop, and you're here, it gives you the chance.  Bell was one of them. Thought Elizabeth was one of them perhaps as well, you know, just a bunch of us did well on this John from earlier. So yeah, right now, it's actually trying to push back up here. I think one of our students was asking about it prior to this meeting beginning about maybe at like two o'clock, I think maybe like 220 actually was. And I said, you know, it's making the lower highs at the time. If unless it pops back up during this PM meeting coming up, I would just say move away. Alright, well, let's pop back up a little bit. And you know, hey, I don't mind taking it from a higher price if there's more conviction. So it's shown a little bit more movement backup for right now. You know, I'll put this on our main list to begin. I'll do that at least if it ends up completely head faking slamming right back down as we continue. Obviously, I'll just scrap it. But for right now, it makes the cut nice move back up. And who is that that ad s Joyce I think before. Yeah, so no, there could be more room on this if it ends up flipping 10 into support another pop over 10. That's a flip into support. Alright, so what also got here are you and looks like a buyout. I don't really care to even check. It's just too flat for my liking there. We'll move on. WLDS nice pop from earlier this morning actually really from like last week, we said like the stock is definitely starting to earn our trust and respect. So long as it doesn't, you know, obviously drop off day over day, we'll keep a small eye on it and, you know, big pop in pre market this morning, which led us to put it on the morning watch list early on or the pre market list and led to a good shake ended up going under and over from two good for about 35 nearly 40 cents. So for a $2 stock, I'd say that's a pretty big move from $2 here. But like the other one, definitely too flat right now for my liking. Alright, this is not too flat for my liking but too thin for my liking nice little pop on TYGO but trading too little volume. I don't know if it's halted but order book is just nothing really showing there. So let's see what else we got. LE got the Carvana trade, which you know, again, we talked about kind of previously here at least mentioning it ended up making a huge squeeze up from earlier today. Another one that was easy to leave money on a table and you're able to jump in and out of throughout the day. I mean, hey, let me just ask all of us here like Roger included who killed it before and Phil actually the other day on AI I thought I saw Phil get like over $5 a share on his trade. So actually big shout out to Phil as well for all of our students on stock breaks above resistance and runs off of it. Resistance should initially look to become what? Support. So I actually missed it off of 15 here because I thought support would break well off of 1535 ended up making a big breakout above resistance and it was more so heading into like the mid afternoon here we're focused around this break of resistance I got back to my desk and that up running to a small errands just you know what it just stepped away from my desk got back and I mean this was just still going so I missed out on a big move from earlier and I said if this could end up a re breaking resistance I'm trying to set it at 1620 it's not letting me there we go but ended up popping ended up flipping that into support right here. Thankfully it allowed us to survive this pop here at the time and you know ended up squeezing up that much more so just another trade it goes to show if you just apply the core philosophies that we preach even beginning in phase one stock class obviously Fausto will show it later on. It's just that every trade begins with the entry so we can't chase a stack I'm not going to just jump in in between levels especially during this time the day but you know if I just apply the core philosophies then set my stop tight it gives me the opportunity right. All right well I missed out on some of this trade but it was able to get a small piece of the pie right and that's what we care about in this sense here so ended up moving up towards 1665 ended up scaling out around there popped up a little bit more but look at it now so definitely done with this trade at least for the time being it's still a big and perhaps if it could build up off of 16 coming up then it could lead to the next move so you know what I'll add this to our main list still it looks pretty interesting heading into three o'clock three fifteen three thirty so yeah we'll see what this could do here QBTS stock ended up popping earlier today but very rugged right now not really looking too good there chewy a little expensive from the morning session but you could say the same on AI so it's just that this one now isn't really looking too good you know maybe a possible short off of thirty seven just in hindsight there G said this thing's been pretty choppy just inside first called it out heading into the mid afternoon I did I did miss out on a good portion of this run already personally another stock that really from like you know a week ago two weeks back that when it first pops you just don't really trust it at first I mean hey there's nothing really special about the stock that leads me to say it's a good trade to watch going forward but if it maintained its liquidity then that's different and it did so it ended up having a couple down days in between didn't really call it out then but it doesn't have terrible volume on the book it has a tiny spread you know unless it opens up badly coming up that's different but I'd say it's a decent stock heading into the afternoon for right now so GSIT will add back on our watch list here broke above the highs from earlier this week in the end of last week even looks like a huge outstove flag looking at the tops here that's pretty cool so even if it fails to make that big pop today just be on the lookout for this break above the highs off of like seven thirty really strong top there alright so we got three so far on our main list not not bad PSTG this one popped up earlier and actually rebroke heading into the early afternoon so doesn't look terrible write it down for the side list PSTG KC China stock ended up making a pretty good move from the morning session today but little lack luster right now no it's not it's kind of at the highs it's dipping off a little bit now so you could say that there but you know maybe later on if nothing else is looking as good a EHR this just has a bit of a spread I know it's trying to go back up right now the stock actually be traded when it was breaking all time highs maybe a year or two ago even had to have been last year yeah no no it was actually here we ended up trading this is back in 21 even so yeah ended up breaking all time highs back then and then rebroke them heading into 23 and still pushing up really nicely whatever company this is a EHR test systems but yeah right now if it was more liquid I would definitely be interested in it but I'll pass for right now. Tal TAL having a sneaky day looks like the China markets ended up doing pretty nicely all together and not just KC trade but TAL maybe look at a stock like IQ I don't know I'm just shooting from the hip there I don't think Neo did too well today I think Neo was down big at one point oh well I'll tell you what Neo did make a hell of a retracement I took my eyes off this early I thought it was down really big in pre-market but you know what otherwise I mean unless there's anything looking very sharp on the way up I'm not going to be too interested let's just kind of keep it to what we got so far and seeing if there's anything else otherwise upstart I mean for as volatile as the stock has been over the last couple weeks dating back to their earnings report this is another trade that it could have been a really nice runner across the day today you're just more focused on AI rightfully so you car rightfully so Caravana hey can't catch them all but really nice move on upstart definitely keep this on your side list like saying here in the chatboard draft king is up on the day take a look take a look yeah it's up it's a little slow though for right now lower high but it's at the highs there if you're in from earlier always rune on just want a faster looking trade though on a faster mover there something worth our time alright let's see if there's anything worth our time maybe although the markets are up up in a way let's see if there's anything looking good on a loser's list here and I'll tell you what I didn't even care to check the loser's list right now and we're up until right now even so whatever this DZSI is actually it's a really nice short I don't know if this breaking all-time lows even that would make it even better then at all time lows but still fun enough I mean it is shortable in trade station dropping back down right now so you know what I'll kind of put it on the side list will jump back to the AI trade at the end I feel like that's making a nice pop right now so we'll check in with that before we finish up MDU has better liquidity than the other one or tighter spread maybe I could say similar trend down right a little more expensive but that I'm not complaining about it's nineteen twenty dollars stock so you know not it's like within my price range so it's good just for right now though I don't really have a great need to like look for a short and less of it I don't know I mean this looks good but maybe I kind of slip that on at least if anything but we'll see if there's anything just looking better as a short otherwise we'll just kind of call it hard to go against the green today right and there's no need to so you know what the list that we got I'm pretty happy we got a couple check back in with at the ends yeah nothing else really looking that great out there so you know what MDU I'll slip on there is a possible short spreads good it's at the lows like saying Peloton sought from the side list this one I like a little a little bit more Mike in terms of price in terms of the pace right a little bit more bank of the buck here on Peloton compared to Drafting yeah I'll slip Peloton on there you sold me all right so we got Peloton on our list there not bad for Mike and we'll see if there's anything else looking good from all of us in social media you know anyone on Facebook Live LinkedIn Twitter YouTube Assessor let me know if there's anything else that you want me to look at I got AI making a big pop big blast above 35 right now so hopefully there's time for me to jump back in on this trade coming up really strong push above 35 here I'll add this back on our list that's for sure PLTR not looking really good at all pass on that PSTG just looking pretty lackluster even though it had a great day just pass on it and I feel like that's all I got from my side list right I'm just checking on Benzinga pro and that's pretty much it all right so what do you what do we got here next that crap out there we go you got TYGO I mean we talked about that before let me change my volume criteria here yeah nothing really sticking out too much maybe check back in on QSG this MEGL we've traded in the past yeah none of these looking good folks right at the bottom of the barrel here so for all of us on YouTube make sure that you are subscribed to youtube.com forward slash cyber trading you if you're not on YouTube now certainly go there and subscribe because tomorrow we're raffling off a free one month of our live trading room again you could be a student and you could win so for Michael, Sam, Grant, John, Elizabeth, Roger, all of us here if you go to our YouTube channel before tomorrow morning and just hit the subscribe button you as well have a chance to win a one month just addition to our live trading room so we'll tack it on to your membership effectively right but otherwise just for all of us here inside the live trading room make sure that you click the link to join the phase three stock course class lined up at 305 eastern time Fausto trading uh Fausto's live trading going into the market close I'll be on a couple of coaching calls all the way through myself until the closing bell which means I'll be in the chat board up until 4 p.m. you got Rich on the mic here just beginning at 3 p.m. and then for all of us on social just um hey aside from subscribing if you have any questions feel free to shoot me over a quick email josh at cttrading.com is the handle I would like to post that here at the end of these streams but otherwise we'll catch back with everyone tomorrow morning again just uh doing a new subscriber giveaway so you know just subscribe right to our YouTube channel and you have a chance to win one month with Roger Grant Kathleen, Leda, Ravina, myself and of course Fausto inside our live trading room all right folks but uh we'll be chatting away going into the close we'll talk to everybody coming up take care


Hi friends welcome back to my channel happy Friday. It is two days after Christmas and Boy, we have some catching up to do but first let's call out the elephant in the car Yes, there are sheets all over my seats in my car because diesel has a vet appointment today And Lola has a vet appointment today so we always put sheets over the seats in my car to try to Prevent a lot of hair from transferring into my car The joy of having a lab that sheds like crazy We have to take diesel to the vet because we found a couple of lumps on him Now we're assuming that these are just fatty lumps, but we want to be absolutely sure So we decided to go ahead and take him to the vet just to make sure that They're just fatty lumps and then Lola miss little Lola needs her nails cut So that is my plan after weight watchers this morning, but before I go in I want to talk with you guys just a couple minutes about the holiday. So I will preface this with the fact that I am not looking forward to weighing in today again I almost thought maybe I wouldn't weigh in today and just start fresh next week But after last week and talking with you guys and letting you know that I want to have a starting point For 2020's weigh-ins. I'm gonna go ahead and weigh in today against my better judgment because I had a great Christmas I had a great week of Christmas. I had tons of parties I ate tons of fabulous food had drinks all the things for the week of Christmas So it's not going to be pretty when I weigh in this morning, but I really truly do want a starting point for 2020 This is my last weigh-in of 2019 I cannot even believe that and I am very proud of myself for two reasons even though I know that when I get on the scale today, it's going to be dreadful I am proud of myself because yesterday not only did I go to Jazzercise. I also got back on track So I decided why wait till January 1st and I actually got back on track yesterday So I'm very proud of myself for those two things. So I guess that's a win in my book, but I'm dreading literally dreading the scale this morning So that being said, I'm gonna head into my workshop weigh in stay for the workshop And I'll be back to share all of the juicy details with you Hi friends, I'm out of my Workshop and it was such a great topic. I was pleasantly surprised honestly how many people were there today I didn't think we'd have as big of a turnout after the Christmas holiday because people don't want to come and weigh in after Christmas I felt the same way So there was quite a bit of a turnout and I thought the topic really was On point for this time of year and it is how to thrive During the holidays and it's a lot about self care and doing things for yourself throughout the holidays because That way a better version of yourself. You're a better version for your family So I'm going to talk to you guys about some of the tips that ww has on how to thrive this holiday season tip number one Is find time for activity This doesn't have to be going to the gym or in my case going to jazzer size or running a mile Find little bits of time that you can get a little bit of activity in for example park far out in the parking lot So you have to walk just a little bit further to go to your favorite store Any little bit of activity this time of year is going to help Counteract maybe some of the not so good food choices that we're making now If you can get to the gym or jazzer size or get in a good workout here and there during this busy time of year even Better so make sure that somehow day to day you're getting in that little bit of activity Take the stairs park far away Walk to your mailbox instead of picking up your mail when you're driving into your home for the day So just do little things to try to fit in just a little bit of exercise Now if you can get some activity and even better But schedule it schedule it with a family member who's in town visiting for the holidays Or maybe a friend that you haven't seen for a while schedule in a little bit of time to get in a good Solid workout take a walk with a friend take a jog with a friend Maybe hit up the gym for a class with some of your gym friends For me going to jazzer size is fabulous But it's even better when I get to go with my friends that I go to jazzer size with in fact today We were just mapping out our plan for the upcoming week and hitting up jazzer size So just schedule in a good workout at least once a week through the rest of the holiday season If you can get an even more even better, but by Combining that little bit of activity every day like walking in the parking lot or taking the stairs And getting in a good workout with family or friends Even better and you'll just see a little bit more success on the scale this holiday season In brace joe moe. Yes, my friends joe Moe stands for the joy of missing out embrace that RSVP say yes and go to the parties and the events that mean the most to you And send a thoughtful note to the ones that you're going to skip and I know for me We were invited to quite a few parties this holiday season And that's not stopping because we have new years coming and we do go to a party every new year's eve at my cousin's house But we're going to skip out on any other little parties and events that happen between now and new years It's okay not to go to every event that you're invited to Pick the ones that mean the most to you go to those and make sure that you thoughtfully Not attend the ones that aren't the most important to you And I think sending a little note or a text or whatever that says Thank you so much for the invite But we're going to have to pass because of this It's not a bad thing you're thanking them for the invite But you're skipping out on the events that are going to throw you off track And impact your weight loss journey and going to the ones that really mean the most to you So for the rest of this holiday season joe moe my friends joe moe Next is get ready with your friend for the next event that you have So the next holiday party say it's new year's eve find a friend get ready with them and have a good time you guys dance Jump around have fun getting ready turn on some music and dance as you get ready for that party You're going to get in that little extra bit of movement It's going to be fun And it's going to fill your heart and your soul with such good memories Before the actual event even starts And I find that when I turn on music when I'm getting ready for something or the tv or youtube And I'm just engrossed in what I'm doing and I'm enjoying getting ready It just makes it that much better and by throwing on a little bit of music and getting in a little bit of extra steps Again even better for success on the scale and again the next one take time for yourself We're so busy buying gifts and doing things for others throughout the holiday season We don't tend to take a lot of time for ourselves, which is a big mistake. We need self care We are a better version of ourselves for others when we take care of ourselves I know for me when I feel better about myself. I'm a happier person in general. I'm a better wife I'm a better friend. I'm a better realtor. I'm a better youtuber I'm better overall when I'm happy and content with myself So take 20 minutes a day for yourself whether that be a hot bath at night before bed Going to a yoga class working out reading your book before bed Or just sitting there and meditating in the morning take 20 minutes of time for yourself this holiday season because again, you'll be a better version of yourself Which makes you a better version for other people And the last one is a big one If you have family or friends in town if you have overnight guests even for a short period of time And especially for a large period of time take a break from each other Not only will you appreciate a little bit of a break they will appreciate it too. I promise take 30 minutes for yourself Take a nice hot shower or a long bath or get away for 30 minutes Whether they go in one room and you go in another or they go out on the town and you go out on the town Whatever it is take 30 minutes away from your overnight guests and give yourself a chance to reboot and recharge Not only will you appreciate it, but they will as well because Honestly, we get sick of people after we've been with them for a long period of time So if we take just that 30 minute recharge it really makes a difference in our relationships and interactions with our overnight guests So that was this week's topic. I love it. I love all the tips to take better care of yourself When then in turn you take better care of others So just remember during the holiday season when we're giving to everybody else Make sure you give a little bit back to yourself. It is so incredibly important So again way to hit the nail on the head So with the topic ending let's talk a little bit about my weigh-in as I shared with you before I went into my workshop I really enjoyed my holidays and you know what? I don't even regret a minute of it because I had a fan Tastic Christmas. I had a fantastic week leading up to Christmas I enjoyed the holiday events that I attended and it's over now And I feel a sense of relief that it's over All I have left is a new year's eve party and I can do that I'll save my weeklies for new year's eve and again back on track yesterday So there will be no treat day this week because I'm going to be saving my points that I earned today With a fresh set of weeklies to save for new year's eve. So I feel really good and recharged for the upcoming year I've set some goals and in fact my goal video will be coming out here shortly So you're going to hear all about my goals for 2020 I have an entire video where I share my top 10 goals And you guys I feel really good about it and I am extremely excited for 2020 It is going to be far better as far as weight loss goes for me than 2019 was and I'm I'm pumped I'm excited about it So with all the indulgence that happened over the last week or so And really not attending jazz or size until yesterday when I stepped on the scale. I am up 3.4 pounds So I did not end December maintaining. I'm actually up. I don't even know I'll put it here on the screen for you guys over a couple pounds for the month of december But you know what? I was thinking about it today and I was talking with someone at my workshop Before w w I would have gained 10 or 12 pounds during the holiday season from Thanksgiving through new year's easy could have gained 10 or 12 pounds So the fact that I'm up a couple of pounds is terrible But it's also Good in a sense because it's a couple of pounds not 10 or 12 And I can much easier take off two pounds than I can 10 or 12 So with that that was my weigh in I deserve every one of those 3.4 pounds But I'm excited for this next week and I'm really hoping when I step on the scale next week I have a great loss. It's basically a restart and a reboot for me But I'm not waiting till the first of the year I'm doing it right now because my health cannot wait till the first of the year and I have goals I have goals for 2020 and why not start those goals now So that was my weigh in that's my plan for this week. I'm excited to restart reboot I actually was talking to my girlfriend and we're going to go to jazz exercise in the morning So I am off and running already for the new year So I want to hear in the comments. How was your Christmas and how was your weigh in at I literally you guys don't feel bad if you gain because every single person at my workshop every Single one of them had a game. It may not have been very much But everyone had a game there wasn't one person that lost at my workshop So don't beat yourself up if you have a game give yourself a little grace and just remember It could have been a lot worse before you started on your ww journey So in the comments, I want to hear how your weigh in went. How was your Christmas? What are you most excited about for the new year? Leave me some comments so that we can talk and I can read your comments It gives me motivation and it makes me happy to hear that I'm not the only one in this same situation And of course, I want to hear what your goals are as well So thank you guys for watching Merry Christmas. Happy new year It is almost a new year a new decade and it is time for a new you a new us in 2020 If you're new to my channel, I'd love it if you take a moment and just hit that little subscribe button And that bell so you're notified whenever I upload a new video Thumbs up this one for a new you a new year and of course leave those comments down below And thank you guys so much for taking time out of your busy holiday season to watch my video And be part of my youtube friends and family. I love you guys. Happy new year Let's do this and I'll see you next time. Bye guys


Yeah, so what is this guy? And this is also a lot of possible training. True, we also have interests that we have to separate from these branches and also, of course, it's possible that interest can be directed. So it's not really directed. And as a workflow for development, so she can also be better. The storm must be high. If there are broken branches, they're going to be compromised and more dangerous are attracted to their own content. So also, of course, I prefer to accept the training system that is used to look at augmenting, compiling, recording, and track-sensing. In some cases, also augmenting the training. Yeah, of course. So I said, I don't think it's necessary because it tests platforms that have a very high amount of access to. Typically, people are also going to get a good start at recording in the next couple of windows and there are a few men. So our infrastructure will be the same. All those platforms are typically also going to be used to have an infrastructure much faster than most of the development sector in the central main building environment. And also, it's the advantage of being a uniform with infrastructure. So the developer has an open compiler and the village works for them. The developer doesn't need to also work with a different person that has a new approach when they compile the content. So if you're wanting to just treat it as an error, then it's not really fair. So having a standard system that is going to be on will show at least it's a normal stage where the infrastructure is created and everything is adjusted to the side effects. Because if you want to check out the model that they do, you don't have to have a good break and you just have to write it down or just have to find some other person to do something that would make it really good. Yeah, what you do use in the Neural Synology is a tool for it. And what we are using in the character is our patcher-view system. This is going to be a patcher-style submitting tool for the code to be used by the human, but also by the Jenkins SysDial infrastructure. There's a different phase that is typically used by the USB to set up the other components and the commands. But the commands that it uses may also use a command line and the things that it will do for the dynamic engine. It basically will grab the results that are executed by Jenkins. Jenkins is a system that basically will boost, requires a variant for what the changes are available when it's in the checked, and then has a schedule and system that just boosts the patchers to the different build nodes. And then, after that, we will try to set up the results, submit the script that has a load to the character. There's a plus or minus one load on the electrified components and potentially integrated in our branches via the testing electrified load and a plus two on the code for the code. The code was given out by the Jenkins. In addition to the Jenkins, it's got a lot of inner boxes and those don't go to the pictures but are built from the branch after everything that's been integrated into the branch. This can catch issues that are not to be seen by the patronization but might be because of the problems that have appeared on the patronization. And those inner boxes are also the machines that provide the interior lighting that is procurated to download and test. But what are the drawbacks or intentions in having such a system? This basically points all down to how long do you to wait until you have your results? And the B-Office is an upshare project and of course it takes a long time to build and some platforms are possible for others. For example, you're on Windows you can use cc-cache to accelerate your build and it will also come to the office actually all the apps are free from the standard optimization so we basically have our products made of our B-Office. Windows will also take typically 58 minutes and it's a similar build or it takes 2 hours in parallel and for Windows it takes more than 20 minutes and of course also for Mac you don't have to search for our hardware landscape so we have the slow mix and it's not a good platform that takes up to 3 or 4 hours so you don't forget if there are lots of changes in your build and you don't choose not to engage with hits from the cc-cache. And this is only a one-time equation of course the hardware is relatively despite having quite a reasonable amount of build costs for example F-24 which is making the F-4 Windows in one additional server office sponsored by PiPark that is also doing some things specifically in the biosec-cache. We have a bunch of products of which we have pros, fresh face guide ones and the other ones and of course we have a couple of linear machines but a lot of them are changing certifications like for example fresh pest ones or in-cuff coverage or something like that So the hardware of course is probably adjusted by the hands of thousands of machines that you have and you can just be able to coordinate those like which is also caused by people mostly in one time zone so there's a bit of a community distributed throughout the day so the spike in the European power supply to European light is going to be the key in the benefits but the biggest problem we have far of being random favourites that are not erected are related to a bench that was tested but to pass the problem was the vagueness of the test and the spoil so it's the poor development of the bench, nothing wrong but the train said no I don't approve the bench I give a minus on what we can integrate it and then of course the first part was about the touchback inside of an armored car that's exactly the problem in the test phase this is sometimes subordinate so what has to do with the situation first we try to touch the stones as they are called in Japanese and the touchstone is basically a type of stone the only touchstone that passes the other platforms this then of course is an artificial blade that's one first that passes the first then it can move through the slow system so it might take much longer to get it where you can find it of course this typically works well because the limits ones are usually used by developers developers typically also buy the products or they own some example that is an artificial blade so typically we come to see it then they break some of the limits that are usually also made because these are the platforms that don't have any access to them so it helped to improve the situation that we actually really harshly used but in the end it wasn't because it didn't really work for us then of course we had a simple thing we had a timeout for when it was stuck in a test for example but initially it was just about Jenkins it was an absolute timeout so we managed to save it for the slowest blade machine so the timeout was more than 4 hours timeout so it makes it take 3 hours for a regular blade and of course even if the track is a bit bigger it gets stuck it certainly needs to wait for the 3 hours timeout to be kept and maybe moved from another blade but this now has a change to basically to a test but despite looking at the mid-out there's no mid-out for 4 hours timeout for slow tests the timeout is out because there are no mid-out machine that's still a catch without the machine which was a simple thing that helped but of course one important service only helps in university what we have here is from the matrix project that was used before to the multi-drop to the matrix project that's been a way to trigger Blitz and Jenkins and here we will be making use of the refrigeration which is a moment for things that we have in the operating system and we have 10 versions I can install or 10 versions of the compiler or a couple of them but we are the new growth project for the test product so there's GCC-ATAM and MEG so we can really much use of it in the operating system and have some more functions for example this is the view you get for the project in this case also it's just a category and there's something to worry about but if you were in the operating system and wanted to see the model you would have to use first the configuration name and then we could have the configurations which was the mobile page so the client job project looks like this so we have more detailed information right at the front the image tag as well to also have a battery to hold in the dock in this case it's also a few bits so nothing to worry about and the hot job that's the biggest feature while we were in the operating system is the ability to resume that and resume means resume the one second thing so you see here that's also a trick option and this is also a matrix project this one is just really the only change which is more than the repair on all platforms even for the day so in some cases we have a patch to take windows which we won't use we will build the windows but this of course helps to the other the Chinese business freefall to the other customers and this is a change that I'm not sure of this creation but of course we need someone to actually look at the results and see what can be together since this is another automatic standard case and of course it's about the machine is about faster another thing that I introduced was a priority faster the machine is a higher priority and I prefer to be there who wants to take 2 or 3 hours more of it this is a special help for Mac the difference between a faster and faster process is the most important but windows has a different performance level and for me it's also a faster and for Mac it really makes a difference also I added a fast tracking priority for these branches and of course this is a more complicated for me it's an easy one because I don't have an interest so those are technically intercom for the good stuff from master machine and this also helps a bit to play back a good song in half an hour another thing a system that both do the work and perhaps while knowing the failure states and the preferences that are always the precise and the regular discussions and you can add your own management and it helps just to get the answer and just not to get the reason why it's not a big deal for example I think you can give it a some kind of type some kind of development particularly in Oslo where you can find a good distribution of attention not only about intercom but also both for itself and with this basically it's possible to act automatically twice since now and for example by the failure process what just was the connection to Jenkins and the boot for this case we can just start the alternative in the end not bother the developer for Jenkins and the boot for the invention and right now this is for the case where what was the connection this is for all systems and other two cases that are specific to Windows we have cases where maybe just cracks out with it instead of standing out it's basically a part where we can also to be asked to adjust the this happens to just start the boot if you try also some of that with related related to this so and this is of course also related to the boot or the cache this is mostly related to this is the problem we can have a lot of for example this is the results we see in those will take more than just no actually and also into how we can use our heart there and some more Windows quite much to the large face in the end in the start for instance where lots of threads just a single part and also quite a proportion so we have a lot to have approach to this thing and this was some of the parts some of the parts this was but thanks to this system we can just use the default to this and this is used on Windows and not only for the two different kinds there is a GCC and a clang that can run simultaneously but not GCC there is a lot to clang with because I didn't want to this space just to work with the cache it's better for the past to stay the same also because of our regular processes and sometimes on Windows checking the sign packs to actually do approach and they will have a process and make a subsequent save so we have a single hand that just will sign up so it's in the process and we just have to work it and one of those for most cases it's just using some bit of radiation to keep it working but this also to check out because it's still working because this is the final and of course for example for GCC our default because it's all built with that the status of all the consumers and this across the world we want to try once more to delete all of this so our default just checking before working on showing the overall status not much for us so for people who are actually planning to go for a trip with drugs also for those people and this is basically we send all of what still can be done with two friends this should by the hand be processing fast for example it should be for the next one we can make it possible to do the same so both can also just trace them and it will be just a part of the amount of the data so in this case the system recognises the sorry itself and to take it offline so all of these are actually just working more so that you that is waiting for the process that doesn't be able to product it basically by the end and then just taking all of them and doing some the same thing and it's very important for all in the long run so also we have a problem that can be worked on a lot of countries not only but it's because this process makes all the products and if one of those patches has a bit breaks then it's also very likely that all further products that have this one will parent also but now there's no system that will detect that this is a part of a series of patches that have one that fails it's a long failure so to try to do those this basically is a way to get the results from outside the Q4 other than that so this is something I would like to do and assign the patches here so all of that work is just getting huge for the other way the waiting line or just the stop processing to remain as serious all together and then the patches fix to not why it's possible to have the bit failure on the other side which I'll show you in the video bit result in the way Jenkins can actually search for what is necessary to want the past Jenkins for asking all the inputs where there's a compilation and you you can do it in the businesses that are outside then go and choose the failure result and as a comment it is included but this is a comfortable to use and the only work for this is to search for Jenkins for Jenkins for Jenkins for Jenkins is actually why this is a head forward I want to add this to the final and the error shot part for this time so I can't do this because it doesn't tell when the pitch is hard for the code so again it's a bit of a pitch out but the real code is based on the master branch of the command vehicle then you have a fresh field number and it will go basic so this makes it hard for the first time having a search which some statistics Jenkins won't make it this easy and of course it wasn't really expected Jenkins would be beautiful for the first time it wasn't in the business services to have the same sign on for the first time it makes more sense to have all the committers are complete so you can see when we have Jenkins and Simon and Jenkins and they can do this and it's an object that can be a pooch to receive this and of course you have to also know that this is not an infill but this is a vicious pattern you have to work on the trial system that controls the thinking and try to receive entry in the main order of the pitch but this is not going to happen it doesn't do anything if you actually want to receive it you have to go to the sideline to do that so this is some confusion so I think I can try to write it back to the master what we've got


Welcome to The Crimson Engine, my name is Rubidium. Today we are talking about the one quote that changed my filmmaking, but pretty much my life as well, forever. Before I came to the States 10 years ago, I was a TV commercial director in Australia. I was a director at Australia's most prestigious, probably largest, probably most awarded commercial production company called Exit Films. I did commercials for, say, government, for Nintendo, for Sony PlayStation, to name a few. And, you know, it was a pretty good living and a pretty good life for a 20-something year old. I thought it would be a path to the films that I wanted to make. And in a way, I guess it was. I'll talk about that in another video, but on the side, I also had my own production company that I do corporate work with, which actually made more money than the commercials. And, you know, the thing that they both shared was that there was a lot of dealing with clients. There was a lot of dealing with other people's ideas, other people's input, other people's money.  You know, some people, sometimes I felt very underappreciated. Sometimes I felt like their client didn't really know what he or she was talking about. Sometimes they're underpaid. Sometimes they really kind of kind of tried to crush your vision.  You know, I would give them the work that I thought they deserved.  I think a lot of us do that. I totally admit that I did a lot of jobs half-assed. I kind of did as little as I could get away with because I wanted to save my resources, my energy for the films that I wanted to make. And I think that's pretty common. And I actually think that was a big part of why I was so unsatisfied in that kind of field. One day I read a quote. It's actually a proverb that a job well done is its own reward. And it took me a few months to understand that. But, you know, it really came through for me that it didn't matter who the client was or what the job was, there's immense satisfaction in doing something well. Even if it is the crappiest corporate video in the history of the world, if you are putting your heart and soul into it, you can't lose because, you know, doing a job well nourishes something inside you. It uses all of you. Time disappears. You get into that wonderful flow state. Even if it's just digging a hole in the ground. Even if it's just a video for someone's Kickstarter for $200, right? If I've discovered that if I treated it as though it were, you know, my dream feature film project and did all the preparation I could and showed up and got nervous and tried everything I could. And then in the edit tried every possible combination I could to make it as good as it could be. I felt much more satisfied. Even if the client didn't like it, even if they didn't appreciate it, I felt like by doing my best at filmmaking, at anything, I got the most out of it. And I guess these YouTube videos are a great example in that when I started, you know, I was getting 50 views, 20 views, but I was still pushing myself to get the lighting as good as I could, get the set as good as I could to cut them as quickly and as well as I could to try and get a lot of content out there to try as many things as I thought would work. And as a result, you know, this channel has really blossomed for me. This channel has really gone in the direction that I wanted it to. And I found this wonderful audience of people who are really receptive to to what I want to make films about and what I want to say. I guess I discovered that making bad films makes you a bad filmmaker. Even if you think it's below your potential, even if you think that you could do better, but don't you lose that opportunity to really shine and really you lose that time. That time has gone forever. You didn't get to make the most from it. I wanted to share that and I also wanted to reiterate it for myself because I feel it's a lesson that's so easy to let slip. It's really, really critical that you give your most on the things that you do because only by doing that do you become better at it. Thanks very much for watching. I'd love to hear what quotes, what lessons changed your filmmaking in the same way and we can share that and learn from one another. Really appreciate the support you guys. Subscribe if you want more videos like this. Let me know in the comments what you think and I will see you next time.


My focus in this Yatra is point number one. We are not going to accept in India, which is divided hateful. We are not going to accept it. Neither is the Congress party going to accept it. Neither is the opposition going to accept it. Neither are the people of India going to accept it. Point number two, we are not going to accept in India where our youngsters cannot get employment. Point number three, we are not going to accept in India where the poor people are drowning in high prices. These ideas are interconnected. There is a link between the spreading of hatred by the BJP RSS, the concentration of capital by a chosen few and the gross unemployment that India is facing and the massive increase in prices that India is facing. These things are connected to each other. The hatred, the violence and the arrogance that is now visible in our country is not good for our country. This country has a tradition of humility, of non-violence, of compassion and that is actually the true India. This is my message and I am not going to get distracted from this message.