Now we are going to discuss about elements of atmosphere as we have just discussed about the atmosphere that is is about the psychological thing So now we are going to see what are the elements which are associated with atmosphere there are four major elements that are associated with the atmosphere created by the retailer first of all it is about the store layout Overall store layout second is about the interior display of the store then is about the general interior into the store And then is about the exterior of the store. So overall store care layout Its interior, its exterior, its interior display, its general interior. All those things actually help The customer will be encouraged to buy more, to buy more and even to recommend to the other customers so that you can benefit from it After that if we talk about exterior planning then when we talk about exterior then there are some components that you need to keep into consideration in the planning of the exterior So the first thing that we have is the store front What should be the front of the store, what should be the size of it, what should be the measurement of it How the store front should look like, what should be the metal, what should be the glass So whatsoever is the decision You have to discuss the front of the store in the exterior planning Then we have the second part is about the entrance How the entrance would be, how the entrance would look like The convenience of the customer, the impact of the customer, the differentiation of the competition and the image of your image So the entrance also you have to discuss Then display windows, what would be the display windows in the store, what would be the display windows in the store Similarly if you observe the international, so almost majority of the stores have the display windows If we talk about the local context then considering the theft impact and so and so So the concept of display windows there is very little, very little Then the height of the exterior building, how much it would be, how much it should be, what is recommended What is the behavior of your customer, how much it is on floors, if the height is too much then do you have a lift facility So that is the facility of all the factors, that is the facility of the elevator All the components will be discussed in the perspective of exterior planning and then because they have the impact on overall atmosphere Then what are the surrounding stores or surrounding areas, you have to consider that Parking facility, will it be in the basement, will it be on the front of the store or not Because if it is not then it will create a very bad impact on the local stores The majority have the parking facility issue There are international stores, even in the perspective of Pakistan, you will observe There is a very reasonable parking facility, it is in the basement, it is on the front of the store But there is a proper parking facility, so that creates an impact on the customer Of course, its property is its car, and if it harms that, of course, your customer's reputation Your customer's loyalty effect will be there, it will come from the inside, from the store But when one sees that its car has been damaged, its car has been damaged So it will not be a happy customer going home So in the exterior planning, starting from the store front, display windows, store entrance We take all these things into consideration Then what are the alternatives in planning a basic store front When we have to design the front of the store, then what are the alternative options First of all, we have a modular structure option We have a prefabricated structure option, which is normally used by multinationals We have a prototype store option, a recessed store front option, which is on the basis of You have a glass front and all those things, and then a unique building design option These are the basic store fronts, which can be used as an alternative Normally, the new retailer keeps experiencing different types of experiments Which are existing retailers, because their set image is built in the minds of the customer And the store front they are using is very less that they take the risk in changing that store front So why, because the customer can have a negative feeling of the changes that we have done So the customer should have the positive feedback, positive feeling of the store front Because that is when he entered into the store, or once he is going to see your store It should be happy enough that I am going to buy my products from this store, which has been selected by himself So each and every element of atmosphere should be as per his needs Should be as per his likeness, should be as per his desires So ultimately this will bring results, positive results in the stores Then if we talk about the entrance of the store, there are a few questions which needs to be answered First of all, how many entrances you need? How many entrances do you need? You need one entrance, two entrances, one main entrance, one side entrance For example, some stores are like this, where the key customers, the main customers, the key accounts The loyalty customers, they have separate entrances, they have separate exit, they have separate setting area Just like on airports, for normal customers there is a separate facility For CIP lounge customers there is a separate facility, card holders there is a separate facility So ultimately how many entrances you need? Again, normal store entrances, loyalty customer entrances, emergency exit entrances So all those entrances you need to plan, or ultimately you have to share it with the customer Then what type of entrance is the best? If we talk about store entrances for the customer, then which type of entrance is more liked by the customer Which gets more attraction from the customer That too you have to identify and accordingly implement Then what type of walk-away gates will be designed so that the customer does not have any inconvenience And the objective of the store is also fulfilled Security objective is also fulfilled So to certify all objectives, the purpose of the store is to achieve your objectives In which the main objective is business too, from the retail store And if the customer is happy, satisfied, gratified Ultimately he will buy from that retail store


our viewers know that the information in this video is based on the Myers-Briggs personality type indicator. These personality types are more so provided as an outline for you rather than strict classifications. Now onto the video. Have you ever heard of the Myers-Briggs type indicator or the Myers-Briggs personality test? This personality test is a self-report questionnaire that indicates your differing psychological perspectives on how you see the world and make your decisions. One of these personality types from the Myers-Briggs personality test is the ISTJ, and it's the most common personality type. ISTJ stands for introversion, sensing, thinking, and judgment.  Do you think you might be ISTJ?  Number one, you like to do things the right way the first time. Do you believe in doing things right the first time? Other people might put less effort into a new task, chore, or responsibility at work, due to the unfamiliarity of it all, but not you. You adapt well to new situations and generally take things in stride. You make sure to take the time and energy to complete a task as well as you possibly can. You take a lot of pride in your work and want the end result to be the best it can possibly be. We partnered with an introvert fan to create a brand new channel called Introverts Unite. The mission over there is to give you a chance to share your introverted experience and bringing together the introverted community. In the future, we'll be taking requests on different themes which then turn into a video. The content will be exclusive to that channel.  Right now, we have over 17,000 introverts that already joined the family. You definitely don't want to miss out. Okay, back to the video. Number two, you're generally allergic to incompetence. When you're an ISTJ, you easily find the most logical and practical way to solve problems that are presented to you. As such, you don't like to waste your time on ideas and practices that are not practical. When it comes to your relationship with other people, you value competence and level-headedness and prefer to surround yourself with like-minded people who think more like you. Number three, you remember facts and details of past experiences very well. Do you have a really good memory? Are people generally surprised about the little details you remember about the people you've met and places you've been? As an ISTJ, you have a gift for remembering little details and experiences from the past. You are able to pick up on subtle shifts and changes, whether it's in your environment or with people. Do you notice when your teacher rearranges the desks in your classroom? Are you able to pick up on your friend's downcast mood by their hunched shoulders? This type of mental awareness and remarkable memory is a hallmark of the ISTJ personality type. Number four, you enjoy reliving your favorite memories. Do you have an affinity for reminiscing over your favorite memories? Can you close your eyes and recall a past memory and feel like you're really there? As an ISTJ, you have the ability to make the past come to life. You enter into a state of flow when you relive your past memories with lush imagery and vivid details. What's one of your favorite memories to recall and walk through? Number five, you keep your word. When you say you're going to do something, do you mean it?  When you make a commitment to something, you keep your word as an ISTJ. You are someone who is trustworthy and honest, and people generally rely on you to be consistent and dependable. If you happen to let someone down or forget a responsibility, you feel intense shame and frustration over the situation. Number six, you show love through help, not words. Do you struggle to fully express your feelings and affection for people you care about? With the ISTJ personality type, this can be difficult for you because you prefer to show your love through actions instead of words. Instead of flowery words and grand gestures, you show your love by working relentlessly to keep things running smoothly for those you care about. You want to help them and provide for them. You are someone who sees a need that needs to be filled and readily signs up for the task. Though you might not be as vocal about it, your actions speak of your affection for your loved ones through how you help them. And number seven, you use logic before acting on your feelings. Do you follow facts and logic over emotions and feelings? Your heart might be leading you one way, but you choose to follow the facts that are pointing you in a different direction. You are someone who greatly respects truth and puts it on a higher level of priority over emotions, except for in really crucial situations. You'll generally follow the facts over the feelings in a situation. As an ISTJ, you have a realistic and logical approach to life. Do you relate to any of these traits mentioned in the video? Do you think you have the ISTJ personality type? Share your thoughts with us in the comments below. Please like and share this video if it helped you, and you think it could help someone else too. The studies and references used are listed in the description below. Don't forget to hit the subscribe button for more Psych2Go videos, and thank you for watching. We'll see you next time!


Hi, I'm Mike and I'm here showing you this clean beautiful silky floor and that's no thanks to this Roomba right here You see for those of you who live under a rock Roomba's were bots that blew up on the internet They were made to automate grooming and cleaning and to make your life a lot easier They zoom around the house on their own will they clean your floor And then they return to their home where they charge and they feed themselves electricity at night The reality is that these are $300 robotic blind cats that don't know what the hell they're doing and don't actually clean They're utter useless machines, and I wish we can burn them all Useless machines, but I'm going to change that now I could take the time to improve the Roomba and make it better or make my own they can compete with this one and clean better But that'd be supporting the Roomba movement and I'm not up for that So I reinvented the Roomba to have some functionality and do the one thing it was never created to do Make a mess. What do you think about this? Originally filmed a skit where I was dressed up in a suit and I had like a whole studio set up And I was gonna do an infomercial where I sell this Roomba mod to you guys But it didn't work out the way I wanted to so instead I'm gonna add a portion to these videos as I make them where I add a skill to it So in one video I could teach you how to solder in another video I could teach you how to wire in another video I can teach you the basics of Mechanical things and how they work another video maybe today I think I'm gonna go over how 3d printers work and how to actually 3d print something that you designed yourself Each video will have its own skill along with the entertainment value that you're getting from the fun skits and fun robots So let's talk about the actual build here. Here's what you need to make it work On Arduino a servo a battery some cables I opted for a power switch since programming one was annoying and buggy and in work any their fifth grade level arts and craft skills or A 3d printer the way 3d printing works is you design or find an object You'd like to print and put it into a slicing program These are programs that break down your design into printable steps telling the printer where to start what temperature to use Etc. And then all you have to do is take this file called the gcode file Which is pretty much instructions on literally how to print like where it needs to go on the map You plug that into your printer you click print and it will take care of the rest as long as you give it the filament It needs and you choose the right temperatures. You are good to go I've had prints take from 30 minutes all the way up to 20 hours I'm really glad I invested in one so I can spend less time hot gluing cardboard together like a five-year-old and Take a bit more time to design something in a 3d program and print an actual prototype Now back to the video the idea was to have a system very similar to those candy machines Where you put a quarter in and you spin the knob and it puts through a candy There is a gear that spins and there are holes on the bottom and when the gear and the holes on the bottom are Lined up like they are right now things will fall through but the second you rotated a couple clips Now the holes are blocked by the supports for the gear and nothing is actually going to pass through This can virtually hold anything inside of it as long as it fits to the top here and can fit through those holes on the bottom Once you fill it up with whatever you want All you got to do is just slide it into here and it will click in and now it's ready to be put into the Roomba If you're curious with what I mean by Roomba bin, this is my 3d-pinted bin Here is what the one that currently fits in the normal Roomba looks like it's a lot bigger It has filters inside and if you look inside, it's actually empty Because the Roomba doesn't clean at all now all you need to do is actually put the mod in the Roomba Like you would with the normal dust clip and now it's ready to go your homemade Roomba mod now earlier I actually talked about different things I can put in here like nails dog treats dirt Candies I went on with a list And I want to go with dog treats for the sole purpose that I don't have to clean it up and that the dog will So all we got to do is go and get our stinky dog treats They're just like little pebbles that you give to the dog when you train them like this range gonna take a handful and Throw them in our little trusty cylinder bin here now once you're done No, you got to do is pop it back in there You can see she's already all over it All I got to do is power the power switch on to give power to the motor and we're good to go One addition I did is I actually gave it a long wire because the battery wasn't that powerful and there we go It works It's alive. Oh, no, it's not No She's gonna get into it. Is she gonna find it?  Thank you for being here. I hope this was educational and some good entertainment for you As you can see it worked For like 10 seconds. I'm sure if I made a couple of little changes I'd fix it But the dog is all over it and I can imagine if I put anything else in there like dirt or dust or treats or candy or anything like that it would work even better Does any other robots you'd like to see please go and comment them below if you enjoyed the video Like the video if you want to see more of these subscribe to my channel and Subscribe for the dog here


Hey, good morning everybody. Just to take a moment to recognize some of the amazing songs. Thank you very much for coming. They're the same. They're our concert songs. We love you very much. And I want to thank everybody for coming. I want to thank you.


As curators of the modern web, we all have little monsters we battle every day. And if you've ever had a 10-minute conversation with me about web development, you'll know that for me, that monster is usually JavaScript. I am forever battling JavaScript. My curly quotes are in the wrong place, my object doesn't exist, or it just plain doesn't work and refuses to tell me why. But I know that I can use it to build great things. And so I think we're going to have a love-hate relationship until one of us parishes. Now I consider myself a designer who codes. And so while I'll happily admit my struggles with JavaScript to anyone who's willing to listen to me, the monster that I don't tend to confess to is this. I'm not actually very good with color. For years, every site I built used the same color palette, white, black, red, and sometimes if I was feeling really adventurous, yellow. And if you look at my outfit, contents of my suitcase, or my shoe collection, you'll see that I haven't branched out a great deal since. And whilst I've developed an appreciation for color over the years, mostly via painting every room in my house, a different bold color, I still really struggle with getting color right for the web. My approach was often go to a site like coolers.com and hit the space bar over and over again until I land on a palette by chance that I like. And even when I do hit a palette that I like, it's never quite right when I apply it, so I have to tweak it and tweak it and tweak it. I never really felt as though I had a handle on color, but all that changed once I started using style guides. And I'm going to tell you how. But first, we're going to talk about what a style guide is and what we mean when we say living style guides. And then we'll talk about why a living style guide is so great and why it's going to make your life better and make you a better, happier, more productive designer and or developer. And then finally, we'll talk about how to actually get started using them, what you should put in them, and an overview of tools and techniques that will come in handy. And along the way, as promised, we'll be looking at lots of pictures of zombies just to make sure that everybody is paying attention. So a style guide at its core is a set of standards for the writing and design of documents. And you've probably seen one before. There are style guides for all forms of writing, for journalism, for academic writing, for government and law, for scientific writing. And there are style guides for design. These are common to print and branding, but they're still sort of new to the web. Traditionally, you would lay out a style guide in cork or in design or whatever you were using for a page layout, and then you'd print it. And they were often really well designed themselves, but they were quite static. They didn't change very much or very often. And anytime they needed to change, those changes needed to be done in a completely manual way. But on the web, our design systems change and adapt constantly. And so an out-of-date or stale style guide is worse than none at all. So what we need is a style guide that updates continuously as we iterate on our design. So when we talk about a living style guide, that just means that it's constantly updated. And ideally, that happens as automatically as possible, because humans are terrible at remembering to go back and update the documentation, but machines are pretty good at it. And that's really where living style guides get to being magic. So you may notice a lot of terms being thrown around if you read about style guides. And these terms all denote slightly different things. So a toolkit is more about the code itself and a pattern library is more about the individual components. And then you have style tiles and element collages, which are sort of similar but are often divorced from code. There's a lot of overlap here. And they all form this sort of really messy, complicated Venn diagram. So let's not get bogged down in terminology. We're going to talk about style guides here. And when we talk about style guides, what we're talking about is design documentation. A style guide is just a way to communicate and clarify your design decisions. Now, there are lots of reasons why you might want to document your design. The most notable is to improve the consistency of your work. When a project goes on for a long time or has a lot of people contributing, so for instance, most open source projects, it's very common to see a wide variety of styles that are super close but a little bit off. So multiple different shades of gray that aren't really visually distinct from one another, or margins that are one or two pixels different, or lots of sans-serif type faces that look more or less similar. And nobody is immune to this problem. This is a button on eBay's site. You use it to buy a thing. But I looked a little closer, and these are also buttons. And every single one of these is slightly different. The color is different, the gradient's different, they have different shadow effects. Some of them have rounded corners, some of them have arrows, some of them have underlines, sometimes the font size changes. When you see it on one page, it seems kind of ridiculous. And this is where a living style guide can really help. Because what likely happened here is that people didn't know that there were button styles already available. And so they made new ones. Or maybe there was a style guide but it was totally static and the styles changed and nobody updated the document. Seeing everything on one page like this makes it easier to spot those inconsistencies. And you can also use it to document your variables and styles. And when you keep them updated, people know what to use if they inherit your code long after you've left. Now the way we design is becoming more and more componentized, which means that mockups have less meaning and layout is becoming less vital. So adopting a component-based or style guide-driven approach to your workflow can really help to speed it up.  You may already be using style tiles or element collages or whatever in your design process. And if you build those in HTML, you have the beginnings of a style guide already. If you tie that into your build system, you have something that's automatically updating as you change your styles. It can take a bit more time to get started with this sort of thing, but it does lead to faster development in the long run. Your first iterations are a lot truer to your final result and you don't need to repeat work as you move to the development stage. So you can sort of smooth that handoff between design and development. One of my biggest frustrations with modern web development is that I'm always needing to switch back and forth between pages because if I change one thing on one page, it'll change a different thing on a different page. With a living style guide, you have all of the elements that make up your site in one place and you can easily see how changing one of those elements will affect others. And it's that whole everything-in-one-place thing that really leads into improved testing across the board. So you can do better accessibility testing, better visual regression testing, you can do device and browser testing, you can test for performance issues. This is a tool I use called ToteA11y for color contrast and I just load my style guide in my browser, enable the tool and it finds any trouble spots. I'm throwing myself under the bus a bit because every pink thing is where I'm failing in color contrast, so I need to go fix that. And I'll admit to having gotten a little lax about browser and device testing as well lately, but with a living style guide, it's a lot easier to do that testing because again, you can test most everything from a single page. And then there's performance. As more and more people begin to access the web from mobile devices, performance becomes more important and it's not just a development problem, performance really is a design problem and it's something that we need to be thinking about in the design phase. So we can use a style guide to spell out any code rules we might have for a performance or maybe specify our performance budget and we can also use it to prevent duplicating elements. Every style or icon or font file that you duplicate adds to the weight of your page. When you see everything on one page, it's easy to audit the unused styles. So this is a tool called dust me selectors and it scans the page and outputs all of the CSS selectors in your style sheet that aren't being used by your HTML. And if you look here, you can see I have 250 unused styles. My style guide isn't completely built. It's not actually that bad. But if I scroll down to the bottom, I can see all these image and gallery styles that I'm not going to use in my project. And so I can go in, remove those styles from my CSS and save some weight. Design documentation means that not only is every element on the same literal page, but every person is on the same figurative page. Now I love developers, but I think spending all day staring at a terminal window can lead to what I'm going to call a tragic underuse of white space. So sometimes if you're working with a developer, your design can get a bit mangled in the process. But if you have a style guide, you have this documentation that spells out your gutters should be 40 pixels. That implementation is a lot clearer and you increase the understanding and dialogue between developers and designers. This means that we don't need to just hand off a design and abandon it. That process becomes more iterative. And style guides don't just improve your relationship with developers. Spelling out available styles and how to use them is good for everybody you work with. For other designers, for copywriters, for content editors, and for future you. A style guide is also an opportunity to show off a little bit. Many companies are posting them publicly, which allows for more discussion and transparency. And it also shows a commitment to good design, which can help with hiring initiatives. Buffers, for instance, has a link right at the top saying that they're looking for product designers. If you can show that you have a culture of design, designers will be attracted to your organization in much the same way that showcasing your open source contributions does to attract developers. But the number one most important reason to use a style guide is that it will allow you to build more beautiful websites. Seeing everything in one place allows you an overarching and holistic view of how your design system works and how all the pieces fit together, which makes it easier to smooth out any conflicts and ensure that everything's been cohesively designed. Now style guides are pretty flexible. You can basically put whatever you want in them. But if you're stuck for ideas, here are a few things that commonly show up in them. Branding is a pretty obvious place to start. So here's my logo, here's my logo type. Here's where you find the file, so everyone knows where to download the file in a format they can use, and any rules for its use. So maybe you want a 10 pixel gutter around it. Maybe it should never be on purple and it should always be facing that direction. You can also put all the colors that are used in your pallets here, both hex codes and CSS variables, and make them copyable if at all possible. Again, include usage instructions. I like to use really big swatches so I can see how the colors work together. And you can make those proportional to usage. So your primary color could be, say, three times as big as your accent color. You can also include rules for accessibility here. So if you have a certain contrast ratio you're trying to hit, go ahead and include it. This is Yelp's style guide. They have their primary red there, it's called Yelpy Red, which I thought was really adorable. This is a really subtle way to enforce brand and to add personality. And again, this can help with things like hiring initiatives and public perception. Include any typographic styles, so heading, lists, block quotes, et cetera. This is a good opportunity to ensure that your type styles are really consistent. I once audited a site and found five different, more or less the same sans-serif typefaces being used. Every extra font file you use adds to the weight of your page. And it's very easy to accidentally load a lot of weights and styles that you may not be using at all. And I'm quite guilty of this myself. I recently checked my own site and it had nine different font files being loaded, some of which weren't being used. Show buttons and form elements. So active hover and focus states, any primary and secondary buttons, inactive buttons, and all your form elements to make sure that everything fits together. If you're using a grid, it's great to document it. And any other layout structures you might use. So I always set a variable for a gutter and then I have a few rules like you can divide it by two and four and you can multiply it by two but that's about as much as you can do with it. Include a visual representation of your icon library. If it's big, make it searchable. And again, usage instructions. So I use SVG icons for all of my sites and I provide a PHP function for developers to use as well as a short code for content editors to use. And this makes it easy for everyone to pick out an icon and use it. All of the elements that make up your site should be included here. So anything that's repeated more than once. Cards, dropdowns, interactive elements, avatars, feeds, images, captions, galleries, all of that. Let's say you're building a custom WordPress site which I feel is a safe bet. Any custom short codes you might be including should also be documented. This is particularly helpful if you have content editors who might be a bit less technical. And again, you can show the short code and the visual output and the reasons for using it. Include animation patterns as well. So any saved key frames or Bezier curves. It's nice to show how the animation actually works and include rules for how those interactions should work. So you may want to use an ease in function when an object moves into the screen and ease out when it leaves. Having a motion style guide will help your interactions to feel choreographed rather than chaotic. And your style guide is good place to enforce other kind of related stuff like code standards or rules for copy, grammar, and tone. Copy is actually pretty integral to design and to how a site works. For instance, do your headings use sentence case or title case? I've seen lots of websites where they alternate between the two. If you're stuck, I recommend sentence case. It's easier to read and you don't need titles. Tone also is a big part of brands. For the golden standard here, look to Mailchimp's voice and tone guide, which does a great job of communicating personality as expressed via microcopy. Whatever you put in your style guide, it's important to remember that it's documentation. So make sure to explain it as fully as possible. Start with the what. Here is a medium blue color that we use as our primary accent and then move to the how. Here is the hex code for that color and the variable that we use. And for bonus credit, include why as well. So we use blue because it's calming and gentle and serene and if zombies are calmed, they won't try to eat our brains. And don't forget that you can style the style guide itself. Especially when they're automatically generated, style guides on the web can be a little bit boring. So I like to style mine to fit in with the feel of the site. Think of them as an advert for all of the great design you're doing, especially if you're interested in attracting design talent to your organization. If you're stuck and need inspiration, look to all of those great print style guides. So now that you know what to put in one, how do you actually go about making one? The hardest part here really is choosing a tool. There are loads. When I started writing this talk, styleguides.io had 102. Today, they had 105. So trying them all out is sort of logistically impossible. So we're gonna touch on a couple of the major tools you're going to come across in more or less the order of complexity, by which I mean the order in which I tried them. So first up, I looked at static generators. These tools are the easiest way to generate and manage a style guide, especially if you don't want to touch the code, but they're not going to build you a living style guide. This is stylify.me. It's a super basic tool. You just enter your URL and it'll spit out any colors you've used and type styles, and you can download it as a PDF. I'm picking on eBay again here. You can see they suffer from that multiple shades of gray problem. They have multiple shades of off-white as well and an excessive number of type styles. This is a nice, quick way to see what you already have and assess where there may be problems. But it's obviously not living at all. You would need to regenerate this manually every time you update your site. And it's pretty limited to what it's able to pick out of your CSS. For a more in-depth tool, you can try something like Frontify Style Guide, which is a platform for creating and maintaining a style guide. This is great for more traditional and controlled style guides, but it's really closer to those old print guides because it's totally manual. You have to enter all those colors and things manually. And the danger of these tools is that it's very easy to let your style guide get outdated unless you're going to be super vigilant about ensuring it's updated every time you change your styles. So one way to start dipping your toe into style guides that are a little bit more alive is to start by adopting a style guide-driven approach to your design work. So I start my projects by doing wireframes, which I mostly build and sketch. Each component is a symbol, and once I'm finished with the wireframes, I can just go to the symbol library, design each component individually, and I end up with a library of styles and a full mock-up that uses those styles. Now, I like to use Sketch for complicated projects, but a Sketch file isn't alive. And simple projects may be better suited to HTML. WordPress is actually a pretty great tool for HTML wireframes. It's relatively easy to input all your content and then to tweak the functionality and placements a little bit in a skeleton theme in order to mimic the content and functionality of your final site. And if you build your wireframes in WordPress and then you start your design process by building an HTML and CSS style guide inside of your theme, when your style guide is done, your website is kind of done. So what I've been doing lately is I have a bunch of PHP files that I put inside my theme. They're manually coded with a bunch of snippets of markup, and they pull in my main themes, style.css file, as well as some additional styles for the style guide itself. This is all tied to my build system, so it looks in the SAS source files for variables and automatically builds the styles for the style guide. It's pretty simple to implement, and I've been building it up ad hoc as I've been working on more projects. I extracted the code into a plugin. It's at github.com slash seramonster slash zombie style guide. You can feel free to fork it, experiment it with it, complain about it. I like this method because it gives me lots of control. It's tied to my build process, and I can use things like live reload with it. Ended updates with my style.css. So it's a little alive, but it's still kind of only half alive because I need to manually add all those snippets, and if I don't update the markup, the examples won't be up to date. So I wanted to investigate further, and this led me to CSS documentation parsers. There are loads of these, SAS down, style down, hologram, DSS, style.com, but the most popular is KSS, which stands for Nile Style Sheets. It's basically a syntax for the comments in your CSS. So I use drop caps pretty heavily on my site, and the code for those looks like this. With KSS, it looks something like this. Those comments become the text and sections of my style guide. So here you can see my drop caps are in section 2.2, and I've provided the markup for KSS to use as well, and then when I parse the code, I get a style guide that looks something like that. Now KSS is just the syntax. It doesn't actually do the parsing or build the style guide pages itself. For that, you need another tool. I've been using SC5 style guide, which is just a tool that generates the style guide itself from your KSS notation, and you can use it via gulp or grunt, and it has this nice feature where you can edit your variables via the web interface, and it'll save them to your source files, which is kind of neat. It's a little bit ugly by default, so you may want to style it a bit to match your site, and I've been struggling a bit with getting custom styles to work well with it, which is why it looks sort of atrocious right now. So CSS parsers are a bit more alive. You can see the snippets as you're working on the CSS code that refers to those bits of markup, but ultimately you're still maintaining two code bases, and you're still manually writing that content, and you still need to keep those snippets up to date.  And for that, you'll want to look at style guide platforms. These are full-featured applications all on their own, things like Fractal Pattern Lab, Source.js, Rizzo, Fabricator, and they kind of require a bit of a rethink about how you build a site, because you need to start by building the components individually and then piecing together those components in order to build your site. A tested Fabricator, and it was pretty simple to get up and running with. You just run a few commands, and it outputs this ready-to-go style guide, and you use the provided toolkit components in order to build your site. It starts getting really technical here, and I'm not entirely sure how these tools would fit into a typical WordPress setup, but they could be worth investigating if you're working on something that's quite complicated and long-running, or if you're using React or a similar tool to build your front-end, and you already have a componentized set of components. But the bottom line is, you want to find something that fits into your workflow. The more complex your project, the more complex a solution you may need, but a simpler project might warrant simpler tools. So I might not be able to tell you the perfect style guide tool for you, but I can tell you what helped me finally sort out my color problem. So this is what my style guides look like right now. Big swatches of color. I've set all of my colors as SCSS variables, starting with neutral base colors that I use for backgrounds, body text borders, et cetera. Then I include a primary color in three different tints, and then an accent color or two, as well as a highlight color. And this gives me a pretty extensive palette to work from, and I only use those colors. Then my original approach was to just set one primary color and then use SAS's dark and lightened functions to get tints and shades of that color. But if you do that and you look at those colors all together, you can see that it's not quite right.  So we're going to adjust the saturation as well. Less saturation for tints and more for shades. And this is a little bit better, but it's still not quite right, because if you look, the shades are getting kind of bluish, and the tints feel a bit washed out. In order to get our color just right, we need to adjust hue as well. Hue indicates the color part of color, so like red, yellow, purple, and we represent hue as a circle with red at zero, green at 120, and blue at 240. You can break color down into hue, saturation, and lightness. And when we create tints or shades, we've already adjusted both the saturation and the lightness, and we need to compensate for those adjustments by adjusting our hue a little bit as well. The thing about colors is it's just numbers. So to make a darker shade, for instance, you want to shift the hue toward the closest primary color of light. So red at zero, green at 120, blue at 240. So if my original color was 144, my closest primary color is 120 for green, and I shift my hue down a bit and end up at 130. If you're going lighter, you want to shift toward secondary colors. Yellow at 60, sine at 180, and magenta at 300. So my original color again was 144. My closest primary color is 180. I shift my hue up a bit this time and end up at 150. And when we do that, we go from this to this. And that may seem like a super subtle difference, but it's actually a big improvement because when I apply these techniques to my original color palette, instead of this, I end up with this. And ultimately, this has led to my feeling more confident in my color choices, and it's allowed me to build better palettes for my sites. And I never would have figured that out if it weren't for style guides, allowing me to see everything on one page. So that's one monster down. Next up, JavaScript. Thank you. Sarah, thank you. We've had several people declaring over the course of these past two days that design isn't just about making things look pretty, and I think that underlines just how deep and technical design actually can become. Do we have any questions from the room? If so, I'll ask you to follow protocol as before and take to a mic done by the floor. We have a question just done on this side. Thank you. Hello, my name is Mike, and I'm interested in what style guide platforms have you tried out, even if there were more complicated? It was the first time I've heard about those, even though I've used SC5 in cases and I was really happy about how projects went using them. Well, I'm still struggling with SC5, mostly because the custom styles are a bit weird. The only sort of full-featured platform I've tried was Fabricator, and it's honestly probably a lot more involved than something I want. I'm still leaning towards simpler tools. Thank you. I'll try Fabricator out. Let me know how you find it. Thank you. Do we have any more? Is this one approaching from down here? It is. Thank you. Andrew from US, thanks for your talk. Could you go back to that slide so we could get the URL? I did have a question. What's your process with clients? Do you show them these style guides as part of your design process and do you show them working design with it or can you speak to that a little bit? How do you establish this style on a new project, let's say? So I feel like that's always contextual based on the client. I've had clients that I can show a scribble drawn on a napkin to and they understand what I'm talking about. And I have clients who need to see basically a full-blown website before they can visualize it. So I think you have to feel that out to some degree, which is a great vague answer. I think a style guide is understandable and I think in a lot of respects that's actually more representative of what you're likely to be building than a mock-up because when people see a mock-up they tend to think, oh, that's what my website is going to look like. That's not really how the web works anymore. It's different on all kinds of different screens and devices and a mock-up generally doesn't show the interactions either which are becoming more important and things like animations, you can still show in a style guide. So I think with education, you can definitely show those to clients. Thank you, we've got time, maybe for one more? I think we might be done. Oh, no we do, we have one very late entry, just over here. Hello Sam here, thank you very much for a great presentation. I would like to know how having a pretty good style guide can make you more productive with finishing the theme actually. Sorry, could you just rephrase the question a bit? Actually, I wanna know how can style guides make you more productive and influence how you can faster finish your theme on the website. Okay, so the question was how can style guides help to make you more productive? Yeah. Basically, it just helps with getting a workflow up and running more quickly. You can use a style guide, this is going to depend on what your individual process is but you can use a style guide to sort of negate the mock-up stage which is often slow and manual and not necessarily super representative of what your final product will be. You start with a style guide, you can actually get up and running with it really quickly but the real benefit is that it allows you to move more quickly into the development stage of things because you don't have to take a bunch of Photoshop files and recreate them in code. You already have all of those components and snippets ready to work with. So once you're ready to move to the development stage, you can get that through a lot quicker. Thanks. Fantastic. We're gonna wrap it up there. Ladies and gentlemen, can you please thank Sarah Seymour?


What's going on everyone Sam here late in sports cards ripping one box of 20 22 top scroll black baseball hobby for edge H. So good luck edge. See what we got buddy. I'm so locked back in dude my cruise rookie Jeremy Pena rookie and Hoy Park that is to 150 purple mini diamonds refractor auto of Joe Carter 101 out of 150 for the blue Jays Nice one there congrats edge one of the most famous Walk-off home runs in World Series history if not the most Probably the most Nice one there kids that'll do it for your box there edge. Thanks again as always for the support my man We'll get those right out to you buddy


Hey everybody, welcome back to the Deploy STO for production lab part two. So this morning, as you know, most of you were here for Lynn Sun's lab where she talked about how to get started with this to how to use this to. Then we kind of switch gears a little bit to just switch to talking about how to deploy us here for production. So in part one of our lab, and I'm just doing a recap for people that might be just joining, in part one of our lab, we use the instruct platform to launch our lab. And then we deployed the sleep service and the HTTP bin service, just two apps with no STO. And we deployed Envoy not as a sidecar, but as its own pod that's running just like your sleep in HTTP bin. And we showed how you can use Envoy as an independent, basically, a gateway. And then we started adding services to the mesh. We added the HTTP bin application to the mesh and pointed it to only the Istio 183 version of Istio D. So we talked about how to install the Istio control plane and how to set the tag so that it's a particular version to set you up to run multiple versions of Istio. We talked about using the minimal port profile and then breaking apart the Istio operator to multiple files so that you have more control over your control plane versions, your gateway versions, where they get deployed to, what namespace, etc. And then we touched a little bit on observability. We deployed Prometheus and Kiali using the official, their operators. We showed a bunch of configuration on how to configure Prometheus to scrape the right control plane and workload mesh. But we didn't go too much into it because honestly, getting into Prometheus is a whole probably conference on its own. But we did have a lot of examples in there to show how you can get the gist of it. So now if you read the Prometheus documentation, it will make more sense to you on what information you need to set it up on your Istio system. So then that gets us to here. So if you're just joining us, you can skip all of the previous labs that we worked on by, you would go to this URL, add the Deploy Istio production to your study room, start the lab, and then go jump straight to Lab 4, which will take a couple of minutes to run a bunch of scripts, but it should get you to the point of where we are. Any questions? Cool. So the next thing we'll do is use Envoy at the edge. So we're going to use Istio Ingress Gateway and we're going to install the Ingress Gateway. So far, we don't have Ingress Gateway. We've only deployed Istio D and Istio System namespace. We have Envoy running independently, but we don't have an official Istio Ingress Gateway yet. So that's what we're going to do. We're going to create a new namespace for the Istio Ingress, and we're going to deploy Istio Ingress Gateway to that namespace. And then we're going to point it at our Istio D service that's been revisioned, okay? So once that's installed, then we'll talk about how to use, how to create the Istio Gateway resource to handle edge traffic, how to do TLS termination, how to wire it up, how to wire your certificates so that first we'll just give the Istio Ingress Gateway the certs by creating a secret. Then we'll deploy cert manager to have cert manager be the one that's responsible for creating those certificates, creating that secret, and giving it to Ingress Gateway. And then we'll also touch on how you would integrate that with an external PKI like Vault to actually store your root CA. And then finally, we're going to talk about access logging so that you can get information from the gateway on who's calling it, and what type of information it is. When things go wrong, you can get more and more stats. So everyone should be on this screen, on the Instruct platform. They're creating an Ingress Gateway for Istio. All right, cool, let's get started. First thing is let's take a look at the Istio operator file. This is the Istio resource that we used previously to install the Istio D, just the control plane. Keep in mind we used the minimal profile last time. Minimal profile is something that comes out of the box with Istio. When you did that curl command to download Istio, if you open your Istio root folder, I think it's under manifest, and then you'll see a minimal.yaml. That's basically all that minimal profile is, it's using that profile. So now to deploy the Ingress Gateway, we're actually going to set the profile to empty. So we're starting with a fresh clean slate, deploy no components, except the components that I have listed below. So what we have is we've specified that I want to disable autoscaling. So we need to disable autoscaling because we don't want it to scale up and down for our lab, which makes debugging a little bit harder. So this is more just for lab purposes. And then for the components, we're deploying the Ingress Gateway. And then this is where you can specify any customizations you might have for your Ingress Gateway. There was a question on Slack this morning about can you run Istio components and then create an affinity to a particular node? So if you wanted your Ingress Gateways tied to a few set of nodes, let's say you have edge nodes that have internet access, and you only want to run your gateway components on those nodes, then this is a place where you declare that node affinity, whether that's preferred or required, etc. The customizations that we're doing in this lab is we have this pre-stop lifecycle configured. So this basically says it wants Envoy to sleep for five seconds before completely terminating. So that if you have any active connections, give them time to drain. This is a setting that a lot of our production users use. Because they're noticing that as when Envoy is scaling up and down, probably down, that some of their connections are getting dropped because of how quickly it terminates. So this tells it to sleep for five seconds, which gives Envoy a chance to finish handling all the connections before terminating. So now let's create a new namespace for the Ingress Gateway. The common practice up until now has been to deploy the Istio Ingress Gateway system right next to Istio D, right in the Istio System namespace. But now the best practice is to split that up. So we're creating a new namespace called Istio Ingress, and then we're using the Istio Cuddle install command to deploy the Ingress Gateway to this new namespace. So if I list the pods in my Istio Ingress namespace, you can see that I have the Ingress Gateway come up. And then we're gonna set an environment variable so that we can get the IP address of the Ingress Gateway easier. I'm also just going to echo this environment variable that I just set. So that you can see that one, it got set properly, and that two, that it's a normal IP address that you'd be able to use to call your Ingress Gateway. Okay, so Istio Ingress Gateway is installed. It's running, means it's talking to Istio D all as well. So now let's configure this Istio Ingress Gateway to send traffic to my application, and as you know from the lab this morning, that you do that by creating the Istio Gateway and virtual service object. You use the gateway to declare what basically host and port you wanna listen on, and then virtual service to route that traffic to one of the services in your mesh. So we're not gonna look at that virtual service and gateway, but they're already there in this ingress folder. So we're gonna apply those to virtual service and gateway. And then if you do your curl and specify the host of IstioInAction.io and go to the gateway IP address, you should get your response back from the microservice sample that we deployed earlier this morning. All good so far? Great. This session's all about getting information from the various envoy components, right? So this is, traffic is going well, everything is going good. But let's say we want to get more information. We've learned a little bit about how Envoy is configured this morning. Let's say we wanna get that information and take a look at that. So there's IstioCuttleProxyConfig command, and this command is extremely powerful. You can use IstioCuttleProxyConfig to get the Envoy configuration of any Envoy pod, right? Whether it's an Envoy sidecar of one of your pods or if it's the Ingress Gateway, which is also Envoy. So you can point it at any one of these and get the configuration out of it. So you can do a full config dump which will be like thousands and thousands of lines, but you can also specify exactly what you wanna see. So in this case, we only wanna look at the routes that the Ingress Gateway pod is configured with. So IstioCuttleProxyConfig routes and then we're gonna point it at our Ingress Gateway deployment. And then you can see that it's configured to handle this host name. And it's gonna listen on this port and this is the domain. Now if you're good with Envoy configuration and you actually wanna see more details and not just this like simplified table form. Then you can also specify the route that you want and then do dash ojson and then see the full Envoy configuration. Now this is going to look very familiar to you because this morning in the lab, this is where we set the retries as well as the timeouts. That's this configuration. This is what Istio generated for you, okay? So I could also point my IstioCuttleProxyConfig to my HTTP bin service and get a similar output. Next, let's secure this traffic. The gateway that we've created for this example, it's just listening on port 80 and it's not doing any type of TLS. So and in order for you to do two TLS, then you need to provide a certificate that you need to, that the gateway should present to the clients that's calling it. First thing you need, if you wanna do TLS at the edge, is you need to create a secret. And that secret is going to have your certificate and key. So that's what this command is doing is in the Istio ingress namespace, the same namespace where you have your gateway deployment running. You wanna create the secret because Envoy, that Istio gateway Envoy is the one that's doing this edge termination. So it needs access to the secret. So regardless of where you created your gateway resource, your virtual service and gateway resource, those could be in other namespaces. But the secret that you want the gateway to use for edge termination needs to reside in the same namespace as where your gateway is actually running. So that's what this is doing. So it's creating that secret and then once that secret is there, we're going to update the gateway. This time, we're gonna have both. We're gonna have port 80 with no TLS termination. And we also are gonna have port 443 that has TLS simple termination that uses the secret that we just created. So in production, would you do this? No, what changes would you would make? You'd remove this port 80. So let's apply this new gateway. And now, in order to call it, even though I'm using curl, I need to provide that root CA to the curl command. So that it can check that the certificate that the Istio gateway presented it is valid against the CA. Okay, so what we've done is we've generated these certs and then created that secret manually. But in production, you're not creating your secrets with your TLS certificates manually like this. You would use some sort of external tools. So users might not be able to write anything to the Istio Ingress namespace. Users don't want to manage their own certificates and they usually integrate with some external PKI and certificate management tools like cert manager. So let's go through that flow. So let's delete that secret that we've created manually. So once that secret is deleted, if I do that curl command, it shouldn't work anymore. But I think it's still picking up that secret. So once we've deleted that secret, let's recreate it using cert manager. So for that, let's install cert manager. We'll create the cert manager namespace and then download the helm charts for cert manager. And then once you've downloaded the helm charts, do the helm install command and then verify that cert manager is up and running. And we'll give that maybe like 10 more seconds for it to pop up. Right now, cert manager is not integrated with any type of PKI. So it has no way to get that root CA. So we're gonna create a root CA and then give it to cert manager and then cert manager will use that to generate whatever certificates that we ask in. So that's what the next section is doing. It's creating a secret for cert manager to use as a CA. And then once that's done with cert manager, you create this cluster issuer object. And then you tell that object where you want to store the secret that you want it to generate. So we're saying create a secret called cert manager CA certs. Or that's where we're asking it to pick up that CA certs. That's the CA issuer. Once that you've issued that, then now let's ask it to create a certificate. You create a certificate resource and then this is where you would tell it what type of certificate you want. When do you want it to expire, the duration of it, your organization. And then at the very bottom should be the CA that you wanted to pick up. And then the secret name will be the secret that it's going to generate in the Istio ingress namespace. So this is the one that you generated manually in the previous section. Now we're asking cert manager to do it for you. Oops, I copy pasted the wrong thing. And then verify that it got picked up. Wait a couple minutes for people to catch up. This next command will download the secret that cert manager created. And then it's just doing like a base 64 decode. And then using step to inspect the certificate. And what we're looking for is to make sure that the SAN matches. Right here, this X509 V3 subject alternative name. So that has to match the host name that we're going to use to call Istio ingress gateway. Now that this is there in place, now if we call Istio ingress gateway again. And pass it that root CA, we should get a valid response back from our gateway. Everyone with me? Cool. How you would change this in production? You'd probably have something like vault. And you'd have cert manager connected to vault. And vault would have your root CA. Okay, so the next section we're going to start getting towards reducing the amount of configuration that is being passed around everywhere.  Something like less than 20 namespaces. I guess I should really be talking about the number of workloads that are in the mesh, the number of services. So if you're running below 50s or so services in the mesh, then I think that you probably won't run into any of these performance problems related to scope and configuration that's being pushed around from one namespace to another. Now that's extremely simplified, it really comes down to how many namespaces that you're using, the more namespaces the better, in terms of how you're delineating all your workloads. But if you were to have one namespace and I have all your workloads deployed to that one namespace, then Istio doesn't really know which workloads able to talk to what were other workloads. So by default, it's going to think everyone needs to talk to everyone. So every envoy will have to get the full configuration of everything. So that's your workloads and there's also the gateway component. The gateway component needs to know what workloads that the gateway needs to talk to, by default, the gateway has a configuration to talk to all the workloads in the mesh. And that starts becoming a problem for some of our larger enterprise deployments of Istio. So let's take a look at that. So if you use the Istio-Cuttle-Proxy-Config command, but this time instead of routes, let's use clusters. Clusters are all your endpoints, the destinations that you can talk to. And then point that at the Istio-Ingres gateway component. Even in our small environment where we only have just one service in the mesh, look at all of the various envoy clusters that the Istio gateway knows about. You can imagine like in a bigger larger scale environment, this is going to get quickly into like hundreds of entries. And you saw how much JSON goes into defining every one of these clusters. So it's a lot of config that gets pushed around. So, yep, eight minute warning, and then that's the end, okay, wow. Okay, some of the best practices would be to Istio operator has this pilot filter gateway cluster config environment variable that you can define in your Istio operator file, and that tells the gateway to only get the information that there's routing rules defined to. So if you have a virtual service that says gateway needs to talk to product page, then only send gateway the product page information. You don't need to know about any other services in the mesh. So once that's deployed, if you check the proxy config clusters again, we're gonna have to take, give it a couple minutes to actually pick up the change. There, I ran the same proxy config clusters command as before, but this time I only have like three or four entries. So much more simpler. To get access logs for the gateway, you can use the Envoy filter API and then this allows you to be very specific in defining the format that you want your log output to be. So over here, we're saying that we wanna capture the server name, the response flags, the response codes, etc. So if you wanna change this, maybe you want JSON format, this Envoy filter is how you would do it, okay? And then let's apply this access log to the cluster. And this Envoy filter is actually scoped to the Ingress Gateway workload. You can scope this Envoy filter to your workloads as well. So if you just wanted access log for your product page application, this is how you'd go about doing it. You'd set the workload selector field. So once that's done, if I send some traffic again to my application and now check the logs of the Istio proxy container in the Ingress Gateway deployment, you can see that now I have these new access log entries. This is extra, I think enabling on access logging is the number one thing you should do to determine that if there is a problem in your network. If you know that it's not, I have three minutes. If you know it's not a configuration problem, but things are still not working well, enable access log. If it's a small environment, you can just remove the workload selector so that it gets applied to everywhere. And then just check the logs of all the proxies. And then you'll be able to see where exactly your request is being routed to. In this case, this is the Envoy cluster that is being routed to. This is my response code, etc. Okay, so we're done with that lab. So we finished lab four, but we spent all of our time on lab four. But it's a good lab, okay? The next labs, we'll talk about rolling out one service at a time. We did a little bit of this in lab two. You follow the same principles in lab four, where you load one service at a time by doing the kubectl inject, or by deploying a canary version of each one of these services next to your real version. And the canary version will have the sidecar. Your real version doesn't. Once the one with the sidecar comes up, you send some traffic to it, if all is well, then you actually delete the canary.  And now the new services that comes up will get the right sidecar. And you know it's gonna work well. And then there's MTLS rollout, as well as we will dive a little bit more into configuration scope. So like I was saying before, we will do this lab again. If you go to solo.io, look for the events page. You'll see the various workshops that we run. Find the Deploy Istio and Production Workshop. I actually think we're doing one next week. And then yeah, sign up for that. We'll have much more time to go into this in more detail. So with that, I wanna say thank you. And just like before, there's badges and surveys as well. So we'll share these two links in the Slack. Cool? All right, well, thanks for coming everybody. Here.


Hi, everyone. Here's my dog Buddy. Today is Chinese New Year, Lunar New Year. We are part of the Chinese heritage, so we celebrate his Chinese New Year. Today is, this year is the year of the dog, so you'll be seeing Buddy more often maybe in my videos. We'll see. Anyway, I'm taking a break this week visiting in-laws from out of safe, and so you'll see videos starting next Friday. But I just want to say hello, and I'm sure if you have been following my content, you know that there's plenty to catch up on. So I'll put a couple of links in the notes of this video if you want to catch up on some of my best blog posts of late. So I'm wishing you well and I will see you next week.


Hi and how are you all today? The question says a coin is tossed three times and the outcomes are recorded. How many possible outcomes are there? So let us first understand the question. It is saying a coin is tossed three times. Now we know that when we toss a coin, there are two possible outcomes. That is, either we can get head or tails. So first time the coin is tossed, there are two possible outcomes. That is head, tail. Right, now the second time the coin is tossed, then also there are two possible outcomes. Once again, that is head and tail. Similarly, third time, so the third time the coin is tossed, there were again two possible outcomes that are head and tail. So the total number of possible outcomes, number of possible outcomes when a coin is tossed three times is equal to two multiplied by two multiplied by two. That is eight. So our final answer is eight. If this completes the question, take care.


Bacillus species have been shown to be effective in combating plant pathogens due to their ability to produce lipopeptides, antibiotics, and enzymes, as well as promote plant growth and induce systemic resistance. This makes them ideal candidates for use as biopesticides. This article was authored by Jamil Shofi, Huitian, and Mingxian Ji.