Okay, hope you had a good lunch, or at least you're not starving anymore. My name is John Albin Wilkins, and I'm known as John Albin, just about everywhere. I'm a senior front-end developer, I work for Previous Next now. That's a Drupal consulting company in Australia, and I live in Taiwan, and this is a picture of me in Taiwan with lemurs that are at a zoo. You know, they're not native there. But one of the things that I like to do is, of course, make free software, right? That's why we're here at Drupal, but I've also done ZenGrids. This is a SaaS system to allow you to easily build responsive layouts. Then there's a normalized CSS for SaaS and Compass. There's this async theme for Colquay, it's an IRC client from Mac. The SVN migrate does, if you have some legacy subversion repositories, convert them to Git. I had like a thousand subversion repositories lying around.  That's me. Hello. But I'm here today to talk about design components, but front-end development. I've been kind of crazy the last few years. It feels like there's a new thing every other week. There's Gulp, JS, there's Task Runners. We're starting to do a lot of DevOps in the front-end in order to automate our systems. Responsive design, of course, still relatively new. All these things, it's kind of crazy and it's hard to try to see where we're headed when we're just trying to figure out what the heck's going on right now, right? I usually like to start a lot of my sessions with this quote, are you new to front-end development? Here's a secret, no one else really knows what they're doing either. The good news is actually that it's gotten better. I feel like I'm starting to figure out what I'm actually doing. That's why I'm up here. I'm going to sort of give you a little bit of knowledge from what I've learned from being in the trenches. Because I've been able to feel like I've gotten a little bit of a handle of what's going on, I've started looking forward to make sure that we're not going about, hey, look at this cool new thing. It's called table-based layout. I don't want us to go down the wrong path. I started looking ahead and the thing that I see is basically web components. How many people here haven't heard of web components? Basically almost everybody has heard about it. There's a couple of really good, the CSS tricks one is a great article that describes what web components are. Then of course there's the actual spec. It's a very new spec. It's still being built.  Basically what web components are is the HTML spec authors got together and they're like, hey, you know what? Web developers, they really like these templating systems. We should implement something like that in HTML. What web components are basically is they've taken this idea of PHP and Twig, all of these things that are templating systems, mustache, all of these things and said, okay, how do we implement that at the HTML level? For example, you can do things like you can create your own tag that is called carousel. It would encapsulate all of the design and the markup within that one tag. You just use that one tag and then all of a sudden it presents all of the designs and configuration within it. Carousel. You're likely it's going to be like, oh, God, why do my client listen to me about carousel's tag? You can do something with web components. What can we learn from this? We have reusable and repeatable components and self-contained design. Within a single web component, the CSS that's specified there doesn't bleed outside it. It's just encapsulated right there. I feel like that's the major thing that we can actually do that now, but without the web component technology part and it'll make sure that we're moving in the direction of the new technology that's coming. Have we done things, how are we doing things, how have we done stuff in the past, and I include myself in this that haven't worked out for us on CSS. I think our biggest sin is CSS specificity wars. This is the only cat gift in the entire presentation, so don't worry. If you like cat gifts, I'm pretty sure Dave Reed is speaking sometime in this conference. What do I mean specifically?  You're styling this particular link inside your menu. You're like, okay, that looks great. This is my main navigation, perfect. Then you realize over the sidebar, I need a slightly different styling because it's a different design. I'll just write sidebar menu item may link, so it gets more and more specific and I'm having to undo styles from the previous rule in my sidebar. Then page 37, some manager decided it has to be different on that page. You keep writing more and more specific and you're having to override stuff and it just gets really messy. There are a couple of things wrong with here. One of the specificities is way too high and it gets out of control and it's because the order that our rule sets are in the actual style sheet matter. That's just bad. You can rewrite this in SAS like this and you're like, oh, this is better, less typing. The problem is all we've done is now we're auto-generating the same awful CSS that we were writing by hand before. SAS doesn't fix this by itself. It's a great tool, but this is not the way to fix this problem. Part of those overly specific rule sets and selectors are also overly generic class names and Drupal has these. I'm sorry to say that I think maybe this one came from the Zen theme title. It's everywhere, block title, node title, views title. If you want to apply a title styling, what does that mean? You have to specify the context in which it means something and this is just, this is crazy and then we have the same thing for content. Not kind of, I apologize for the title one. That's pretty much mine, but the content one, I don't know who did that. Sometimes you just have to accept your mistakes and move on. It seemed like a good idea at the time. I apologize. So today we're going to talk about design components and how to fix those problems that we're having with our CSS and what am I talking about? Component is the same as, there's like 80 different articles that describe this stuff, but it's basically the same thing as object in OOCSS by Nicole Sullivan, module in Jonathan Snook's snacks, block and block element modifier, UI patterns, these are all the same thing. That's what a component is. And the goals of our design components are to reduce the specificity. So instead of having like three different parts of our selector, we want to have a single class selector. We're also trying to reduce the applicability, which means that we're trying to remove that context, the required context, and we get the design we want. We don't want to have to specify context at all like, oh, sidebar, right, don't do that. Just the single component class. And then an improved maintainability. Because we are making it easier to apply design and have it be repeatable, that improves the maintainability a lot. So design component, one class, one consistent style. I don't care where on the page I am using the button class. If I apply that class to a particular HTML element, I want it to have that style exactly. And then we also have other kinds of, like here's some more examples, like navbar, tabs, more link. This is sort of Drupal friendly. These things can be components. You can have a specific design for those things. Here's some other ones. Teezer, side and nav, pager, sort of things. But you can also have, like, watermark, bio, breaking news. What you're trying to do is you're trying to find, you're trying to look, I mean, oftentimes you're going to get, like, a complete page design from a designer, right? And you want to try to look through that design and pick out little pieces that could be repeatable designs. All right, they may not ever be repeated again, but they could be. So, like, main navigation, you're probably only going to have that once on a page, right? But it's still a component. You want to have it, is somebody calling me? Jesus. Oh, it's my wife. Yeah. Thank you. Sorry, Annie. And she's in Taiwan. I don't think she knows what time it is here. Anyway, so you want to have a single, I got to take my phone out of my pocket. You want to have a single class that describes a specific design, right? And you're trying to make them sort of encapsulated and it just does this one thing. But I wanted to talk to you about, like, the semantics of this, right? Watermark, breaking news, these aren't sort of the traditional Drupal ways of creating classes, right? That's because of semantics. I mean, everybody has to have a semantic class, right? Well, this is my little mini rant about semantics. Semantics is the study of meaning. So in order for it to be a semantic class, it has to have a meaning. Brilliant. Amnanam has more semantic than blah, right, because amnanam, everybody knows, a cookie monster, that has meaning. That's a semantic class. So as long as you don't name your classes, blah, blah, blah, blah, blah, I'm good. So our content semantics, that's handled by HTML5 elements, right?  So let's make our class names that we use for design components to be design semantics, okay? So the class names become meaningful to the designers, the developers who are implementing the design on a, you know, semantic HTML5 element set of markup, right? And the classes are all about the design. Smacks, you've probably seen in a slide like this, like 80 million times. Base layout, module, state theme, actually, who here isn't familiar with smacks? Okay. A fair number of you. So base layout, module, state theme, it's like Jonathan Snooker looked at all the Drupal terms and said, how can I mess with them the most? So module and theme, these are not good names for Drupal people. So I'm going to be using this sort of modified version. We had a big long debate, Morton and I, and a bunch of other people to try to come up with these sort of names and like decide within the Drupal community, this is how we're going to talk about smacks, okay? So base layout, component, state, and skin. And basically this is a way of sort of categorizing your styles. And I'm going to skip over the explanation just for a second because I don't really like the way he's put this into these five things. I'd much rather have state and skin, that they are part of components and I'm not sure why they're giving sort of equal weight in the smacks organization of those five things. Because state and skin are really, they're part of components. So now I'll describe base layout and components of a rescue. Base styling is basically, it's just the styling that you apply to HTML elements. So like if you want to add, you want to style a paragraph, you P and give it that styling. H1, what's the styling for H1s? So all of your HTML element styling, that's your base HTML element styling. Layout, these are classes that you create that are specifically for moving big chunks of your page around to do layout, your responsive layout stuff. So you have like a class that's called layout dash three column or something. And then it's, that is for the wrapper. And then you'll have another class that specifies this is the left column inside that three column layout. So all of your classes for that are related to moving your page around. PixelWhip is giving a presentation later today, I think. I don't know what the time, does anybody know what time it is, his presentation? It's next. It's next, in here? It's next, somewhere. He's giving a presentation just on layout. So go talk to him about that. And then components, these are the design components. This is what the entire rest of the presentation is about. Smacks is really good to start with. And then as you start to implement it, you feel like there's some pieces missing. And for me, the pieces that we're missing were BEM, block element modifier. So basically your components then become these, described as these five things. The actual sort of base components, elements, modifiers, states and skin. I will talk specifically what those are in the next slides. So let's start with, you know, I've given this presentation a few times. This is my first time giving it at a DrupalCon. And I used to like show screenshots, and I felt like the actual web design that was on the screen was messing with people's ability to understand these concepts because they're very new. So I decided to like make a visual analogy. So the design that we're actually going to be doing today is the flower component. So in order to, I want, so I've got the flower class. And any time I use that flower class, anywhere on the page, I want it to look exactly like that, right? So if I've got an H1 element and I apply a flower class, it better look like that on my page, or I've done something wrong. And this can apply to any HTML element, I don't care. It's got to have that design when I apply this class. That's what a design component is all about, right? And no other element is going to have a flower class unless I wanted it to have this design. So instead of having these highly specific selectors, you know, nav, item, a link, we're converting the specificity from the selector into the actual naming of our design. So the naming of our class is the specificity. Okay. So this is the component, flower. So, and oftentimes we'll have, this is the rather complex design. So if we start to look at the individual elements of it, it'll have, like this requires several HTML elements. Just take my word for it. So we start to look at that to like one of our divs or whatever HTML element is going to get the flowers, underscore, underscore, petals. This element is going to get underscore, underscore, face applied to it. So those classes then are applied to individual elements within our design component because we have this complex multi-element design.   So it has to be nested inside it so you can do like relative positioning or absolute positioning or something like that, right? But I don't want to have the naming of the class represent the HTML hierarchy. I don't want to do that. So like I wouldn't want to do flower underscore, underscore, stem underscore, underscore, leaves to show that leaves are have to be under inside stem. If you want to document that the leaves HTML element has to be inside the stem element, you can create a style guide for that. Doing automatically generated style guides is a really new thing that I just started doing. It's great and it's perfect for this, for documenting this kind of things. But don't, I've seen people do this before, don't create flower underscore, underscore, stem underscore, underscore, leaves because you've suddenly prevented me from refactoring this design module so that there's no longer this requirement that the HTML elements must be nested. Because the naming insists that they must be nested, but we can no longer refactor this design component so that they're not nested. So just every single element is just specified using underscore underscore and then the name of the element. And I would like to say that this doesn't even mean that leaves have to be an element within like the flower wrapper, right? I don't even want to suggest that there's that kind of HTML hierarchy, right? Because you can also have a flower bed underscore underscore bed, the flower underscore bed is obviously a wrapper, right? The flower goes inside the bed, right? Well, let's say we're doing like visually centering, right? So flower bed just happens to describe a wrapper HTML element for the flower component. So elements really, they're pieces of the design, but they do not represent any sort of HTML hierarchy.  Modifier. So we basically have the same design here, but it was just modified slightly. So there's a lot of CSS properties that can be reused, right? So if we, instead of specifying just flower, we specify dash dash rose, it's going to use most of the CSS properties, but then there'll be like an additional rule that specifies how the rose is slightly different from the base component, right? This is a modified variant component from the base component. This is our hover state. State is a really interesting one because states are basically there's three kinds of states. You have states like this, which are hover, active, link, what I wouldn't know, not link, but those kind of selectors. Then we also have JavaScript interaction. So if there's some sort of JavaScript interaction where you click on something and then it adds a class to modify the design slightly, the way that you do that is, for example, we want to have some sort of JavaScript interaction here. This becomes the is-pollinating JavaScript interaction. My design skills are not that good. The flower is meant to look just as happy as the bee is. So that's the second kind of state and the third kind of state is our media queries, right? Those are also a kind of state of our component. This is the desktop design, mid-width 48ms, so it just wraps around just like normal flower, and we get this sort of slightly altered state when the media query applies. And I would like to remind you that print styles, those are also media queries. So print styles, like for example, this is, yeah, there's our print style, pressed flower. Yeah, this is just another kind of state. And then the last part here of our design component is skin. This is something that Jonathan Snuka added to Smacks, and it's not done very often in design anymore. It's usually, like, the skins that they would have, Yahoo, for example, I don't know if you remember this, they don't do it anymore, I don't think. If you went to, like, the Yahoo homepage, it was for, like, yellow colors, and then when you go to, like, Yahoo Finance, it would, like, change globally, everything would be, like, slightly green, right? So it's a way to modify a large set of design components with a single modifier. And I don't have a picture of that. I remember, like, what am I going to do? Make it green and have a money symbol in the middle or something. This didn't have a, it broke my visual analogy, so. But I'll show you an example in the next slide here. So here's what we have, all of these different parts. Component modifier. So you notice that I put a single dash in here. This is why we have double dashes here, because sometimes you'll have a design element that you just can't figure out how to describe it semantically without using two words. So you just put a single dash in between the two words, and that sort of indicates that this is the name of the component. And then we'll put the double dash. That becomes to show that there's a modifier. So an altered version of that same design. Double underscore, then, I mean, that's why we have double underscores, just to be consistent with the double dashes. And n elements, you know, sometimes an element will also have two names or two words that require it. This is our JavaScript state, here, is state. And you can see that there's no space here. This class is, in the selector, both of those classes are on the exact same element. Hover, and then media, whatever your media query is that wraps around it. And then here's the skin, right?  So these are the different ways that you specify web components using classes. Go back here. So one more look at this. Base, layout components, and components are broken down to do. Components, elements, modifiers, state, and scan. File organization. I use a file organization that is broken down in basically the first three levels of snacks. So our base styles go into one folder. Layouts go into another folder. Components go into another folder. And that works really well, actually. Yeah, here we go. You can see an example. So I use SAS, of course, so I have my styles.ses file. And then basically it's just sort of importing all the files from base and components and layouts. This is my file structure. It's really simple. These are the only levels of file structure that I need. And the reason for that is because it, surprisingly, you end up with just a whole ton of files inside components. But it's actually really easy to find stuff. It's surprising. It seems counter-intuitive if you have 80 files. How am I going to find anything? But I tried this out for the first time on a project, and then we had another front-end developer come in during crunch time. And he took a look at my files and he was like, Holy crap, what did he do? And then basically he just did this. He's like, okay, he knew that he had to modify this one design. So he looked at the page and he's like, okay, that thing. And then he inspected the DOM, saw that there was a class applied to it, and then he looked for a file with that name in the components folder. And boom, he knew exactly where to modify. He found the exact file he needed to modify. So the file names are the names of the design components. Let me see if we've got a whole bunch of audio button dialogue, engagement badge, feature divider, feed icon. Some of these I would want to change. I'm like, I don't really like the way that works, the way I named it originally. But you know what? It doesn't matter. Do not stress about what you actually name it. You're just trying to give a sort of rough approximation of what the design encapsulates, because it's a visual design, right? Maybe you won't come up with the best words originally. It's okay. You can refactor later if you want to. It's more important to just start building out your site and recognizing the actual component than it is to worry about what the actual name is. And it will take a lot of practice. You'll get better at it as you do it. And you realize that it really doesn't matter so much, as long as you've sort of encapsulated the design. It's not so bad. Here, let's look at the styles.scs folder, or styles.scs file. So I'm importing my init file, underscore init.scss. That's where basically I keep all of my SAS mixins, variables, where I'm importing all my compass modules, whatever third-party library that I need. And then usually I only have a normalized file inside my base styles. So I take normalize and then just pack it up, because I want to make sure that I have some styling on all HTML elements. So I just take normalize and start adding in my styles for HTML elements. And the way that I usually target, or the way that I decide what is the design that I'm going to use on HTML elements, is to think about WYSIWYG editors. Because WYSIWYG editors are usually horrible about trying to insert a class into whatever thing that you've just typed or added to the page. So I just recognize that it's going to insert some standardized markup, hopefully. Hopefully, HTML5 markup. But it's going to be really hard to insert the classes. So what do I want all of my HTML elements to look like? What design do I want them to have inside the body field? And that becomes what I specify in my base styling. And then inside all my design components, they're overriding that default. But the WYSIWYG, the body field, that's getting the default design from base. And layout rules, like every single individual layout, gets its own file. And it's not even per page. It's like I'll have an L-header, for example, that's the layout for the header and how it sort of modifies itself as it goes across larger and larger screen sizes. And all of that is encapsulated inside that file. I'll have a footer one. Like on story pages that are node story, I'll have a story layout that works with those, you know, the layouts, the panels layout that I use or whatever, right? And then finally where I'm just sort of importing all my components, just right there. It's really pretty simple. I realized that I talked really fast, which is good. Because one of the things that I didn't get to show you, and I haven't really shown anybody, is the automated style guide. So let me jump out of my slides real fast. This will be plenty of time for questions. But one of the really useful things that I did recently on a project, MSNBC.com, I implemented a style guide, an auto-generating style guide. And see if I can pull it up here. It's really hard to see all the buttons from this angle. Okay, window reopened and closed. There we go. So there's this thing called KSS, Neath Style, I think it's Neath Style Sheets. And it's a way that you can specify, you can basically write some comments inside your SAS files.  This is where my generate to CSS is. Now, run right now and generate me a style guide, a bunch of static HTML files based off of that input. And this is the one that I did, this is the only one that I've actually done because I just finished this project a couple of months ago. And in it, it just gives me an example of, what are the heading levels look like? And you can see it shows you the sort of example that I'm using and then the actual style right here. I mean this is a real style because it's pulling in the generate to CSS. So this is the same CSS file that we're using for our theme on the Drupal site. So these aren't Drupal pages, but it's the same CSS. And the way that you specify that is actually really easy too. So this site was broken up a little differently inside of my base. There's actually several files there. So for heading one, I basically have this little code comment at the very beginning here. Can you guys see that? I don't need to make it bigger. So I specify, I'll scroll this way, it's a little higher. I specify that, you know, describe it so I can, this is heading one, I give it a sort of example markup. And then just specify what section of the style guide I want this to appear in. And because the comments are right next to the actual implementation, I would have to be really, really dumb not to update the docs when I update this style. Like if I have to modify this in some way that's relevant to the documentation, modify it, just do it all at once. And then just rerun the style guide generator tag, or the script. There's actually, I specify, there's a Ruby version of CSS which I could never get to work because it assumes way too much Ruby knowledge. But there's also a Node.js implementation of it, KSS Node. And that one actually worked when I tried it, which is, you know, very positive. So Node.js is what I actually used to generate these. And then go back over here. I can show you, so base, headings, you know, here's what links look like. Here's like an example section of text. Yeah, and then let's go over to our components. So, yeah, this one, this style guide I actually generated after the fact. And I came on to the project very late too. So it's sort of exposed some interesting bugs in our implementation. For example, this design component is applied with an ID selector, which I really hate. But I didn't know that until I generated the style guide. So I would like this to be a class logo instead of an ID. But this is the HTML that's required in order to get that design. That's not very interesting. There's a bunch of different styles, classes that are used for ads. Here's vertical styling on an ad. The dotted lines I actually added to the example markup just so you could see where the different pieces are. So you can modify the example to add in some inline styles to make it easier to visualize actually what's going on. Let's find, here's a better one. So here's our author names. This is the bylines on different stories. And when I want just this sort of default styling on author names, I just use the author dash names, design components class. And then there's a modified one with a border underneath it, author names dash dash border. Don't stress too much about exactly what you name these things. It's more important that you encapsulate the design than it is to name it. Here's another variation of it. This requires slightly different HTML syntax because it has this sort of partner logo next to it. Breadcrumbs. The great thing about implementing this automated generated style guide as you build the site is it really helps you to focus. What am I actually building? Have I really encapsulated this component well? It makes it much easier to create components if you've got an automated style guide that just runs as you're building stuff. But it's also really useful like this after the fact to sort of like, oh, let's see what's going on here. One of the things that I discovered when I did this was we had a SAS variable called, what was it? It was like, I think the name was like purple or something like that. And the actual color was green. And I didn't know that until I did the automated style guide. Anyway, if anybody has specific questions of how to do this, I'm around the next few days. And again, that was node KSS to do this. And let's go back to slides now. Actually, that's it. Thank you. If you have questions, there's a microphone somewhere. Is it right in the middle? Can people walk over there? I can't really see from this angle. Yeah, okay. You can. Good. Hi, John. Hello, Morton. I'm glad you didn't put any dirty pictures in your session, so I don't have to count on my next session. But that's actually not the question. You're showing the style guide. Is that a thing we should get into jubilee? Oh, yeah. So the classes, the naming of this stuff that I mentioned in SMACS, that we do have some documentation that really describes in detail exactly how this stuff works. And it was a group effort. A whole bunch of people worked on it within the mobile initiative for Drupal 8. And I don't remember the URL, but it's in the documentation. You can find it somewhere. I can tweet about it later, I guess. Thanks, I guess. I forgot my picture of you in one of these slides. Exactly. In a session in two hours, there's going to be a very good picture of John Albin paying his way through Drupal. Oh, are you doing this? You can make me pull it up now. Let's see here. And here we go. This is from the fugly selector hack. This is just for you, Morton. So this is one thing that I forgot to mention is that when you're using Drupal, sometimes it's really hard to put classes exactly where you want them. You may have noticed this problem. So I came up with the fugly selector hack, obligatory Morton reference. And basically the hack is a way to... Yeah, right. So sometimes there's a specific CSS selector that's really ugly that I have to use because Drupal, and I can't change the classes that I want to use. So I'm going to feature in the square title and then A, because I can't figure out how to insert a class into the link because it's like some render array inside this thing. So instead, I'll use the fugly selector, but then I will extend the beautiful sort of lovely design component class that I wish I could use. And for some reason this works really well because you've been thinking about all these design components as being independent, it doesn't matter that I accidentally increased the specificity of this particular selector because it's still very independent, right? No one else is going to use that same selector. You're not going to have any design component collisions going on. This is a great, great technique when you can't get into Drupal's internals to change the class that you really need. Just for your morning. Thank you. I was curious if you had any opinions on grouping classes within your CSS or within your markup, your HTML or template or whatever. I was reading, Harry Roberts is like grouping them with brackets around so you have like a series of BEM classes and you actually put like class equals and then brackets around related sets of classes. Just curious if you think about how you group them together for like readability and findability or any thoughts on that? That makes sense. I haven't thought about it, yeah. I haven't thought about that before at all, so you really caught me off guard. But the ideas behind design components are sort of independent of the actual selector you use as we discovered with the fugly selector, right? So, yeah, as long as you can work out a way, if you don't use the BEM syntax which is that double dash, double underscore and use some other syntax, find a naming convention that works for you and stick with it, right? I highly recommend the BEM syntax double dash, double underscore because it's easy, straightforward. It looks ugly at first, but it's really useful. How do you draw the line between what's a layout and what's a component? Right. So layouts really are about like big chunks of the page, right? Now, within a component you may have like be moving stuff around a little bit and it's fine to have a little bit of layout within your component like relative positioning or maybe even absolute positioning. But basically it's all relative to the other sort of loose collection of other HTML elements that are inside your design component, right? So a little bit of layout inside there is fine, but it's not about page layout where you're moving big chunks of the page. And basically if there's layout inside that design component, a little bit of layout within that design component, you should be needing that same layout every time you use that design component. And that's like you have variations where you tweak one of the positioning of one element, right? I have that sometimes. Well, I'll make a modifier that tweaks the layout a little bit. But you wouldn't have say the page as a component and that just has the page layout in it or the header as a component. Yeah, I mean I guess you could think about the page as a component and then all the layouts are just part of that, but yeah. And why not use sub-directories within components in order to sort of chunk up the long list of files? Is there a reason for that? So if you start doing sub-directories inside your components to like group them logically together, you lose the findability a little bit because you're like somebody's new comes into the project and they're like, okay, I just inspected the DOM, I find that name, so I'm looking for that file and now I have to look in like seven or eight different sub-folders in order to find that file name.  I'm not opposed to it, but it just, I don't really find it necessary. So let's say we're in the middle of a website development project right now and we want to move more towards the model that you've described. Any suggestions on taking what we have and translating it into what you've told us about? Yeah. So I've been on projects before where it's already been done once and we're just like tweaking it. You can transition your site if you're like halfway through to the design. You don't have to throw everything away and start over. It actually works out relatively well. It's like all the new stuff you try to use this model because they're highly independent. They're also independent of all the like awful ways that you did it, the first half of the project. So it usually works out okay, or relatively okay. So it's okay to do like half the site poorly and wait until you have time to kind of transition that into... Right, you can come back and refactor later and it'll be, you know... Yeah, I mean that's just the reality because if you could have unlimited time, well yeah, we'll just start over. No, that's not going to happen, right? But it's okay to switch the methodologies because they're highly independent so they're not going to have that big of an effect on the earlier stuff. It's more like the earlier stuff is going to have an effect on the later stuff. So you may find that there are specific rules that you have to refactor because they have two generic class at the very end of the selector and they're bleeding across into your design components that you build later. One thing that I should also say is that a particular HTML element could actually have a layout class on it and a design component that's okay. There's no reason why you can't have nested components as well. So like you have a design on the thing and then like inside the HTML there's another component that just happens to be smaller and fits within your other larger design components. That's okay, we're not specifying that they have to be next to each other, right? We just sort of want them to be independent of each other. No more questions? Thank you everybody.


Sure. My thing is, get as much off my desk as I can, but it still has to be on my desk, which sounds like it's kind of contradictory, but it turns out it's not. What I mean is, all the stuff that would otherwise just be sitting on the surface of my desk, find a way to mount it so that it's off the sides. Okay. And so like my studio lights, that's how they are. They're clamped to the sides of the desk, so they're up above. And my iPad that's sitting off to the side right now that I'm using as an extra display, so I can look at the whole Discord chat, it's in the 12 cell hoverbar duo stand. And they call it the duo because it comes with this nice, really nice weighted base. So you can just set it on something. And it even has like a little tray for your Apple pencil. I took that off and I put the clamp on and it's clamped to the side of my desk. So I actually have my iPad above the, my closed lid MacBook Pro and the arm kind of comes up from behind the computer and then has the display sitting out up above the computer. And so I now have this iPad here on my desk, but not on my desk. And it'll hold any size iPad. Amazing. And it keeps the display, the iPad up. So it's in line with the bottom end of my big display. So I'm not looking like to a weird different place like having to look way down or way up or something. I just look off to the side and then here's my iPad right where I want it. And so that also puts it at a height where if I need to do something on screen with touch, I can still do that. Pretty cool. It's like the perfect setup for having an iPad off to the side. And I know you moved from the base to the clamp. Was the base weighted properly such that it would hold? I mean, assuming the answer is yes, but, you know, was there the base would hold this if you chose not to clamp it or couldn't clamp it? Oh, absolutely. Yeah, okay. All right. Okay. Yeah.  It sounds like 12 South not surprisingly has solved this problem. So yeah, amazing. I love it.


What's going on guys welcome to another video actually just put it at the river. We're about to go out Catch some fish. We're ready as you can tell behind me. They're actually stalking The river with some stripers right now. I was just talking to him. They're putting 3,000 in right now That's insane. We're about to go out here try to catch them Just gonna have a fun day on the river Hopefully we're gonna whack him on the look at the tides right now figure out what we need to be doing and Hopefully we're gonna go put a smack in on them, but let's go ahead and get this video started Like a court pop you a door to never been a sport door That was the craziest thing No, I thought you ripped it in half or something. I literally hook set them from 30 foot away and drug them all the way to the boat Is a good one you need a net Oh It's a good one That's a good one He hit it like a freight train guys That's a good one. That's a good. That's a very good fish These fish are so slow guys the water's so cold these fish are just cold. Look at that one. That's a beautiful one It's time to open up Oh My god, that one looks bigger. Oh my god guys are on to something now These fish are so slow, but God look how healthy and I mean these are good ones. This isn't no joke especially for the river That felt like a good one Yeah, I'm a fish are nice eyes Yeah, I can tell the difference when he bit it first one There you go. Oh my god, it's a big one. I'm bringing right there. What is up with all the finally? You know good size food you got one is it big? Yeah, you got it. Oh, yeah You got it. Oh Why are they all here? No big Why are they all big? This is crazy What's up guys, I hope you guys are enjoying What's up guys? I hope you guys are enjoying the footage so far I decided to you know whip out the camera because I have one clip actually did go on the river today Which is Saturday you guys are watching this Sunday the footage that you guys are watching I know this is confusing the footage you guys are watching or just previously just watched Is actually from Friday, so I'm talking Saturday night right now It's actually 12 30 and I'm about to edit this video for you guys on Sunday and Yeah, so I actually went out today and it was pretty tough didn't get many bites, you know caught some small ones and caught one monster just Really really really solid Savannah River fish and also a ton of mud fish It was just I didn't have enough footage for like a solid quality video So I'm gonna throw this clip in here I hope you guys enjoy it and like I said if you guys are enjoying these river fishing videos Please smash the like button. I have a lot of video ideas this break, but I just like to say thank you guys so much For the support. I love you guys so much You guys really truly mean the world to me and let's go ahead and start that clip You know off the day, you know is a phenomenal day out here at first You know is a struggle, but you just got to figure out this fish You know figure out what they're doing and these fish are just really slow out here in water temps It's dropping really really really quick the water's freezing and these fish. I mean we caught them pretty decent I'm Surprised what we caught the quality that we caught was a lot better than we usually catch on Savannah River I mean, this is definitely one of my top five days out here on the Savannah River and I you know how to blasts We're throwing a little sinko very very slow. I mean very slow nothing nothing fast at all and ended up catching I'm pretty good But overall I hope you guys enjoyed this video if you did please smash the like button I want to film more videos out here on the river It's just I've been so busy with school So it's been so hectic and I haven't had time to really come out here since school just ended I've been able to come out here in today's Friday and It's very thankful to be able to come out here and have a good day But thank you guys so much for watching if you enjoyed it like I said like comment subscribe now catch you guys in the next one


Since the Industrial Revolution, humans have emitted more than 2,000 gigatons of carbon dioxide into the atmosphere. That's the weight of more than 400 billion African elephants, 5.5 million Empire State Buildings, or 347,000 Great Pyramids. This thickening blanket of heat-trapping greenhouse gases has a tremendous effect on the climate and the world we live in. If you guys want, in a future video, we can explore how we're trying to reduce our emissions or the effects those emissions have on our planet. But today, we're going to be talking about six ways that we're trying to actively remove CO2 from the air. So let's jump in. While the expansion of renewable energies and more efficient energy systems is expected to cut global emissions by more than half by 2100, most estimates show we'll need to remove billions of metric tons of carbon dioxide annually by mid-century to keep the climate in check. Carbon removal can come in many different forms, some simple, some technologically advanced. So today, we're going to look at six of the biggest ways scientists are trying to pull greenhouse gases out of the atmosphere. First, forests. This one's a simple one. Trees are probably the most common carbon sink that people are aware of. By the way, a carbon sink is just something that removes CO2 from the air. Forests absorb about 15% of the carbon dioxide generated by burning fossil fuels every year. That's more than 1,500 million metric tons of emissions every year. Photosynthesis removes carbon dioxide naturally, and once trees absorb it, they're especially good at storing it. Expanding, restoring, and managing existing forests more effectively are ways scientists are trying to leverage the power of photosynthesis to convert carbon dioxide in the air into carbon stored in the wood and soil. Every acre of land restored to temperate forests can sequester about three metric tons of CO2 per year.  One of the major challenges to planting trees on a mass scale is to ensure that forest expansion in one area doesn't come at the expense of forests somewhere else. For example, we're forcing farmland to reduce the food supply, which could necessitate converting forests somewhere else, especially in other countries, to farmland. These dynamics make restoring and managing new and existing forests especially challenging. Since I mentioned trees, I'd be remiss not to mention that Mr. Beast and Mark Robert's fundraiser to plant 20 million trees is still ongoing. They've already planted more than 14 million trees, and if you're interested in supporting, go to teamtrees.org, link in the description. The second way to pull emissions involves farms. Soils naturally store carbon, like a lot of it. Surprisingly, the Earth's soil contains four times more carbon than the total stored in all living plants and animals, including those forests we just talked about. There are more than 250 million acres of farmland in the US that's the size of Texas and California combined. But agricultural soils are running a big carbon deficit due to their intensive use. Because of how much farmland there is, even small improvements in farming practices that increase the carbon per acre on farms are hugely impactful. Building soil carbon is even good for farmers and ranchers, since it increases soil health and crop yields. Planting cover crops, those are the crops that cover the ground when fields would otherwise be bare during off seasons or off years, can extend photosynthesis throughout the year. And using compost can improve yields while storing compost carbon content in the soil. Scientists are even working to breed crops with deeper roots, making them more resistant to drought while depositing more carbon into the soil. Number three, bioenergy with carbon capture and storage, otherwise known as BEX. BEX is another way to use photosynthesis to combat climate change, but it's far more complicated than planting trees or managing soils. And it doesn't always work for the climate if it's not done right. BEX is the process of extracting bioenergy from biomass and capturing and storing the carbon, thus removing it from the atmosphere. It's a hard definition to understand, so let's work with the most common example. Energy plants will grow trees or crops. As the plants grow, they'll pull CO2 out of the air. Then, once the plant has grown, carbon is left behind while biomass is extracted for biofuel production. That biofuel can be used to power cars or planes, and the carbon that was left behind can be stored underground or mixed into long-lived products like concrete. So fuel was produced while removing CO2 from the air. As of 2019, five facilities around the world are actively using BEX technologies and are capturing approximately 1.5 million tons of CO2 per year. This technology is currently prohibitively expensive. Research has shown that similar methods could increase both energy generation and CO2 removal by more than 50 times relative to modern-day BEX systems. So the technology does show promise. 4. Direct Air Capture This is probably what most people think of when talking about removing CO2 from the air. Direct air capture is the process of chemically scrubbing carbon dioxide directly from the ambient air. Again, storing it either underground or in long-lived products like concrete. This new technology is not unlike the carbon capture and storage technology employed today at power plants and industrial facilities. It's relatively straightforward to measure and account for the climate benefits of direct air capture, and its potential scale is enormous. But the technology remains costly and energy intensive, but as the energy and technology costs go down and more energy is produced by renewable sources, direct air capture has the potential to take back billions of tons of emissions annually. 5. Sea Water Capture Direct air capture, but for the fishes. Oceans are actually the largest carbon sink on Earth. While the oceans represent a great potential to reduce emissions, when they absorb CO2, it increases the acidity of the sea water. And increasing the acidity of the oceans has its own effects, like destroying coral reefs and delicate ecosystems. But scientists are looking in a ways to scrub CO2 out of the oceans, like we scrub CO2 out of the air. By reducing CO2 concentration in the ocean, the water then draws in more carbon from the air to regain balance. And sea water has a much higher density of CO2 compared to ambient air, which means less work is required to separate it out than in direct air capture. But sea water is also considerably heavier than air, which means more work to move it through any processing facility. The US Navy has already developed a prototype sea water capture device. Because CO2 can be converted to fuel by adding energy, this technology can allow vessels to create their own fuel at sea. Of course, if the captured carbon is converted to fuel and combusted, it just returns to the atmosphere. But this still reduces the need to add new emissions by burning fossil fuels, and future applications of this technology could provide long-term storage for captured carbon. Last but not least, enhanced weathering. Some minerals naturally react with CO2, turning carbon from a gas into a solid. This process is commonly referred to as weathering, and it typically happens very slowly. But scientists are figuring out how to speed up the process. This could mean pumping mineral water, not the kind you buy in stores, from underground deposits to the surface where minerals can react with the air. Another example would be moving air through large deposits of mine tailings, the parts that mines dig up that don't have the ores they're looking for that contain the right mineral composition to absorb CO2. All these technologies have to grapple with how cost-effective and easy to scale they are. The final answer probably won't be just one of them, but a combination of them working together. I hope you enjoyed getting smarter with us today. If you liked this video, consider sharing it with a friend. And remember, there's always more to learn.


Today, through this message, I want to help people who are in addiction, myself experiencing certain of them and seeing God's grace in helping me to overcome and having a church where we see people who've been free. I want to share just few simple thoughts that will help you to get strengthened to receive freedom from God. And then we're going to pray against the spiritual forces behind addictions. And we're going to pray for the viewers who are watching us who have those addictions in Jesus' name, because somebody say amen. If you have your notes, I want you to write down point number one. Stop dating Delilah. Stop dating Delilah. Now Delilah, I don't mean that you, that particular girl, Delilah speaks of a woman in Samson's life that Samson asked, listen to this, he asked her to bind him.  They trigger the sin in your life.  So you push yourself in a way where Delilah, something you like, but it's not something you should be around and then she binds you with ropes, but because you tell yourself I can break him, you keep breaking them, breaking them, but there will be a day when Delilah will bind you with a rope, you will not be able to break. The Bible says he got up and said I will lose myself as before, but the Lord left him. God's protection is on your life, but that protection begins to lift when you step into the house of Delilah. When you step and you lay your head on the lap of Delilah, many people will experience deliverance if they will only delete the numbers of people who are selling them drugs and inviting them to a place where they get buzzed. It's very spiritual, just delete it, just leave it alone. Because Delilah she will put you on her lap, you will lose all kinds of discipline and then she will bind you and that bondage is not the devil's fault and the bondage is that you gave her your hands to bind you with. You can cry there until you lose your voice for God to deliver you, but God can only deliver you from your enemies, not from your friends.  You have to hate it, you have to struggle with it, you have to fight it, you have to want to be free from that, as somebody say a man. When Jesus spoke against the devil in the wilderness and he rebuked him, Jesus was in the wilderness, speaks of separation and Jesus was fasting, speaks of discipline and then he said, devil get behind me. See my power against the devil is congruent or consistent with how much separation do I have from the house of Delilah and how much discipline am I applying to my spiritual life. See, if my life is not disciplined, if every single junk is on my phone, all kinds of music, all kinds of movies and all kinds of stuff, material, things that are constantly poisoning my soul and I'm putting myself in the way where there is bad people or people that are just, I shouldn't be with, they're constantly tempting me to my old life and then I get up and say, I'll rebuk you Satan, Satan is going to laugh, that's exactly what Delilah did, Delilah will laugh at you and the Satan is not going to be bound, Satan is going to bind you. When Jesus spoke against the devil, it's because he was fasting and he was in the wilderness. When Samson got up to fight the philistines, it's because he was napping on her lap and he was in the wrong house, that's why the Bible says, I'm going to go and fight them. See, he believed in charismatic deliverance. I'm going to go because I've done it before and everything gets lost, he gets up and the Bible says he didn't know, the Lord was not with him. It's not the form of rebuking the devil that empowers you, it's a lifestyle of discipline and separation from the world.    Apostle Paul goes on an island of Malta and he says this, when Paul had gathered a bundle of sticks and laid them on fire, a viper, somebody say viper, a viper came out because of the heat and fastened on his hand. I want you to notice, as long as there was a little bit of fire, vipers were not coming out. When Paul increased, Paul didn't like small fires, he always wanted big fires. And God wants you to have that kind of a spirit inside of you. When you are complacent, you can be watching porn and feeling not convicted. When you are complacent, you can be drinking, smoking, listening, abusing people and feel no conviction at all and feel like you actually have no problem. And it's not because you don't have a problem. It's because the devil is comfortable in the temperature of your spiritual life. He's hiding there. You don't even aware of it. Increase the fire and you will quickly see vipers coming out. You will quickly sense a conviction. You will quickly look at the same action you were just doing a month before and say, oh my God, Holy Spirit is not pleased with that. But he was completely pleased when you had complacency and you had a little bit of fire. After a while, when our life is complacent, the Bible says he, he throws, spits us out. He speaks to Christians.  It hides demons. It's a dwelling place. You can be a Christian, name it, confess it, Jesus. Have a bumper sticker. Have a hungry generation mug in your house. Have a love, let love lead sticker on the door of your house. But if the temperature inside here is warm, demons will stay there. The moment you increase the fire just a little bit, they begin to come out. They begin to surface. Sometimes you begin to feel uncomfortable about certain behavior and certain action. But the best part is increasing the fire not only exposes the power of the enemy. It expels it. Pull through the snake into the same fire that revealed the snake and that fire killed that snake.  Not only you begin to see what you need deliverance, but with the help of God, you will be experiencing deliverance by keep growing in Christ. Can somebody say amen? Can somebody say amen? Increase God's presence in your life.  Build it. Put logs. If you are struggling with something right now, I'm going to give you a secret. Don't focus on being free. Focus on being filled. Focus. Paul wasn't looking for a snake. He wasn't going on a snake hunt. He looked for logs. The more logs he put, the more fire he had. And the more fire he had, the more snakes were killed. Even if that snake bit you and it's fasted, it means it's holding on to you. Listen, by having an increased presence of God in your life, morning prayers, regular fasting, regular Bible reading, not just watching all kinds of funny and hilarious fails on YouTube, but watching sermons, watching TB Josh, watching John Chee, watching Joe Lawson, and watching all of these anointed men of God, watching Joseph Prince, watching things in grace. When you begin to kind of watch testimony, some CBN, next thing that happens is that snake that's holding on to you, the fire is getting stronger, stronger, stronger, and you will begin to see your life will change, not because you went on a witch hunt, but because you went increasing the flame inside of your heart. The Bible says you know the truth, and the truth will set you free. That means as you grow in the knowledge of God, you become more free. Amen.   See sometimes when you're just beginning your walk with God, you can still be cussing, you can still be doing this, and you honestly feel completely fine with it.  And then comes a point when the mother chicken, she doesn't break the egg, she keeps sitting on the egg until the chicken inside gets so big that the bigness of the chicken no longer is fitting for the size of the shell, and she snaps and breaks the shell. That's exactly how many of us experience freedom. You begin to grow and grow and grow until the shell around our life that seems to hold us hostage, and we cry out to God to break it, and God says, I'm not going to break it. I'm going to be with you and help you to grow, and you will snap that out of your life by growing in Jesus Christ, because somebody say a man. It all started when I was around the age of four or five, and I got taken care of by a friend, and there it was, I got molested by someone, and from there I know the spirit of lesbianism got introduced. Ever since then I knew things weren't the same, it was all different. I started noticing girls more around in middle school. I would notice them a lot more, guys were no interest to me. In high school I started dating, I started talking, it was a normal lifestyle for me to be liking girls. And from there things got a little bit worse, or a lot worse. I was, I would party a lot, I would drink alcohol, every chance I had I would take it. I was always, most of the time at night I would be depressed, I would have a lot of anxiety, and to the point that I just wanted it to end my life.  But something told me that there was more to it, there was more to my life. And from there I got a Facebook notification and I got invited to the track for Apostle John Chee Conference. That's where my deliverance started. At first I was not very sure about it, I was scared, I was nervous, I wasn't sure if I should, it was the right thing to do, because I was not very familiar with it. There, when Apostle John Chee, I was going through prayer line, he started praying for me. I was not giving myself fully to God, I was not being free to him and telling him, you know, give it all. So, but that's where I knew that I needed to change my life. At the end of that night, I knew I had to start doing a change. I knew that the only way to be able to free of all of this, the depression anxiety, was if I just give my all to God and just be free. Then the continued Apostle John Chee came to Hungry Jen, and that's how I got a friend to introduce me to the church. And she told me about this and I came and I just let it go. I told God, you know, here I am, take me all. I don't want to be living with this anymore, because it was just a constant thing that I was just tired of and it was ruining my life. And I got delivered and once he delivered me, once I was, it was just the end. I felt a lot more lighter, like everything felt, I felt so much peace. Words really can't describe how it felt, but it felt so much more peace. I knew then that I had a purpose and I knew there was much more to life than what I had. Those were not the same to me. Depression anxiety wasn't a problem anymore. Social media, I cut it off, that was affecting me in that way. It was just not the same, because I knew who I belonged to and I know I knew what was my purpose and what's my destination. I did not expect this change, but I knew it was for the better. My name is Giovanna Hernandez and this is my testimony.


Siiiiiiihh! Strunk. Hello, any time I venture out onto the old YouTube, I'm always left wondering, why aren't there more videos listing and ranking things? So I figured I'd do my part and help fill that need. But really, the original video I made about the best Super Nintendo multiplayer games is almost 10 years old and badly needs to be redone, so let's just make it a top 13. The criteria I'm going by is pretty simple. It's just what games are made a lot better with the addition of a second player, and that can be cooperative or a versus game that pits two players against each other. But honestly, don't take this list that seriously, I just wanted to function as a guide more than anything else to point people in the right direction, if they're looking for good retro multiplayer games. Of course, since this is a list video, there's only so many spots available, so some good games are going to get left out, and I'll post a complimentary video to this one later on that includes the honorable mentions, so to speak, stuff like Secret of Mana, Top Gear, Kirby Superstar, Legend of the Mystical Ninja, and so on, but in the meantime, let's get on with the list. 13. NBA Jam Tournament Edition. Yes, that's right, a sports game, but really, you don't need to be into basketball to have fun with this one. It's up to four player compatible and the controls are simple enough that anyone can get into this game almost immediately. There are a lot of other sports games that could have filled this spot, like NHL 94, or Ken Griffey Jr. presents Major League Baseball, but the fact that NBA Jam is so easy to play makes it an easy choice as the best multiplayer sports game. You can either be teammates or you can face each other, and if you've got the four player multi-tap, you can do two-on-one or two-on-two. Plus, this one has all sorts of goofy characters you can unlock, everyone from Randall Cunningham to DJ Jazzy Jeff to Bill Clinton, or my favorite, Crunch, the old Timberwolves mascot. You can also put in codes that can make you ridiculously overpowered, like being able to dunk from anywhere. It's always good for a laugh when you see a Wolfman dunk from the other team's baseline. King of Dragons. This is one of the better arcade ports the Super Nintendo got, and it's one of the best beat-em-ups too. It's really held up well over time. There's five classes to pick from, from range fighters like the elf in the wizard, melee combat fighters like the cleric and the dwarf, and the regular old balanced guy. You get six lives and three continues to get through 14 long levels split up into stages and boss fights, but what's cool is that you use continues right there on the spot. So you really have 18 lives to get through the whole game, which is great, because the game doesn't make you replay sections you've already completed. King of Dragons is a beefy boy too. It's a long playthrough, and it's so dang fun to play with other people. It's one of those old-school beat-em-ups where the life meter stretches off of the screen. You gotta love that. 11. Metal Warriors. Not as many people know about this game, but it deserves a spot on this list because of one reason, the head-to-head mode. You have six mechs to choose from, and player one gets the top half of the screen, player two gets the bottom half, and you fly around and try and kill each other. You can do that with your machine gun, which seriously goes pew pew pew. Or you can use a handy lightsaber, which gives away the fact that this game was made by LucasArts. There's a few different maps you can play through as well, so there's a ton of mileage you can get out of this mode.  How can you not love that? And yeah, if that doesn't appeal to you, then check out this weird-ass basketball mode you can unlock. So hey, if you're not entertained by mech violence, then maybe, uh, whatever this is, we'll do the trick. 12. Pocky and Rocky. This is one of those games where it's best experienced with two players if only because you'll NEED a second player to even get past the first few levels.  It's a top-down 8-way shooter where you collect stuff to upgrade your shot. But in addition to that, you can also slide into your partner and send them careening out of control into enemies. It's a good time. Plus, this is one of those games that's just plain entertaining. I mean, look at some of these enemies. Here we got some kind of ghost zombie pirate guy riding Bowser's helicopter thing he flies around in at the end of Super Mario World. Then after that, you fight Sweet D, who's wearing Knight's Armor. There's six levels to get through with Unlimited Continues, so there's no excuses not to complete this one. So you can all experience all the weirdness this game has to offer for yourselves. 9. Mortal Kombat 2. Come on, do I really need to sell you on this one? This game was in EVENT when it came out. And once I owned it, I don't think the cartridge left my Super Nintendo for a solid two months. I still have the Game Informer magazine that lists every single move for each character. But if you're somehow unfamiliar with Mortal Kombat 2, it's like the first Mortal Kombat, just ten times more of everything. More characters, more finishers, more special moves, more weird moves, more secrets, more story, more settings, more backgrounds, and some blood here and there. And no, do not say this game was better on Sega Genesis. Get outta here with that. Mortal Kombat 2 is best played today on the Super Nintendo. 8. Street Fighter 2 Turbo. As fun as Mortal Kombat 2 is, I don't think it's the best fighting game on the console. That title belongs to Street Fighter 2 Turbo, and thanks to the sharp pixel art, accurate hit detection, and smooth controls, this game still holds up extremely well, even for fighting game veterans. I picked Turbo because the original doesn't have the four boss characters, and Super just doesn't have the same vibe for some reason. I prefer Turbo, especially against a second player, and gotta love that incredibly satisfying sound design that's music unto itself. 7. Tetris Attack. Here's a totally different kind of one-on-one game. The multiplayer modes here are pretty simple. There's a time trial mode where you race to get the best score in a two-minute time limit, and a versus mode where you attack each other with shock panels, chain reactions, and combos. And of course you create those by matching at least three blocks in a row, and you accumulate all sorts of extra stuff when you create a reaction that falls into place. And the more blocks you clear, the more miserable your opponent will be. The larger the combo or chain reaction, the larger the garbage block will be that plops down on your opponent's side. Tetris Attack has long been my pick for the best Super Nintendo puzzle game, and the multiplayer just puts it over the top. If you're not into fighting games or action or sports, and you'd rather just play something a little different, then this one is for you. 6. Teenage Mutant Ninja Turtles 4, Turtles in Time. But then of course if you are into action and non-stop chaos, then this is your game. Turtles in Time is right up there with Streets of Rage, Final Fight, all the top tier beat-em-ups, and a big reason why is because it's so much fun with a second player. This game still runs very smoothly with minimal slowdown despite all the craziness on the screen, and the Ninja Turtles world lends itself perfectly to this kind of game.  In addition to that, though, there is also a time trial mode where you can compete against each other, and a one-on-one fighting mode. And unlike the fighting mode in Double Dragon, this one is actually pretty good, and it includes moves like ducking your head back into your shell. So yeah, when it comes to a two-player game, you get your money's worth and then some with Turtles in Time. 5. Donkey Kong Country. This is one of those games that really should go without saying, but I'll say it anyway. It's a great multiplayer game for a couple of reasons. First, it's obviously a well-made game with the right amount of challenge, and it's always fun to fight over who gets to be diddy. But also, this is one of those games that everyone has played, so everyone is familiar with it and has at least played the first few levels. Sometimes when you talk about how games age in different ways, this is an example of a game aging well, but it doesn't have much to do with the game itself. It's just the fact that you could sit down with pretty much anyone that grew up in the 90s, and you'd be able to crank through the first few levels, up until you get to those annoying barrels anyway, and you'd both have a blast doing it. And hey, even if you don't for whatever reason, you can at least chill out to that relaxing David Wise soundtrack. 4. Zombies Ape My Neighbors. Now, if you'd rather have a co-op experience where you're both cursing each other out and crushing Mountain Dew Code Red while sweat comes out of your eyeballs, then you gotta play Zombies Ape My Neighbors. This is another game where the controls are really simple. It's a top-down shooter, and one button shoots while another flips through your weapons. But while the controls are simple, the game is not. This is easily one of the hardest Super Nintendo games, even with a second player. But hey, some people want their two-player experience to be full of pain and suffering, and I get that. Some people really want to feel like they've earned it, so if that's what you're looking for, then there's no better game for that on Super Nintendo than Zombies Ape My Neighbors. 3. Super Bomberman 3. Although, really, you could put any of the five Super Bomberman games in this spot, because they're all great. But the third one is what I have the most fun with. It allows up to five players, there's tons of items to create all kinds of chaos, and there's Louis, these kangaroos with special abilities like kicking bombs, kicking blocks to trap players, or filling entire columns with bombs. The third game also has a soccer minigame, as well as the bad bomber mode, so even if you get eliminated, you can still hang out on the outside and cause problems. It's great. But like I said, any of the Super Bomberman games would fit here. They're all great multiplayer games, especially with the four-player multi-tap. 2. Goof Troop. Some of you might think this has ranked a little high, but uh, have you played Goof Troop? It's awesome. It's like the perfect all-ages co-op game. It's simple enough, but still offers enough of a challenge. And it's the ideal game to play with kids to introduce them to retro gaming. It's a Capcom Disney game, so it's really well made. The puzzles are clever, but not cheap. The combat is easy, the controls are easy, the music is great, and the presentation offers a lot of charm from start to finish. You can play this one by yourself, but it's way more fun to play with a second player. 1. Super Mario Kart. There is no way this wasn't gonna be number one. I can remember a time in my life when all my friend and I played for like a month straight was the battle mode in Super Mario Kart. And again, like I said about Donkey Kong Country, Super Mario Kart was one of those games that was absolutely everywhere. If you're of a certain age, it's likely that you have some memory of playing this one. And it's also likely that it's the one-on-one battle mode, which was really kind of the first thing of its time for a home console. I mean, friendships hung in the balance with these games. You were always just one red shell away from never speaking to your friend for the rest of your life. Well, at least until the next game starts, and you hit them with a wild green shell, totally on purpose, obviously. But yeah, the battle mode in Super Mario Kart still holds up extremely well. And hey, two player races aren't that bad either. And that's something that translates to all skill levels. Throw in a great soundtrack, and you've got yourself the best game to play with a second player on the Super Nintendo. Alright, that's all for now. Next week, I'm gonna be posting a video about the best of the rest, the other great multiplayer Super Nintendo games that missed out on this video, so stay tuned for that. But in the meantime, I want to thank you for watching, and I hope you have a great rest of your day!


A new sheriff has taken reins in Crowing County as of the new year. Todd Dahl announced his retirement back in 2017 after serving 12 years as sheriff and 32 in Crowing County law enforcement. Our Rachel Johnson has more. Todd Dahl knew he wanted to be sheriff of Crowing County from the start. I was going to school up in the state and I just happened to pass Sheriff Warnberg's desk, his office, and he was in there with a couple of captains. He said, you know, son, what are you going to do? What do you want to do? You're from here? I know your grandparents. I know your parents. What are you going to do? And I said, you know, Sheriff, I'll do respect. I want to be sheriff here someday. And that is exactly what he did. Dahl graduated from Braynard High School in 1983 and went on to receive his criminal justice degree from Amidji State University. Dahl has spent over 30 years working for the Crowing County Sheriff's Office and has served as sheriff for the last 12. Everybody has asked me, would you do it again? Would you do it all over again? Being from Braynard, I wouldn't change a thing. While it was a tough decision to retire, Dahl and his wife felt it was the right time. We talked about it a long time, my wife and I, and knew that, you know, we wanted to go out on a high note when I was young enough to enjoy retirement life. Over the 12 years he served as sheriff, Dahl made many calls, but his last call on December 27th was the hardest. You truly are the finest our profession has to offer and wish you nothing but the best. Thank you all. God bless. 101 is 10 to 7. I made it through my little portion and then the dispatcher, I lost it at that.  So to make that final call, that last call, we call it, but it was emotional for me. Sheriff Dahl wants to thank those who have worked with him along the way and the county that has supported him all these years. They're a phenomena and I just, you know, when I say thank you to all of them, that's from the bottom of my heart and it truly is to the people as well because they were certainly good enough to elect me three times and that's pretty special. Reporting from Brainerd, Rachel Johnson, Lakewood News. Incoming Sheriff Scott Goddard will officially be sworn into office during a pinning ceremony January 9th in Pequot Lakes. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.