You can get a cheap $2 green screen just like I did to achieve this effect. I will show you everything you need in this episode and I will feature one of your channels to help you grow. Let's get started with the green screen. So the first thing is you just need to buy some cheap green fabric or this. What is this? This is just gift wrapping paper. You can get this from any local department store green gift wrapping paper or you can go to your local fabric store, something that looks like this where you can just grab one of these rolls of green fabric. This is what I did. I went to the local fabric store. So this will cost you $2. This cost me $5. Still very, very cheap. And now, as you can see, I've hung my fabric on a white board. Now you can hang it on anything you want, something that just hangs behind you. It could be a clothing rack. It could be taped to your wall, anything that gets the fabric up. And then I've been using OBS, using their chroma key feature, which is right here. And you can see now I'm off the chroma key. Now I'm on the chroma key. That's as simple as it gets to create this effect. Show us your green screen setup. Send us links to your videos down there in the comments below, because we would love to see how you've created your green screen. And how much did it cost you? Now, let's get on to featuring your channel. First I want to spotlight this comment. Rode dogs seven asked George, where'd you get the cloth and for how much? So that answered this question in this episode. And I also wanted a feature. Heal, please. Heal. Yes, that is a channel name, not a command in an MMO.  Hey, George, son pie. I have a question for you. I've been a freedom partner now for a few months and I have to say, I've been very happy with my experiences. Awesome. I'm a small channel and growing little by little. And I think and I thank George and all of his wondrous tips. My wondrous tips. Thank you for that. So the point is he wanted us to give him a review to help him grow faster. And I said, sure, I will feature your channel on the next episode of the George show, because you certainly deserve a spotlight. Your commentary is great, clear and full of energy. And I am watching your videos right now. I was at the time of this comment. So now let's all help Heal, please. He'll get a review. Roll it. Well, what's going on, guys? It's me, yours truly, Kate Carnage, part of Heal, Please Heal Gaming. Thank you so much for taking the time to come to my channel and see my videos and watch my outtakes and watch everything, a little thing here and there that makes me who I am. My main purpose for this channel is games, games, something for you guys to enjoy, something for you guys to kill time with. If you guys are having a bad day, the main thing I want to do is if it's just one person watching one video that I have, it's put a smile on your face. I'm not here for I'm not here for the money. I'm not here for the startup. I'm not here for anything. Frankly, all I'm here for is to give people entertainment to have a great time. That's a great intro, very warm, very friendly. I know you're about gaming. I know you're about putting smiles on people's faces. You're here for the passion. Let's have a look at your playlists on your main page. I see you have your live streams. That's fantastic to have a playlist just for your live streams. All of your popular uploads so I can see what's popular. But that's it. Oh, no, wait, there's a show more. I think that's just more of your popular uploads. I encourage you to put more playlists onto your channel. He'll please heal playlists about all the games that you cover, all the kinds of videos that you have, for example, if you have vlogs, put those in a playlist. Let's have a look at your thumbnails.  That should have its own playlist on the main page. And I also see that you're playing papers. I'm not sure what that is. And a few other games, Battleborn, Open Beta. So very clear thumbnails, very easy to see. I'll move myself out of the way, very colorful. I love your thumbnails. And let's have a look at one of your videos. Battleborn, Open Beta, I'm curious for this, actually. Is yours truly here? He'll please heal. It is Kate Carnage. I am doing my first ever live stream on YouTube. First ever live stream on YouTube before. So hopefully. How did you like it? Hopefully this actually works. Tell us in the comments below so we can all benefit from this. Let's skip ahead. Those are our century. I don't want problems of the century. All right. Oh, those are all right. I'm going to shoot them. I'm like, um, good Jesus Christ. So pretty good gameplay. I really like your commentary, very crisp, very clear. There are pauses in your commentary. I would like to hear you speak continuously.  I think that can make it more entertaining. I hope this helps. What do you think of Heal Please Heal Channel? Tell us in the comments below. And do you feel you deserve a channel spotlight here on The George Show? Send me links to your best content so I can have a look. And I will feature great channels that are up and coming that need just a little bit of exposure to get noticed. And click that eye up there to check out Heal Please Heal so you can subscribe if you like his content. This is the spirit of freedom. We all help each other grow together as a family. And I want all of you to practice the same spirit. Help each other in the comments below. Give each other feedback and comments. And you'll see others do the same for you. And if you haven't already, introduce yourself on www.community.tm.  And we currently have over 120,000 members. I think this is the biggest forum in all of YouTube. All the MCNs on YouTube, 124,000 members right now. And this is the forum that I mean. Introduce yourself. And let's check out who has recently introduced himself. Let me introduce myself. Nine minutes ago, Bung Big Thing said, Hello, my name is Henke. I'm from Indonesia. Hello from Indonesia. I'm new to YouTube and also new to this network thingy. But my friend suggested to me if I made a gaming YouTube channel, I must, I must join the Freedom Network to help my channel. You have a very smart friend. My channel name is Bung Big Thing. And I made it on the 30th of March, 2016. Wow. That's only three weeks ago. Very, very new. And as you can see, one of the benefits of the Freedom Forums is you can link your channel beneath all of your posts so everyone can see your channel and go to it very quickly. Like we are about to for Bung Big Thing. Here is Big Thing's channel. Let's have a look. And by the way, I didn't rehearse this. Let's start with Big Thing. Big Thing first time play. Now I want to try the game Hammer Time. What game is this? Hammer Time. So he's obviously speaking not English. He is from Indonesia. And as I said, I didn't rehearse this. I didn't know what to expect. That channel was a complete surprise. By going there, I just picked the top entry. So introduce yourself and maybe you will get picked in a future episode of The George Show and even if you're not picked, there are so many people who will give you feedback and welcome you to the Freedom Forums. Just like you can see Prology. Prology, Prology welcoming. Welcoming Bung Big Thing as well as Fat Matt and a few other people. Legendary Pulse and Zur HV. All of these people just from a post nine minutes ago. How's that for activity? In fact, we have over a thousand daily active users on these forums so you can be sure that your posts will get read and replied to. Tell me your feedback about the Freedom Forums down there in the comments below. I would love to know how you're using them, how we can improve them and whether you and you've told your friends to sign up. And who am I? I am George Sunpai as you've called me. I am Papa George. I am George, CEO and founder of this beautiful family called Freedom. And you've been watching. And we will grow together as a family because this is the Freedom Family. You are part of it. We are all part of it and we're all growing together. So grow with us and partner with Freedom. That play now button right there on the video bar is all you need to click to get started.


Everybody Matt here for late in sports cards ripping six boxes of 2022 Panini National Treasures football hobby. These are for Harry V Good luck Harry All right, let's do it So lots of room if you want something ripped first up David Montgomery to 99 and Tony Gonzalez for up 20 jumbo Jersey This is six of ten Devonte Adams Actually, it's a patch This is rookie jumbo Jersey to 49 Jelani Woods Rookie dual Jersey to 99 Matt Corral and rookie dual patches eight of 25 Bailey zappy and tyquan Thornton One color on the zappy four colors on the Thornton This is rookie Otto to 99 Zonovan night. Oh, it's a Dylan is top loading today This is one of one printing plate patch Otto is that Brett Kiesel? Yep Brett Kiesel There you go. One of one printing plate patch Otto. This is rookie patch Otto to 99 easy E crossover RPA This is crossover RPA 20 of 25 George Pickens To crossover RPAs in that one. That is Chris Jones to 99 and Justin Fields to 49 focus That is rookie dual jerseys to 99 a mod sauce Gardner rookie Dual relics Jersey and patch to 49 Desmond Ritter This is patch to 49 TJ Hawkinson Come on. Let's see a huge hit Dual jerseys to 99 to a Sunday treasures. Oh, this is nice to 49 That is national archive signatures Lawrence Taylor. That is an awesome looking card Very nice LT could you make that one? Yes, this is Steve Grogan Otto one of ten Greatest Patriot quarterback of all time QB goat What's up Edward? I have some room right now. I'm gonna roughly 20 boxes in cube. I have room This is Justin Jefferson Otto three of 25 Nine of ten rookie jumbo prime signatures. That is an NFL football shield Rookie Otto book a mod sauce Gardner. That is an awesome looking card. There you go. Harry V Nice rookie football Wait, hold on figure out of status rookie jumbo prime signatures NFL shield football relic Mods sauce Gardner. That was to 10 awesome hit. Here comes the full case Treasure chest Cooper cup That is nine of ten. All right. See you Donald Yeah, have a good one Donald Wondale Robinson rookie to 99 and his treasured rookie treasured rookies and 11 of 14 DK Metcalf This is dual patches eight of ten Dak Prescott and CD lamb treasures of the hall dual patches 17 of 25 Ed Reid Rookie partial letter patch to 25. Willis Jones, Jr. All right. Come on. Harry. Let's see a monster This is rookie dual jerseys to 99 Sam Howell and rookie Otto to 99 Jalen Petrae This is Jersey Otto to 99 Mason Crosby Crossover RP actually that's not a crossover right? Oh, yeah, this one's the crossover RPA to 99 Danny Gray Rookie dual relic Otto seven of 25 George Pickens patch and football relics We can do better here in box number two of the case. All right, there's Gino Smith to 99 DK Metcalf to 49 This is jumbo patch to 25 to Neil Hunter Yes, the personal Matthew and quad Jerseys to 99 Jamal Charles Priest Holmes Marcus Allen and Christian a coye. That is an awesome card of four generations of chiefs running backs awesome hit That is patch to 25 Ryan Tannehill dual jerseys to 99 Travis Kelsey and George Kittle is National Archives signatures Ronnie lot 27 of 49 These National Archives signatures are so cool-looking. This is Jersey Otto 10 of 99 Andre Reed and good time to get this one. Yeah This is colossal NFL shield Otto one of one Jordan love Harry V first NFL shield of the case Timmy you call it again. Awesome one of one NFL shield Otto Jordan love Rookie dual relic Otto to 49 Aidan Hutchinson No fresh no pull another shield out of this They didn't name me magic mat because I needed a cute nickname Let's stay that way. There's Jumar Chase the 99 treasured moments and DK Metcalf to 49 This is Jersey to 99 Aaron Jones hired on that energy drink now That's Jared golf patch to 25 and T. Higgins Jumbo Jersey to 49 Tremendous treasures this is jumbo patch to 25 Justin Jefferson Rookie Otto to 35 Arnold Ibequetti. Yeah, Arlie My man, Arnold E This is one of one printing plate Otto Michael Vic nice one of one printing plate Otto This is rookie Patch Otto that is treasured expressions to 99 Rashad white Rookie patch Otto to 49 Matt Corral of 49. All right one box to go for you, Harry See the biggest hit of your break in his last box So Joe Montana to 99 32 of 99 and Kirk Cousins six of 49 Jumbo Jersey to 49 Curtis Samuel and jumbo Jersey to 49 Jamal Williams This is rookie dual patches to 35 Skymore and frame fabric one-of-one That is 1960 Patch Michael Gallup. I guess is that the inaugural season patch? That is Nice one-of-one patch another one-of-one This is rookie printing plate Otto one-of-one Terrell Bernard One-of-one printing plate rookie Otto again. That was Terrell Bernard Notable nicknames Otto Darrell most Johnston to 49 25 of 49 This is To 99 crossover rookie patch Otto Danny Gray and on the back treasured expressions Rookie patch Otto to 99 Kenny Pickett The bronze ink on that one there you go Harry nice way to close out your six box NT football break 59 of 99 So we had rookie jumbo prime signatures a modsauce gardener with the NFL shield on the football Rookie dual patch rookie dual patches to 35 Skymore jumbo Jersey to 49 Jamal Williams Jersey to 49 or jumbo Jersey to 49 Curtis Samuel Jersey to 99 Aaron Jones a patch to 25 Jared Goff Jumbo Jersey to 49 T Higgins jumbo patch 25 Justin Jefferson jumbo patch to 25 That's a the Neil Hunter Quad jerseys to 99 Jamal Charles priests Holmes Marcus Allen and Christian a coye Patch to 25 Ryan Tannehill dual jerseys to 99 Travis Kelsey George Kittle Rookie dual jerseys to 99 Sam Howell that is rookie patch to 25 Bill Jones jr. Dual patches to 25 Ed Reed Dual patches 8 of 10 Dak Prescott CD lamb Rookie dual jerseys to 99 a modsauce gardener Rookie dual relics to 49 Jersey and patch Desmond Ritter Patch 49 TJ Hawkinson dual jerseys to 99 Tua Rookie jumbo Jersey to 49 Jelani Woods Rookie dual Jersey to 99 Matt Corral Jumbo patch to 10 Devontae Adams Rookie dual patches to 25 Bailey Zappie and Taekwon Thornton to 49 Darrell Johnston Jersey Otto to 99 Andre Reed Jersey Otto to 99 Mason Crosby Rookie Otto to 99 Jalen Petrae That was Steve Grogan. I think the yeah, I think that was to 10 10 or 15 uh Justin Jefferson 49 Ronnie Lutz Rookie to 35 Arnold E Cross over RPA to 99 Danny Gray It's a treasured expressions RPA to 99 Rashad White cross over RPA Danny Gray That was to 99 Cross over RPA to 99 easy Rookie Otto to 99 Zonovan Knight Rookie dual relic Otto to 49 Aiden Hutchinson Cross over RPA to 25 George Pickens Rookie dual relic Otto to 25 George Pickens one of one printing plate Otto Michael Vic one of one printing plate rookie Otto Terrell Bernard and her mags One of one framed fabric patch Michael Gallop You know, I think that's their inaugural season patch That's Lawrence Taylor to 49 rookie patch Otto to 49 Matt Corral That's a rookie patch Otto purple Printing plate patch Otto Brett Kiesel one of one and then treasured impressions rookie patch Otto with the bronze ink Kenny Pickett to 99 and Jordan Love one of one NFL shield patch Otto There you go Harry good stuff appreciate the purchase. We'll get these right out to you


Well hello and welcome to another Dev Nation Live. We've had some technical challenges this morning. Our lead presenter is over in Norway and he's having power fluctuations so we might have some excitement. And as always on the chat you can feel free to find me there and ask questions on the chat and we'll try to get those over to our presenter as we can. And you can help each other by basically saying refresh your browser. That's always the trick to this right if you can't hear can't see kind of thing. So let's go and jump right over to Steen who's going to basically show us key cloak and a deep dive demo that he wants to show us to really get this content started and will hopefully his power stays up long enough to see this demonstration. Steen ready to go? Yeah I am. I'll stop by sharing my screen so we can see on my slide. So today we're going to take a little deep dive into key cloak. Last time around for about a month ago we had a presentation on how you can secure your applications and services with key cloak. If you missed that one and you're interested in key cloak then that's worth watching. Today we're not going to focus on how you can secure actually applications and services but we're going to rather be focusing on key cloak and the service itself and a few features that key cloak provides. So recapping for those that are new that didn't join the last session. What is key cloak? Well key cloak is an open source identity and active management solution. It's been designed for modern applications, APIs and services and I think key cloak differentiates itself a bit from the rest of the IM space by the fact that we have developed key cloak to be nice and easy to use for application developers. That is our target audience for key cloak. A quick overview before we start looking at some features. Key cloak provides openly connected and SAML to both and those provide standard ways of securing your applications and services. Key cloak can read users from a number of different sources including you can store users internally in key cloak's own database or you can federate users from a external user store such as open held up, active directory or any custom user store that you may have. We also have support for what we call identity brokering which allows you to delegate authentication to external identity providers. This provides both support for openly connect and SAML to the talk and we also have a Kerberos break so that you can have seamless login between your workstation and your web application. Through the identity brokering feature we also have support built in for a number of social networks. So today I wanted to instead of just having a lot of slides and talking about the features that key cloak provides I wanted to actually show most of the features so primarily today we're going to be going through a demo. The first thing I'm going to do is I'm going to open a key cloak admin console. Through the key cloak admin console I can configure most aspects of key cloak and I can set up my clients, my users and I can configure my realm in general. A realm in key cloak is a space for all your applications and your users so that you can sandbox each from other types of scenarios. So the first thing I'm going to do is I'm going to create the new realm for the demo today. I'm just going to call that demo and I'm also going to give it a nice friendly name for humans. And the next thing I need to do is I need to configure SMTP server for my realm today because I have a few flows where key cloak needs to be able to send emails. So I'm using the Google's SMTP service today which lets me send a few emails each day. But it's obviously not ready for production use because you won't be able to send too many. So you'll need another SMTP server for key cloak for these type of flows. Although now configured that, then I can test that connection by sending a test email to my admin user. And I can go to my mailbox just to make sure that I actually got this message and here you go. We got the message from key cloak so we know that everything is up and running. The next thing I need to do is I need to register clients. I've got an example client I'll be showing in a second and I need to register this in key cloak. So the key cloak knows that this particular client is allowed to authenticate the key cloak. I basically just create the new client. I tell it where the client sits and I give it a name. And this will then set up some a lot of sensible defaults for the client. In which case it's setting up a public client since this is a JavaScript place, it can't authenticate itself directly with key cloak. So relies on these valid redirect URLs to limit who can use this client configuration. Once I've done that, then I can go and I can try my example application. My sample application requires authentication. I immediately redirected the key cloak to log in. And at this point, I can't actually log in because I don't have any users in my realm at this point. I could go to the admin console and I could create the user through the admin console. But in this case, what I want to do is I want to enable use of self registration in key cloak. And I can do that by simply going into my round contact and just enable this feature. I also want self registered users to verify their email address. So I'll enable this feature as well. And now if I refresh my login screen, I can now see that I have an option to register users. So I'm going to quickly register my user. And then keep looking at asking me to verify my email, set this up in the realm itself. I'll go to my inbox. And I've got an email from people to verify my email address. When I click that, I'll be taken to keep up first people then mark my email that valid and then I will be redirected to the application and I will be logged in. And now the application knows some details about me. And the application knows this because it has access to this ID token. And this ID token is a signed token issued by people that gives the application some details about me, including my name. Now, I want to add a little bit extra to this token. I want to add an avatar to this token so that the application knows a little bit more about me and can display a nice little image about me when I log in. To do that, I need to go to my user. And I'll add a new attribute for my user. I'll call it avatar URL. And then I'll need an image. I'm just going to use this one, which is the key code logo. At this point, key code knows about this attribute, but the application is not able to see this attribute yet. I need to map this attribute into the actual token in the sense of the type. And I'll do that by creating a client scope. A client scope allows you to add a reusable scope that can be used along many kinds to be able to add different pieces to the token. So I'll give it a little name, drive-friendly name as well. At this point, I have an empty scope. It doesn't do much at all. So I need to add a few mappers into this scope. This lets me map various different things from key code into the actual token. I'm going to use the user attribute method. I'm going to use call it avatar. And I'm going to use this user attribute. And I'm going to add it into the token with the same name. I can choose here if I want to add it to the ID token and the access token and also the user input endpoint. This lets me decide where I want to issue the token to. So the ID token is aimed at the front-end applications to be able to authenticate the user. While the access token is aimed at the front-end applications to be able to then send to back-end applications or services so that they can then verify the user. Right, so now if I now refresh my token, I don't have to re-log in. Then the user, the token should have contained up. I forgot one little step there. I've created the client scope, but I have to actually give the client access to the client scope. So let's go to the client again and look at the client scope. And here we go. There's an available scope that I need to then add to the client. But this time around, if I refresh my page, so there you go. Now the application has my avatar as well. And I can look in the ID token and I can see that this claim is now available inside the ID token. A few other things I can do through the admin console is I can require that the application needs the user's consent to be able to access the user's account. And that's just a configuration option away. I need to just enable the consent. So now if I log in, I can see that Kikok is now asking me to grant access to this application. So I'll go ahead and give that application that access. Kikok also has the proper roles. We have the proper simple roles and we have the proper composite roles. Composite roles can be nice to use if you want to be able to add a composite role to a group of users, but then be able to manage which particularly roles that belongs to as well in the future. In this case, I'm just going to add a simple role. I'm going to call this user. And I'm going to go to my user and I'm going to add this role to the user. And now if I go to my application again and refresh my token and I'll take a look at the access token, I can see that I now have a few roles in here. And there's a couple of more than just that role that I wanted to add. And the reason for that is that to make it slightly simple for you to set up Kikok, we have this thing called full scope allows that gives the application all access to all the roles that you have. This is not what you really want to use in production. In production, you want to limit down on each individual client to make sure that they only have access to what they need to have. So in case that application is compromised that it can't access other things. So once I've changed this scope now, if I refresh my token again, then we can see that now I only have this particular role that I wanted. Kikok also has support for groups.  And then a group can be used as its own. You can map the group name into the token, and then your application can make decisions based on the group name. You can also decide to add attributes to a group. So in this case, I can add a user type attribute. And I'll call that consumers. And that means that any user in this group will also get this attribute as well. And then you can map that into the token as well. You can also add roles to groups. So as I said before, we are able to read users from other external stores as well. So let's go ahead and try to read some users from an LDAP server I have running locally. All I need to do there is to create a new user federation provider. I'll select the LDAP option. And then I have to configure it a little bit. So firstly, I'm going to select the edit mode writable. That means that you can make changes to the Kiko account management console, which allows users to manage their own account. And these will be written back to LDAP. Or you can make it read only. And you can also use the special mode for on sync, which means that any changes will be kept internally in Kiko and not written back to LDAP. And then I'll choose the vendor order, because that gives me the best initial setup for the particular LDAP server that I'm using. I'm going to tell Kiko where it's fit. I'm going to check the Kiko fit for next, then it can. And then I need to write to tell Kiko where in my directory the users reside. And hopefully I'll do this correct. And then I need to give it credentials to authenticate as the admin. And then I'll check authentication. That was just fine. So I'll go off and save my provider. So now I have a new provider added to Kiko. And I can now choose to synchronize all users from the LDAP server. And I can see here that I have two new imported users from LDAP. So if I'm not quickly go to my users, I can have see that I have three users in my realm. I have the user that self registered. And I have the two users that are imported from LDAP. And we can see if we go into the details for the user, we can see that it links this particular LDAP provider. Okay, so the next thing we're going to try is that we're going to try the indentity brokering feature. I can choose to use any SAML or open ID connect identity providers, your corporate identity providers, or I can use a social identity provider. So in this case, I'm going to use GitHub. And then I'm going to go to GitHub. That's the slash new. And here I can create a new or application. And I need to basically I need to register Kiko inside GitHub for Kiko to be allowed to log in.  And once I do that, I get this client ID, and this client secret that Kiko needs to know so that it can authenticate with GitHub. I will also, since I enabled this verify email option in my realm, I'm going to trust that GitHub actually verified emails. I know that when you register with GitHub, GitHub makes you verify your email address. So I'm just going to trust that. And then I also want to call in this avatar from GitHub as well. So I can add a map onto my GitHub provider that allows me to pull out different pieces from the token issued by GitHub and put that into the user in Kiko. And they have the same attribute, the avatar underscore URL attribute. So now if I go to my application again, and I log out, now I have this option to log in by GitHub. And I need to grant access to Kiko in GitHub. And then I forgot to disable the granting of access to the JS console to have the grant again. And here we go. I'm now logged into the JS console. And you can see my avatar from GitHub and also my name from GitHub. And if I go back to my realm, I can now see that I have this user here, which is my GitHub user. I can look at my identity provider link and I can see that I'm linked to a particular GitHub user. So now if we log out again, we can take a little look at this login screen and see that it's got the key to theme. But perhaps we want this to match our corporate theme or our application theme. I can do this by creating a custom theme and deploy it to Kiko. And then through the admin console, I can now choose my custom theme as a theme for this realm. So if I refresh the login page, I can see the nice and beautiful new theme that I have here. I'm going to switch that back because I find that theme a little bit distracting. There you go. Now let's log it back into the application. And then we're going to take a look at this ID token in its encoded form. So it's a pretty long gibberish type of string. It's encoded in the basic before URL encoding to allow it to be very web friendly. It's got three parts. The first part is the header of the token, the middle part is all your claims. And the last part is your signature. And I also deployed alongside my custom theme, I also deployed this custom extension to Kiko, but let's me verify token. So if I paste in this basic before encoded token, I can now get some details about this. It's actually verifying the token for me, making sure it's signed with the active key. And it's giving me the header of the JSON format and the payload as well as the JSON form. What we're interested in this point is this particular claim here. It says that this token is signed with the RS256, which is an RSA-based signature. What I want to show is that we can actually change the way that the tokens are signed and it won't even affect our current logged in session. So I could change the signing algorithm for the whole round for all kinds, but perhaps I'm trying to understand a new algorithm that I'm going to choose. So I'm going to do it just for this particular application. So I'm going to use ES256, which is a typically curved-based signature. These have very much the same security properties as RSA, but they are less CPU expensive. So if I now go to my application again, I can refresh my tokens so that I get new tokens issued. I don't have to re-log in. And now I get this new ID token. And if I go back in here and then look at the algorithm, I can see that now I've seamlessly changed tokens to use a different signing algorithm. In a similar way to being able to change these signing algorithms, I can also rotate my keys that are used for signing. So in this case, I'm going to create some new keys that I'm going to be using for the signing key pair. I'm going to set a high priority to make sure that these are picked up before the currently active key pair. So if I now go back to my application, I fresh and get some new tokens again, I can then look at the key IP here, which is showing me what the ticker key pair is being used here. And we can see that that starts with LZN. And if I then submit my new token, I can see that that is now using a different key pair. And the reason why this works is that the application has a refresh token. And I can use that refresh token and keep up with Verify against the old keys that are still being used for verifying signatures, but not being used to create new signatures. And then KeyCoke will now issue all new keys that are now signed with this new key pair. So we can take a little look at sessions in KeyCoke. KeyCoke has the concept of having a session, an SSO session.  It makes it very easy for you to invalidate all tokens that were issued for a particular session. So I can see here that my user, DNST is logged into this particular application.  The user himself can also go to sessions in the account management console and can log out from there. So I'm going to go ahead and I'm going to log me out from the admin console. If I go back to my application and I now try to refresh my keys, I'll be redirected to the login screen instead of getting new keys, not because the session is no longer active. So let's also take a little look at the event system that KeyCoke has. So pretty much most events that occur in the system generates an event that we can save them a system in audit, or we can implement a custom event listener that can listen for these events and handle them however you want. And as all other custom things, you can hot deploy these things to KeyCoke for these. So we can also choose to save events in a KeyCoke database, which lets us then see a history of events in the admin console. So if I now, for instance, I go off and I create a new client, then I can go and look at the events that were generated. I can see here that someone created a client, and I can see the idea of the client. I can get some detail about who it was, how they tend to get it. And I can also get the JSON representation for how that client is great. And same if someone tries to log in, and provides an invalid username or password, then I get a login error event happening as well. You can filter and you can decide what events that you want to listen to. Okay, so the last thing I want to show is how customizable KeyCoke is. What we're going to do now is we're going to create the whole custom authentication flow. And in this custom authentication flow, we're also going to use a custom authenticator. And this particular authenticator is something that lets you verify or log in with just providing your email. And you'll get a special link in your email to verify that you are who you say you are. So what I'm going to do, I'm going to make a copy of the current flow that's used for browser-based login. I'm going to get rid of this username and password form. And then I'm going to add a new replacement for it, which I cleverly call the magic link. And then I'm going to mark this as required. And now if I go back to my application, oh, I forgot one thing. I need to actually also, this new flow that I created, I need to select that this is the flow that's going to be used for browser login. So let's give that a go. And here we go. So now instead of being asked for the username and password, I'm now only being asked for my email address. And I can now provide this, and I log in, and I'll be asked to go to my email. I'll do this. And in this email, there's a special link that contains a token that allows Kiko to verify that I should be authenticated, and then I'll be redirected to the application and I'll be logged in. And this is fully custom code that I've deployed separately to Kiko without making any changes to Kiko for having to change the Kiko source code itself. Similarly, I can also make some configuration changes to existing built-in authenticated. So for instance, we have the OTP form here, which is a moment is optional. That means that it's only required if the user has configured it. But let's make it required. And if I now try to log in again, so I'll have to do it through the email, then we can see that my customer authenticator initiated first and I logged in via email. And now the OTP authenticator sticking in and is asking me to set up OTP. And that's because I haven't registered it with this user yet. Once I've registered OTP, then the next time around, I'll be asked to provide a one-time code. So that's it for the slides for today. A few features that might be worth highlighting that we didn't have time to demo today is we're leveraging a project called Infinisban that provides us with high quality clustering capabilities and a caching layer as well. And we also have support for clustering across multiple data centers. We have the account management console, which allows users to manage their own account. They can link to additional social networks, they can set their passwords, they can change their profile, and they can also manage their own sessions, and they can view events associated with their own account. We have something called the authorization services, which hopefully sometime in the future we'll have a definition live session dedicating purely on this. The authorization services allows you to define policies and permissions centrally in Kiko so that you don't have to do that in your applications themselves. Kiko, as I've shown, is highly customizable through a number of SPIs. We have about 100 SPIs that you can develop custom for others for. We have support for X5 or 9 authentication, support for users and for clients. We have everything that you can do through the admin console, you can do through an admin REST API as well. And there's also an accompanying admin CLI tool. We have a client registration service that allows you to create clients through something like Ansible or another provisioning tool, or applications can even register themselves automatically in Kiko. There's also an accompanying CLI for this. And then we, of course, have built-in brute force password protection, we have built-in password policies, and there's tons and tons of more features that you can discover in Kiko. So that's the end of my today's session. If you want to learn more about Kiko, then hit the link to our website, and hit the link to our source code on Kiko as well. If you want to actually try out the demo that I've shown today, there's a link there to the demo. A little note here, I've got a few features that require Kiko 4.5, which will be released next week. If you want to give it a go beforehand, you can, but you have to then build Kiko from source yourself, which is pretty simple if you're familiar with Maven and you have Java and so. If you need some help, or if you have some general questions, you can touch with us on our community mailing list. We're not very active in Stack Overflow, but if you ask us on the mailing list, we're more than happy to help. Also, you can get in touch with us on Twitter. Okay, that is it. Thank you. So, Burr, do we have any questions? Oh, you have a lot of questions. As you always do, we're not going to get through all of these, but you just answered one of them. One question was, is this 4.4? And you just said it's 4.5, so that's an important point, so people who want to replicate this demonstration need to wait for 4.5. The other big question was, when can I get the recording? And I provide the link to the playlist. Just monitor that playlist. You'll see all the donations showing up there as I get, I'll update the playlist as I get the recording as well.  Here's a great one. Question about read-only LDAP. And read-only LDAP connection. Is it planned to make password change possible even with read-only LDAP? In some cases it would make sense to be able to use the key cloak workflow to change and reset the passwords even if the user data is managed outside of key cloak. I think that's a great question. What do you think about that one? Yeah, I think you can somehow achieve it today. You can choose what individual attributes are actually written back to LDAP, but I'm not sure if that... I'm not sure if you can achieve exactly what the person is asking, but LDAP is not my expertise area. So that question is sent to the user mailing list and we'll be able to answer it properly. Very good. And I think I did provide the links to your deep dive demo as well as keycloak.org. There was a question around, well, how do I run this on OpenShift? I found your blog from May 31st on how to run key cloak on OpenShift, which includes the template and the Docker Hub image. That was a bunch of questions that we already answered. At least we had the chat. Hopefully we got that. And here's another great question. Just like today's demo, the last time around, I ran everything on OpenShift. So the whole demo there is running on OpenShift and that's available on GitHub as well. Okay. Fantastic. And then some question about performance numbers. What kind of benchmarks have you guys done to show that this thing scales and what kind of scalability attributes there are? We are still working on that. We basically don't have big enough labs, but we have knowledge about people that are using keycloak with tens of millions of users with hundreds of thousands of open sessions. So it definitely scales. Okay. Are there any plans to support CAS, CAS, with identity brokering? No. We have decided that we're going to focus on OpenID Connect and SAML. However, there are CAS extensions in the community. There is also a WS Fed extension in community. So if anyone is interesting to do a CAS identity provider support and maintain that in community, awesome. Okay. How about SSO with Windows ADFS and IDP? ADFS, I think, can be done through LDAP, SAML or OpenID Connect if I'm not mistaken there. So yes. Okay. And as you said, a lot of these questions probably require more drill down on, in which case the email list is going to be better to go back and forth for these kinds of things. But there's a couple of quick questions here about multi-tenancy that I think could be pretty interesting. So in addition to the Realm Masters, a possible have a Realm that can see and manage other Realms. So my intention is to have supervisors for some Realms. Think of that as submasters. Yeah, no. That's not possible. Directly. However, what you can do is you can use the Identity Brooklyn capabilities to allow users from different Realms to authenticate in a Realm to then manage it. Okay. And then, and we're not going to get through all of these questions.  We have a kind of a 30-minute limit. Do bring them up on the email list, but we're also going to get these questions out of the platform. Get them over to our teams so we can try to respond to them via email ourselves as well. Okay. Because you guys do have tons of great questions. And actually your demo was awesome, by the way. I really enjoyed it myself. You know, having the key cloaked around a little bit. I loved the way you presented that. That was just great stuff overall. I'm pleased I didn't lose power today. So that's good. I know that was and funny enough for the people here on the call. He lost power right before this thing started and all we had was the phone. That's why we're talking to you via the phone instead of the webcam because we know the phone would work. Okay. Well, I think that's good enough for today. Again, we're going to try to get these questions and stuff back offline, if you will. Look for an email from us. Monitor that playlist we mentioned earlier. So you guys can see the recording and do join that key cloak email list we mentioned just because that's the way to kind of really interact with the team, get your thoughts heard, get your questions answered and debate how architectural you would integrate integrate key cloak into your otherwise enterprise systems that you have. Thank you guys so much. But thank you.


take down here. Welcome back to another video. Today we're gonna be checking out my 2022 PlayStation Wrap Up. I do this video every year just to for myself to keep track of everything, but I absolutely love sharing this, sharing my top games that I played this past year. Trophy is different things like that. I know my trophy count is gonna be a lot lower this year because I did not trophy hunts like I have in previous years, but hopefully I will be shocked with some of these results. We're gonna be checking it out. I will try to leave the link to the wrap up so you can check out your own in the description down below, but we're just gonna check this out here and see how accurate it is. It's way earlier this year by the way. This year it was, scroll it up here. This year it did come out about the second week of December and usually this doesn't come out until the end of February. So we're gonna be checking it out here and see. So I have already checked these out for myself, but now that we're recording it obviously is going to show it a little bit different than I already seen. So each of these we will have to click to get into. So the first one here let's just check it out. This past year I played, wow, I played a total of 932 hours. That is between both my PS4 and PS5. Once I got the PS5 I'm mainly playing that now. I have 91 more hours played compared to last year, only 91 more. That is hilarious. So we're gonna scroll down here and my total play time for the PS4 was 818 hours for the PS5, 115 hours which does make sense. My total right here for a number of days played 272 out of 365. That is crazy. My local hours 859 compared to online 73. I do play a lot more local offline games rather than online anymore. I don't really play with Jack or anybody anymore other than playing myself online for Apex or possibly sometimes GTA. I'm gonna scroll down here and it just gives you stats on Horizon Forbidden West which I have yet to get into but it is crazy some of these stats.   So this year I played a total of 56 games. Wow. So out of that here are my top five games for this past year. At first place we have WWE 2K 2022 which is no surprise. I don't have it for the PS5. I only have it for the PS4 but the stats I guess are continuing. It's my most played for this past year which makes sense and it's crazy. Over 50% of my total annual play time was on this game which I play a ton of my universe mode in that because I have a lot of fun doing that. I think that number is really high but 473 total hours played just on that game alone. I think that's really too high. Second place it does make sense as well NHL 2022. This game here 131 hours. Yeah I'm playing a lot of faction mode. No sorry franchise mode on that game and really just having a lot of fun with it so that one being second place does make sense. Next up Grand Theft Auto Online for the PS5. This one here doesn't make complete sense for me. It says 73 hours but I just don't believe it because I didn't play it too much this year. Maybe I did but I think I played Apex Legends a lot more which is fourth place. That is a total of 65 hours played for it so that to me makes complete sense. I've been playing a lot of Apex and going into 2023 I'm going to be playing Apex Legends a ton trying to get a lot more videos for you guys so that does make sense and then fifth place here Far Cry 6. I absolutely love this game. I finally beat it 40 hours total. A lot of fun a lot of stuff to do. Highly recommend that game but yeah that does make sense. For 2022 my favorite genre based on WWE 2K22 is fighting because most of my hours were on that. I played five fighting games. I only earned 51 trophies for fighting games though but yeah had a lot of fun and then it shows the new God of War different stats on it which again I have yet to play so I'm going to just go on and go back to the next one here which is trophy related which I think is going to be very low. 543 trophies for this past year. I'm going to believe it. I think that's about right. I was trying to get around 1000 to 1200 previous years so this year I did not go anywhere close to beating my record but honestly I was not trophy hunting like I was in the past. Now I'm basically playing games on PlayStation on my PS5 games that I want to play games that I'm having fun with not just grinding out trophies and then getting bored of gaming in general. I'm playing games that I want to so that makes sense. We did have a total of eight Platinum's this past year so I didn't break my record there. I think my record for most Platinum's in a year is 16 so didn't come anywhere near that about half of that. We did have 84 gold, 126 silver and 325 bronze so it does make sense and then this is a cool feature. I absolutely love this. My first trophy ever was on WWE 12 back in 2012 February 8th that is crazy and then now Ratchet and Clank or Rift of Pirates which I just Platinum'd and that game is amazing not only to Platinum it's a lot of fun but the game the story everything about it is awesome. A true classic PlayStation game for the PS5 which is great. This one here was recent December 8th now I did obviously that's probably around the time that they ended collecting stats so they can put this out very quick but yeah this game here is a lot of fun how they recommend it and then Gran Turismo 7 is a lot of stats for it which again I've yet to play. Just gonna go back to the last category which is PlayStation Plus here. This past year because they combined PlayStation Plus with PlayStation Now there was 833 games considered part of PS Plus depending on which tier you do have. For this here I spent 64 hours online which makes sense I did claim 19 PS Plus games and my top online game was Gran Turismo Online which I don't believe in I think it should be Apex Legends in my opinion going down here that's really cool that they decided to do that this year so the top monthly games was gonna be FIFA for PS Plus it was offered in May UFC 4 which is offered in February which does make sense that's a great game Dirt 5 which was in January 2022 when it was released for that month Sonic Racing which was March and then we do have Tony Hawk's Pro Skater 1 and 2 which was August so those were the top ones there I didn't see this last time available so most popular Stray was the most popular one followed by Spider-Man Miles Morales followed by Ghost, Assassin's Creed, Red Dead Redemption 2 and then we do have the classics up here which was only available on premium so we have Mafia in first place God of War remastered God of War 3 remastered Tor Story 2 I didn't even realize that was on there that one would be interesting to check out Lego Harry Potter and then Tekken 2 so very very cool that they did keep track of that this year then it has stats on the game Stray and then I'm gonna go back to my dashboard once you click through everything you'll see it just like this where it says the brief little thing on total play time your top games your trophies earned in PlayStation Plus that's each of the categories and if you scroll down here once you're complete you actually get a summary card which shows your annual highlights so it says over here your hours played your trophies earned your PS Plus games the games that you played this past year and it shares the top game that you did play which for me makes sense why it was WWE I'm not sure I'm gonna share that on social media but it's definitely really cool if you keep scrolling down you do earn a trophy sorry in an avatar that you can use based on what your top game genre was so since mine was fighting I literally received this one right here which in my opinion since they all have this character here I'm likely not going to use it's the worst avatar that they released for us as part of the wrap up in previous years it was amazing this year I'm not just not a fan of I don't enjoy that as much so I'm likely not going to use it but you guys can use this code right here if you would like to be able to get this single one here or your code might be completely different if you do have a different genre events was your top one for the past year but yeah these are my wrap up for 2022 I hope you guys enjoyed and I hopefully will remember this year to leave the link down in the description as you guys can check out your wrap up comment down below how many trophies you earned what was your top game for 2022 and what was your favorite game playing this past year but we'll leave this video here hope you guys enjoyed I'll see you guys in the next one please take care peace


Welcome to episode 18 of our Math 1050 class on College Algebra. I'm Dennis Allison and I teach mathematics here at UVSC. In the last episode, we introduced logarithms near the very end of that episode. And if you remember sort of the fundamental idea of a logarithm as a logarithm as an exponent, let me just work a couple problems real quickly here at the beginning to sort of tie today's episode in with the last episode. If we go to the green screen, you remember that if we have an expression something like 4 to the second power is 16, we say this is written in exponential form. But there is another way of expressing this called logarithmic form. And what we do is to take the base over here, base 4, and write that as a subscript. And the number 16 we put inside and the exponent 2 becomes the logarithmic value over here. So the logarithm is equal to the exponent. And we call this logarithmic form. And everything that we discuss in this episode and in the next episode is going to be about logarithms and basically this notion of a logarithm as being this exponent written on the ground. Let me just ask you a couple questions here that also pertain to the last episode. Suppose I were to write the log base 6 of the square root of 6 equals x. Can anyone tell me what x should be there? Steven? One-half. It's one-half. Tell us how you knew that. Well, because you can switch that and make it 6 to the x power is equal to the square root of 6. Exactly. Okay, let me just write that up here first. So in other words, we have an expression given as a logarithmic in its logarithmic form. So what Steven is suggesting is that we convert it to its exponential form because you and I have been working with exponential forms for a long time. Logarithmic forms we just introduced in the last episode, so they're rather new to us. So 6 to the x power, you remember x becomes the exponent equals the square root of x. So then what did you do, Steven? Well, if you take a number to the one-half power, it's the same as taking the square root of it. Yeah, the square root of 6 means that 6 to the one-half power. So it looks like x should be a half. So the number over here should be one-half. Exactly. Now, let's take one more like that. What if we said the log of x is equal to 1,000? Now, I don't have a subscript given here. So what's the base that we assume when I don't put a subscript there? 10. Base 10, yeah. So this is referred to as a common log, or a common logarithm. And if we convert this to exponential form, we'd take, whoops. That's a big number. Yeah, that's a big number, isn't it? Yeah, well let's go ahead and finish this.  So we have 10 to the 1,000 is equal to x. Oh my gosh, well that's a very big number, yes. But we can still work it. Write it out first. Yeah, you know what I actually meant to do was put the 1,000 inside as you can probably imagine. But the answer is 10 to the 1,000 power. So that's okay. Okay, now let's go to the objectives for this course, for this episode. And we have three objectives. First of all, we want to establish four laws of logarithms that we'll discuss first. Then we will show that the inverses of exponential functions are logarithmic functions. So we'll establish that fact using the laws of logarithms. And then we'll finally conclude by discussing the graphs of logarithmic functions and transformations of those logarithmic graphs. Okay, well the four laws of logarithms. Let's look at the four laws right here, the four laws, right here. Four laws of logarithms. Now here's the first law. It says if you take the log base A of a number m and if you add the log base A of a number n, you get the log base A of... Now you would think that if you're adding the log of m and the log of n that you might get the log of m plus n, but it's actually m times n. And the reason for this is you see what we're really doing is adding exponents. A logarithm is an exponent, as we've just mentioned. So if I add the exponent here and the exponent here, I get the exponent on the product. Let me just give you an example. Suppose we were to take the log base two of four and add on the log base two of eight. What is the log base two of four? Two? It's two, yeah. Because remember this is an exponent. In the exponent you would put on base two to get four for an answer. So the question is what exponent would you put on base two to get four for an answer? And the exponent would be two. Two squared is four. So this number is two. And what exponent would you put on base two to get eight? Three. Three. So this logarithm, or this exponent now, is three. So we should get five. Well you see if I use law number one, the log base two of four plus the log base two of eight is the log base two of the product thirty-two. And as a matter of fact, if you take the exponent five and take two to the fifth power, you will get thirty-two. So I've added the exponent on two to get four plus the exponent on two to get eight. And I get the exponent on two that gives me thirty-two. Or in this case three plus two is five. Let me just work another example of that. What if we said the log base seven of five plus the log base seven of four? Now right off hand, I don't know what the log base seven of five is, or what the log base seven of four is, but can anyone tell me what is the sum of those two? Log base seven of twenty. It's the log base seven of twenty, and actually I don't know the value of that number either, but these two expressions are equivalent. This sum is equal to the log base seven of twenty. That's using the first law of logarithms. Okay, now for the second law of logarithms, for number two, the log base A of m minus the log base A of n is equal to the log base A of, well now let's see, when I added the two logarithms I got the product. So if I subtract the two logarithms I should get the log of the, what would you guess? The quotient. The quotient, yeah. Good guess. m over n. I'll put that in parentheses just to set it off. Let's take an example of this. Suppose we were to take the log of a thousand minus the log of ten. Now since I'm not showing a subscript, of course these are base ten common logarithms, and according to this rule I should get the log of a thousand over ten, which is the log of a hundred. Okay, so if I divide a thousand over ten, by ten, then I can reduce that to be the log of a hundred. Now tell me what is the log of a thousand? It's three. Right. Let's see, Ginny maybe you could just sort of explain how you got that. I wrote ten to the x is equal a thousand. Okay, so she wrote ten to the x equals a thousand, where the x is the logarithm value. And I know that that's three. Right, ten to the third, ten to the third is a thousand. So she said, well if this logarithm is the exponent, the exponent is three, so she knew the answer would be three. And let's see, Susan, what's the log of ten? I have no idea. Jeff, what's the log of ten? It's one. Okay. And let's see, I'll do this one on my own. Three minus one is two. Okay, two. But guess what? The log of a hundred is two. So here's an example that sort of demonstrates the rule. But basically the purpose of the rule is to say what we're doing is subtracting two exponents. And when you subtract two exponents, you get the exponent that goes on the quotient. And this is a logarithm, so it's an exponent. And it's the exponent that goes on the quotient of the two. Okay, that is law number two. Let's go to law number three. Law number three says if you have a constant multiple of a logarithm, let me put parentheses around that to indicate this number is outside. So if I have a logarithm and I multiply it by some real number, that's the same thing as bringing the real number inside the logarithm. But you don't put it in front of the m, you put it as an exponent on m. So it's a totally different world here in logarithms. Things don't turn out the way you might first suspect. Let me demonstrate this. Suppose we were to take two times the log base three of twenty-seven. Well, actually that's pretty big. Let's say the log base three of one-third. The log base three of one-third. Now, according to this rule, how would I rewrite that if I bring the two inside? Log base three of one-ninth? Well, it'd be the log base three of one-third squared, which is one-ninth, exactly. So if you bring the two inside, you don't multiply by two, but you make it an exponent. Now let's see if this is really true. What is the log base three of one-third? That is, what is the exponent you'd put on three to give one-third for the answer? Negative one. Negative one, right. So what this really says here is two times negative one. Okay, now, do we get, let's see, that product is negative two. Do we get negative two on this side? Well, if I reduce this, let's see, if I reduce this, one-third squared is, as Stephen just said, is one-ninth. So what exponent would you put on three to give you not nine, but to give you one-ninth? I think that would be negative two, yeah. Three to the negative two is one-ninth. So negative two equals negative two. So this is not approved, but it's a demonstration of that rule. Okay, now we come to the fourth law of logarithms. And you know, if you look in your textbook, you will see other properties of logarithms listed in the section on laws of logarithms, and technically you could make this list longer, but I think the four laws that we're listing here are the ones that are most fundamental, and you can get by, you can get by with just these four. Suppose we have A raised to the log base A of M power. Now you notice I'm putting the logarithm up in the air like an exponent, because the logarithm is an exponent. A raised to the log base A of M, that has to be the same base as what I have down here. This answer is M. So if you take a number A and you raise it to a logarithm base A of M, you'll get M. I think maybe if I move that over a little bit, I can put an example right here beside it. Suppose we have two to the log base two of eight. What will we get? Well, can anyone tell me what is the log base two of eight? Three. It's three, yeah. Because this is the exponent that you put on base two to get eight for the answer. So that's a three. So that's two to the third power, and two to the third power is eight. Yeah, so that's exactly what the rule says. As long as the base here and the base in the logarithm are the same, then the answer will be whatever is inside the logarithm. In this case, it'll be eight. Okay, here's a different problem. What would be E raised to the natural log of seven? You may say, well, Dennis, we don't know what the natural log of seven is. That's okay. I think you'll know what this answer is. Because when I say natural log LN, what base am I referring to? Base E. And so if the base here, in the base in the exponential expression, is the same as the base in the logarithm, then the answer should be seven. Right, should be seven using this rule. Now, this last rule, I think we can actually give a more formal proof for. Let me just erase this. And what I want to do is to prove the rule right here. Because it's sort of a, probably the one that's the most striking, I think, of these four. So let's see. Suppose I want to figure out what is A raised to the log base A of m power. So let's just look at this exponent for a moment. The log base A of m. Now, of course, we don't know what A is or what m is for the moment. But this has some value. Let's say we'll call it x for the moment. Now, how would I rewrite this in its exponential form? A to the x equals m. These two things mean the same thing. Now, what if I replace x with what it's equal to? x is equal to the log base A of m. So A raised to the x, that's the log base A of m power. So all I've done is replace x with what it's equal to. I should still get the same answer, m, and there's our rule. That sounds like a little bit of sleight of hand. But if we kind of summarize it in a different way, it says what we're doing is we're putting a logarithm in the exponential position because the logarithm is an exponent. So if you put it where it naturally goes as an exponent on base A, then you will get the number m for the answer. Okay, we have these four laws spelled out on the next graphic. So let's go to that and just show them collectively here. These are the four laws. I think the only four laws that we need to know is to work the rest of the problems in this episode and in the next episode. First of all, number one says if you add two logarithms together and they're the same base, the log base A of m plus the log base A of n, you get the log base A of the product mn. Number two is sort of the corollary to that that says if you subtract two logarithms with the same base, log base A of m minus the log base A of n, you get the log base A of the quotient m over n. Number three says that if you multiply a logarithm by a constant, you can bring the constant inside by making it an exponent. C times the log base A of m is the log base A of m to the c power. And number four, this last one that we just derived, says if you take A and raise it to the log base A of a number m, then that expression is equal to m. Okay. Now, let's go to the next graphic and we'll see some examples where we can apply these rules. Okay, here we have an example where we want to rewrite several expressions in simpler logarithmic terms and we're going to be using those laws of logarithms that we just saw. Now, let's take, for example, the log base five of 25x cubed. Now, if we change that to a simpler logarithm expression, the first thing I notice is this is a product of two factors, 25 and x cubed. So if I use the very first law of logarithms, the log of a product is the sum of two separate logs. So this will be the sum of the log base five of 25 and the log base five of x cubed. Now, we can reduce each of these. Well, what is the log base five of 25? Two. It's two. Yeah, because you remember, what were you going to say, Jenny? The wrong answer. Oh, the wrong answer, okay. Well, this is an exponent, right? A logarithm's an exponent. It's the exponent you'd put on this base to get 25, so I think we want a square so that'll be a two. And what about this expression? We have the log base five of x cubed. Now, I don't think we can actually give a value to this because we don't know what x is, but there is another way I can write it that makes the logarithm look simpler using one of our four laws of logarithms. David, it looks like you have an idea. What are you thinking? I wasn't thinking. Oh, he wasn't thinking. Okay, okay. I just thought he was thinking. Well, let's see. Now, look, we have an exponent inside, and if there's an exponent inside, I could bring it out as a coefficient. So I'll put that in front and say three log base five of x. Now, you might say, well, Dennis, you're actually using this backwards because when we stated the law, it stated that if you have a coefficient in front, it comes in as an exponent. But you see, it's really a two-way street. If you have an exponent inside, you can bring it out. And if you have a coefficient outside, you can bring it in as an exponent. So here is an expression that's equal to the log base five of 25x cubed, and this has a simpler logarithm expression in it. Now, when you compare these two, the one on the left and the one on the right, you may ask, well, which one technically is simpler? Because this one looks pretty simple. It's just a single logarithm. This one, in a sense, looks more complex. And I guess it's really debatable which one is simpler. This certainly has the simpler logarithm in it. But what's significant here is that we can change logarithms to other forms. We can change what's on the left to the right. And if I go backwards, I can change what's on the right back to what's on the left. Okay, let's do this next one. This is a natural logarithm, so the base is what? Base e. So whenever you see ln, that means it's the natural exponential function, base e. E is about 2.718, more or less. Okay, which law of logarithms would you use to begin to change this? The second law we covered. The second law, yeah. Because the log of a quotient is the... David, what would you write here? Let's see, log... See, the log of a quotient. Pardon me? I'm sorry. What were you saying? Go ahead. Well, we have the log, natural log of a quotient. And by the second law of logarithms, I can write this as a difference. What would the difference be? You could put... Would it be log e? Would you start off log e? No, I'd put natural log of 6. Natural log of 6. Natural log of the numerator. Natural log of e. Minus the natural log of e squared. That was in the denominator. Okay. Now, if you were to write log base e, that's the same thing as ln, which means a little bit more compact. In other words, if you were to write log base e of 6 minus the log base e of e squared, that would be fine. It's just that standard notation is to use this ln rather than log base e. Okay, now, can I reduce either one of these? Jenny, which one or both can we reduce? The log of e squared to just 2. Exactly. Very good. Tell us how you arrived at that. Because ln is base e, and if you're raising it, it's by that fourth law... Right. ...that you wrote down that said that if you have it to raise a power to the same power... Yeah, now, you remember this natural log is an exponent. It's the exponent you'd put on this base. I'll just pencil it in right below it. It's the exponent you'd put on this base to get e squared. Well, I think you'd want to put a 2 as the exponent on e to get e squared. So this expression is equal to 2. Now, the first one I can't reduce. That'll be the natural log of 6, but then minus 2. Here's another way of thinking of it. Let me just rewrite this expression right below it. ln e squared. Now, someone may be thinking, now, if you have an exponent inside a logarithm, can't you bring that out in front? Well, yes, we can, and we would write it as 2 ln of e. And then at this point would say, what is ln of e? That's the exponent you put on base e to get e. That's a first power. So this is ln of 6 minus 2 times 1, and that's ln of 6 minus 2. Ginny found a faster way of getting there because she reduced this using the definition of a logarithm. Here, I used a property of a logarithm, but then eventually I had to go to the definition of a logarithm to get rid of the natural log there. But we get the same answer either way. Okay, now, let's go to the last example. And let's see, let's go back to that graph. You can look at example C. Yeah, we have the log of 10 squared to 10. Now, you know, actually, I should probably put parentheses around this so that it's not misinterpreted because without parentheses, this could be misconstrued as being the log of 10 multiplied times the square root of 10. But what I really mean to do is take the logarithm of this product right here. Okay, well, without understanding, let's continue. Can anyone think of a way of evaluating that using properties of logs? The first law. The first law? Okay, so how would you write this, Stephen? Log of 10 plus the log of root 10. The log of 10 plus the log of the square root of 10. Okay, and what is the log of 10? One. Is one. And what's the log of the square root of 10? One half. One half. And so our answer is three halves. We get rid of all the logarithms that way. Can anyone think of another way of getting the same answer? Let's just go down below. What I'm thinking is, what if we actually combine these? What is 10 times the square root of 10? It's 10 to the what power? Three halves. 10 to the three halves power, yeah. You see, you're multiplying 10 to the first times 10 to the one half, and the rule says when you multiply like basis, you add the exponent. So one plus a half is three halves. And then the log of 10 to the three halves is three halves, and there we have the same answer. Now I'm not saying either procedure is the best way to do it. It's just these are two different ways of applying various laws of logarithms to arrive at this result. Okay, so on an exam, if you took one extra step or one less step than I did, that's fine as long as you're using the rules correctly and you arrive at the correct answer. Okay, let's go to the next graphic, and we'll see another, a little bit different example, but still uses the same laws of logarithms. And let's see, I'd like to be able to write on that graphic if I can. Here we go. Okay, this example says suppose that we have some base, I'll call it B, and the log base B of two is 0.35. And suppose the log base B of nine is 1.12. And this is for some base B, but we don't know exactly what the base is. So the question is to compute each of the following. What would be the log base B of 18? The log base B of 18. Well, now we know the log base B of two and we know the log base B of nine, and I'm thinking that this is the log base B of nine plus the log base B of two, because nine times two is 18. I'm thinking of factoring 18 and then writing the log of each factor separately. And the log base B of 18, I think I can write that in just below here, is 1.12. And the log base B of two is 0.35. And if you add those together, you get 1.47. Now, here's the purpose of this activity. If you know a few logarithms, like in this case I know two logarithms, I can compute other logarithms based upon those. So by knowing just one or two, you can begin to generate a whole list of logarithmic values. Here are some others that we can calculate. I'll put that answer over here, 1.47. By the way, you'll see all these worked out on the website. So if I say something too fast or if you miss writing something down, you can always look on the website and get the details there. The next question is, what's the log base B of 0.25? Well, now let's see. We don't have any fractions or decimals given. We're given the log base B of two and the log base B of nine. Do you see any connection with 0.25 and either two or nine? I'm thinking, here's what's going through my mind. I'm thinking this is the log base B of one-fourth. Because 0.25 is a fourth. And one-fourth is the log base B of two to the negative two power. And that's going to be negative two log base B of two. Okay, here I'm using a property of logarithms. And this number we know, it's 0.35. So this is negative two times 0.35. And that tells me this is negative 0.70. That's the logarithm of log base B of 0.25. Okay, so given as a decimal, we don't recognize it as being related to two or nine, but when we convert it to a fraction and then we convert it to an exponential notation, then I can use a lot of logarithms to allow me to evaluate that. Oh, yeah. In fact, we can do another one in just a minute here. Let's go ahead and do this last one and then I'll make up one or two more. Okay, the log base B of the square root of two-thirds, let's see, let's write that in right here. We have the log base B of two. We have the log base B of nine. How are we going to do this? Well, first of all, how are we going to get rid of the square root? Right. Put a one-half power. In fact, why don't we just go ahead and move the power out in front. I think people know what we're doing here. We're writing this as two-thirds of the one-half power. The one-half power comes out in front. So this is the log base B of two-thirds. Okay, where can we go with that? Well, you can divide it by the quotient rule. Okay, so what will we write? You'd have log base two, log base B is two, minus log base B of one-third. Well, let's see now, if you guys say minus. Or excuse me, three. Yeah, we'll have to put a three there. Okay, now we know the log base B of two, but do we know the log base B of three? It would be to the one-half power, log base B of nine to the one-half. Nine to the one-half power, yeah. So let's write that in right here. One-half times, now this log we know, this is 0.35 minus, and this is nine to the one-half power. That's what three is. So if you put the one-half out in front, then you'll be taking the log of nine, and the log of nine is 1.12. So I'm taking one-half of the log of nine to get the log of three. So this will be one-half times 0.35 minus 0.56. I think I'm just about out of room there, but that's going to be one-half of negative 0.21.  One-half of negative 0.21, and that's going to be negative 0.105. So that's the answer for this problem. Okay, Ginny, you were just saying, would we have problems like this on the test? Yes, we would. And you know, one of the purposes of this is, we are computing logarithms of values that we couldn't find on a calculator. Let me just make up a new set of values. Suppose I have the log base B of, let's say we call this base C. And the log base C of four is, I'll just make up something, 0.14. And suppose the log base C of five is 0.118. So what would be the log base C of ten if you're given those two? How could you get the log base C of ten? Five plus five is ten. Can you do that? Five plus five is ten. Also five times two is ten. So if we think of this as being five times two, see if you have a product inside, you can break it up as a sum of logarithms. So I could write this as the log base C of five plus the log base C of two. Now how can I get the log base C of two? The square root of four. Well take the square root of the four. Yeah. So I could write this as the log base C of five plus one-half the log base C of four because that's actually C of four to the one-half power and I brought the one-half power out in front. Now we know all these numbers. This is 0.18 and this is one-half of 0.14. So we get 0.18 plus 0.07 and that's 0.25. That's the log of ten, log base C of ten. Okay, one more like this. Given those same values, how could I find the log of 25 times the square root of 20 base C? The log of 25 times the square root of 20. Well this is all made up of fives and fours. So I'm thinking we could write this as the log base C of 25 plus one-half the log base C of 20. And this is two times the log of five, log base C of five, and this is one-half of the log base C of four plus the log base C of five. Now we have it broken down into all logs of fours and fives. So this will be two times 0.18 plus one-half of 0.14 plus 0.18 and that's 0.09 plus one-half of 0.32. What is half of 0.32? 0.16. Now what's 0.16 plus 0.09? 0.25. 0.25. You know that's the same answer we got in an earlier problem, but that was for a different base as well. Yes. Two times 0.18, 0.09. Two times, oops, back up here. Yeah, you're right. I made a mistake there. I took half of it and I should have doubled it. Let's back up. That's okay. This should be, thank you, 0.36 plus, now over here we said that was 0.32. We took half of it as 0.16. Oh, you're absolutely right. Different answer, 0.52. Yeah, thank you. Okay, so that's the logarithm of 25 times the square root of 20 using these two given values. Okay, next idea. You know, on your calculator, you only have two logarithm buttons. You have a log base 10 or the common log button and you have the log base E or the natural log button. So you may wonder, Dennis, what if I wanted to calculate on my calculator like the log base three of a number or the log base seven of a number, we don't have buttons on our calculator for that. Well, number one, there would be an infinite number of buttons required to do that because there's log base two, log base three, log base four, log base five. I mean, there's no end to it. But it turns out you don't need any others because you can calculate any logarithm base using the two bases on your calculator, using a formula that we call the change of base formula. Let me just show you how the formula goes and then I'll show you where it comes from. If you have the log base B of M, that's equal to the log base A of M divided by the log base A of the old base B. Now, imagine that base A is a base that's available on your calculator, either base 10 or base E. Then you could convert any other base to a common log or a natural log and you could divide it out. Now, let me first of all show you where this comes from. We'll just write a little proof right below it here. Suppose I'm given the log base B of M that I'd like to evaluate and I don't know how much that's equal to, let's call this X for the moment. Now, what is the equivalent expression for this in exponential form? B to the X is equal to M? B to the X is equal to M. But let's say base B is not one of the bases available on my calculator. So what I'm going to do is I'm going to take the logarithm on both sides of this equation and I'm going to use a base that I know. Let's say I'm going to use, let's say base A is one of the bases available on my calculator and I'm going to take log base A on the other side as well. So on the left I took log base A of B to the X and on the right I took log base A of M. Now, if I bring the X out in front this says X log base A of B equals log base A of M. And if I solve for X X is equal to the log base A of M divided by the log base A of B. But X was equal to the log base B of M. So this is the log base B of M because we were given X was that in the very beginning and now we've calculated X to be this ratio. So the log base B of M is the ratio that we have up here called our change of base formula. Let's go to the graphic up here on the screen the next graphic to come up and we'll see this expressed. The change of base formula as we've just arrived at says the log base B of M is the ratio of the log base A of M over the log base A of the old base B. Now, we can use this to calculate some other logarithmic values and the problem we have there is to find the log base 4 of 15. Now if we come back to the green screen I'm going to do this on my calculator if you can zoom in on this calculator. Okay, so the problem that we had on the graphic was to find the log base 4 of 15 but you notice we don't have a log base 4 button anywhere on our calculator. So what I'm going to do is change this to a logarithm base that I'm familiar with. So let's take the log base 10 or just log of 15 but then I have to divide it by the log of the old base 4. So I'll just take this ratio and evaluate it in this form. So I'll take the log of 15 divided by the log of 4 and the answer is 1.9534 I don't know if you can see that very well on the screen or not but it's about 1.95. Now, just below it let me write this another way. We have the log base 4 of 15 and this time I'm going to change it to the natural log of 15 over the natural log of 4 because I do have a natural log button on my calculator. So I'm going to try taking the natural log of 15 and dividing it by the natural log of 4 and you see we get the very same answer. 1.953445298 So if I had yet some other base like a log base 3 button I could have taken this ratio using a change of base formula. So you know what this tells me is rather than having not enough buttons on my calculator I really have too many. I don't really need both of those. I really only need one logarithm button and I can find any other logarithm base. The reason these two are given is because common logs and natural logs come up probably 95% of the time in applications so they've been kind enough to give them both on our calculators. If we go back to that graphic on the change of base formula let's look at the answers that were computed or is written on the screen. The log base 4 of 15 if you take log 15 over log 4 you get this is rounded off 1.95344 and if you take the log base 4 of 15 the natural logarithm you get approximately the same number again. So this is a formula that allows us to compute logarithms in any other base. Okay now yet another application of these laws of logarithms is the fact that if you have an inverse function excuse me if you have an exponential function like 2 to the x its inverse function will be a logarithm function log base 2 of x. Now it's been several episodes now since we talked about graphs of exponential functions and we have yet to graph a logarithmic function but the fact is that these two functions are inverses and if you think back to some material we covered quite a bit earlier in this course one way of finding out if two functions are inverses is to take their composition and if I take the composition of these two functions on x what I should get for an answer is x if they're inverse functions that is these two functions should undo what each other does and I should get x. Now if I take this composition I think that's exactly what I get. Here's how. The composition of f and g means to take f of g of x. That's just what the composition means. And then to evaluate this I'm going to substitute on the inside for g of x and I'll put in the log base 2 of x. And then what does f do to anything? Well whatever number I put in here the answer will be 2 raised to that power so what does f do to this? It'll be 2 raised to this power the log base 2 of x. Now by our properties of logarithms what is 2 raised to the log base 2 of x equal to? It's equal to x. So it looks like these two functions are inverses because when I took their composition on x I got x. Let's try it the other way around. Suppose I take the composition g of f of x. So that's g parentheses f of x and to evaluate this I'll substitute for f of x f of x is 2 to the x so this is g of 2 to the x and what does g do to that? Well g takes any number and it takes the log base 2 of it so g will take the log base 2 of 2 to the x. Now using another property of logarithms how can I reduce this? If we bring the x out in front this is x log base 2 of 2 and what is the log base 2 of 2? 1. So this is x times 1 r x. So you see in either order my composition of functions on x gives me x so these two functions are inverses of each other. Now let's go to the next graphic. The inverse of a function f of x equals a to the x is the logarithmic function g of x equals the log base a of x that is the inverse of an exponential function is the logarithmic function with the same base and vice versa the inverse of a logarithmic function is the exponential function with the same base. Now this allows us to graph logarithmic functions and here are a couple examples. We want to graph first of all the function g of x equals log base 2 of x and then g of x equals log base 6 of x. Okay let's go to the green screen and look at those. First of all I want to graph equals the log base 2 of x. Now we've never graphed a so-called logarithmic function before but now that we know that this is the inverse of the function f of x equals 2 to the x what I'm going to do is graph that function and then if I flip it across the diagonal line y equals x I should see the graph of the inverse function. So let's do that right here. I'm going to graph the exponential function first of all because we're quite familiar with these from earlier episodes. So we'll get our coordinate plane set up here. Here's the x-axis, here's the y-axis. Now this function, this exponential function has three target points. Can someone remind me what the target points are? Zero one. Zero one, okay we go up one then what else? One two.  Up one half. You go up the reciprocal of the base one half. Okay now we're not graphing the logarithm function we're graphing the exponential function and so this function has a graph that looks like this. Does it have an asymptote? Yes. What is its asymptote? y equals zero. Right y equals zero are the x-axis. Now if I draw in a 45 degree line y equals x right along here if I flip this graph over to the other side if I flip it over to the other side I should see the inverse function appear and the inverse function will be the log base two function. One of the things we pointed out several episodes ago is that exponential functions with bases other than a one not one to the x but any other positive base these are one to one functions because they pass the horizontal line test and therefore they have inverses and it's only today that we're finding out what the inverses are. Now when I flip this over the point one two will become the point two one over on this side should be exactly the same distance either side but my diagonal line's a little bit off and the point zero one when I flip it over will become what? One zero. One zero right here and the point negative one a half let me write that one down negative one one half when I flip it over it'll become one half negative one and even more than that the horizontal asymptote when I flip it over will become a vertical asymptote it'll be the y-axis and my graph will look like this but what I'm graphing here is f inverse of x and f inverse of x is the logarithm function so what I'm graphing is g of x equals the log base two of x now you know it really takes quite a bit of time if we're going to draw the exponential function every time and then draw the logarithm function so here's what I'm going to do to speed this up rather than graphing the exponential function I'm going to keep the target points in mind and I'm going to do everything sideways so you see here where we said we're going to go up to zero one I'm going to go to the right one zero I'm going to go to the right and instead of going over one and up two I'm going to go up one and over two and instead of going back one and up a half I'm going to go down one and over a half the reciprocal of the base and I'm going to plot these three points I'm going to keep in mind that I have a vertical asymptote at the y-axis and I'm going to draw that graph and I'm never going to see this one now if on your homework you draw that graph in that's okay but just be aware that's not part of the logarithm graph that's merely an a to help you graph these so let's do the other example that was on the screen there the other problem was to find the log base six of x or to graph it so part b says to graph the function g of x equals the log base six of x okay here we go this time I'm going to graph it in a faster manner without drawing that exponential function okay so to graph this logarithm function I'm keeping in mind that it's inverse I'll write it over here it's the inverse of six to the x now for six to the x you'd normally go up one so I'm going to go to the right one because I flipped everything across that diagonal line and normally I would go to the right one and up six so now I'm going to go up one and over six one two three four five six right here this is six and how would I get to the third point? go down one and over one six and over one six I'll have to kind of squeeze it in right there and you see this function is coming in not horizontally but it looks a little bit more horizontal than the last one does and it approaches the y-axis very quickly now as the base of the logarithm gets bigger you tend to get flatter looking curves because they turn out so fast and the reason is because the corresponding exponential function turns up so fast let me just graph one more like this and then we'll look at transformations of these graphs suppose I wanted to graph this function capital F of x equals the log of x so I want to graph the so-called common log function well the base is base ten so here's one two three let's say ten is out about there here's one two three four five one two negative five okay x-axis y-axis okay now to graph this quickly what I'll do is just go over one and if I go up one I'll go over ten I will say ten is out there and if I go down one I go over one-tenth now that's even closer to the y-axis than one-sixth was a minute ago and this graph comes in very flat it makes a very sharp turn and it comes down the y-axis and this is the graph of the common log function F of x equals log x you could graph this on your graphing calculator and this is exactly what you would see by the way speaking of calculators on the next exam there will be a portion of the exam where you will need a calculator to compute logarithmic values and so forth but for the graphing aspect you'll need to know how to draw the graphs without a graphing calculator okay can we go to the last graphic here and look at transformations of these functions in this example it says sketch these transformations of fundamental logarithmic functions and these are going to be translations up and down vertical transformations horizontal transformation stretches we're going to be flipping them around so let's take these one at a time first of all we have F of x equals two plus log base four of x what is the two going to do to the graph would it shift it? oh okay can we show the green screen what is this two going to do to the graph here David? it would shift it vertically it's going to shift it vertically because you see this is actually the same thing as writing the log base four of x plus two so this is a vertical shift so I'm going to be graphing one of my fundamental functions log base four of x but I'm going to shift it up to two units so if I mark off my scale okay so when I shift it up to two this is my new origin now from this position I'm going to graph the log base four of x I should go over one unit to the right if I go up one I should go over four units to the right let's see one two three four right about there let's take out those dots this is four and if I go down one I should go over one fourth so those are my three target points and when I draw my graph it still approaches the y-axis it just approaches it from a higher level okay next function let's graph log of the quantity x plus two so back on the green screen we have g of x equals the log of x plus two the log of x plus two well you notice this is different than before we had added a two in front now we're adding a two directly on the x what does that do to the graph Jenny? it's going to shift it to the left two okay so I'm going to be graphing the log base ten but I'm going to be shifting it to the left two so here's how we do it let's see those aren't quite even there okay so if I shift it to the left two this is my new origin right here and that says my vertical that says that my vertical asymptote which normally went through the origin is now going to be going right through negative two so this is the line x equals negative two now from this position I'm going to go over one and if I go up one I'm going to go over eight one, two, three, four, five, six, seven, eight, nine, ten so that's actually eight on the x-axis but it's ten from the new origin or from the asymptote and from the new origin if I go down when I go over one-tenth you notice this time I had to bring my vertical asymptote over with me so my graph looks like this okay we have one more function on that graphic that we want to graph this one is f of t equals two ln negative t now this one's a little fancy here not just because we're calling the variable t that's not really that significant but we have a natural logarithm function what is the two going to do to the graph? vertical stretch it's going to be a vertical stretch and what does the negative do when you put a negative directly on the variable it's a flip but David what kind of flip is that? it's a flip over the asymptote it's going to be a flip around the y-axis so we're going to flip it around the y-axis so you see we're going to have to plug in negative numbers for t so that negative t will be positive so that I can take the natural logarithm so my graph is actually going to be going off to the left-hand side okay let me take that arrow out because I think we're going to need a little bit more space here is there a restriction on t? that t has to be negative? in this case, see on those other graphs t was positive and so when I flip it over now the t's are going to be negative so what I'm going to do is I'm going to go over one unit to the left and normally if I go up one I go over e now I'm going to go up two and over e one, two, three so e is about 2.7 I'll put e right about there because I have to stretch my graph vertically so I went up two and if I go down two I go over one over e which is about a third that's a negative one third and therefore my function is going to look like this now let me just ask you how can I look at this graph and determine what is the domain what is the domain of this graph? remember if we just press the graph onto the t-axis I get the domain there is all numbers from minus infinity up to zero not including zero and what is the range? well if I press the graph onto the y-axis I get the range and it looks like it completely covers the y-axis so the range would be all real numbers okay well I think we're just about out of time here's what we've done today we looked at four fundamental laws of logarithms now those four laws are what make logarithms significant the rest of this would none of this would have happened I've been using those four laws of logarithms through all of this discussion and in the next episode you'll see us use those same four laws of logarithms again as we look at applications of logarithms using logarithmic scales and some other applications so I will see you for episode 19