That's great. All right, as long as you made it to the coffee break, that's awesome. One, I apologize for my voice. I'm just getting over a cold. So hopefully you can hear me okay and I don't go like this on the recording too much. I hope it's not the only time. Just to show you what it was. Great, thank you for coming to my session, Composer 101. You know, as you heard in Dries' keynote that composer is a part of Drupal and if you're just new to it, it's gonna be a great introduction to the basics you need to get going with composer. Not really focused on the Drupal side of it. That's a little more complex but I have some follow-ups for everybody here. So by the end of this, you should be able to use Composer though in your PHP projects and in your Drupal projects. Before I get going, raise the hands. How many people here like live demos? Okay, I too like to live dangerously.  If it craps out, I have a pre-recorded demos and I'll switch to that but if not, we're gonna do some live demoing to show you how simple composer can be. So before we get started, a little bit about myself. Hello, my name's Mike Miles. I'm from Boston, Massachusetts and I work as the Senior Technical Solutions Manager at a digital marketing agency called Genuine. Genuine, we help, we make agile brands. We help brands be fun and innovative across all the technologies that we in full service capabilities that we have. We're not a Drupal shop but we have digital strategists and video production designers and UX and development across a whole bunch of technologies, Drupal just being one of them. That's what I do during the day and night. I run a podcast called Developing Up which is focused on the non-technal side of being a developer. So anything that has to do with your development career but not anything to do with coding. So how to work on a team, how to negotiate, how to say no to your boss or your clients, stuff like that. A new episode's actually coming out in 15 minutes on leadership. So check that out after the session. I mean you can listen to it during the session but I prefer you don't. If you wanna know anymore about me, you can find me online at MikeMiles86. I've been working with Drupal for almost 10 years now doing everything you can think of with Drupal. I help lead the Boston Drupal Meetup and the New England Drupal camp. So if you're ever in New England you should come check out the Drupal scene there designed for Drupal which is in the summer. We have Drees Key Noting which is an exciting reason to come. So you should check that out. So you're a typical developer, happy person that we have, really cool people. In PHP projects it's easy for them to manage a piece of PHP code. A file that they control, that they own, that they write. Developers are happy to do that. Multiple files, no problem. But what happens is if you are writing PHP code or using, you wanna use other libraries you have to start pulling in people's code that you don't control. So this could be for logging. This could be for sending emails. You don't wanna reinvent the wheel. And developers, they can do this. They're not so happy about it because in the repositories they have to add code that they don't control, that they can't change. This is the case if you're using Drupal. Drupal core, you're never supposed to hack core. So they're not that thrilled about doing that. And especially if you have third-party dependencies that have third-party dependencies or you have two dependencies that share a dependency on another library. All of a sudden this starts to get complicated and developers really don't like that because now you're spending a lot more time managing the code than writing the code and differentiating your project to building cool things. And don't even get me started on if there's a security update, like there was two weeks ago for Drupal core, then Z, oh my God, developers hate that. Well, with developers, as a developer, I can say what we don't like is having to spend most of our time maintaining something we don't control and that we can't change. And it's a fundamental truth no matter what your role is, everyone here probably knows this, that every project has limited time and budget. So amount of time when it has to be delivered to the client, to your marketing department, whoever you're building a project for in Drupal, it has to be delivered at a certain time. That means you only have so much time to build it and focus on what you need to accomplish. You only have so much money to hire people to do that.  When what you wanna spend most of your time on is building what differentiates your product, building what you control and focusing your time and energy on that to build as great of a product as you can. This is where Composer comes into place. Composer is a dependency manager for PHP. It's a per-project dependency manager. I hope I'm being recorded. Everything's good. Everything's good, great. Could you just announce if there are some Cs? There are some Cs available. Please move in, fill in. I'll make me feel good about myself. So Composer is a dependency manager for PHP. Like Dries mentioned is, Dries note, there are other technologies that have dependency managers like Node or JavaScript has NPM, Ruby has, I forget the name of it, but what they allow you to do is take that maintenance out of your developer's hands and give it to a computer that can do it reliably and can constantly do it and it handles all that things for you that you don't want your developers have to worry about. So what I wanna talk about today is basically three buckets of things. One, explain the benefits of using Composer and dependency manager on your projects.  I'm gonna outline the basic Composer project structure and setup, how you get Composer going and started. So you can start using it on any project and the typical file structure that you may use and you may see in Composer projects. And then demonstrate the five basic Composer commands that you need to know to get up and running with Composer. So by the end of this conference, conference, well, yeah, by the end of the conference, by the end of this talk, you should be able to set up a Composer project, know the commands to get third party dependencies and know the commands to have Composer manage those dependencies for you so you don't have to worry about them. Sound like a good plan for everybody? I see some head nods, great. All right, so just to illustrate what Composer does, we again have our happy cool developer who is happy to maintain their code but they don't wanna maintain other people's code. So instead of worrying about all those dependencies, the developer just talks to Composer and says, hey Composer, these are the libraries my project requires. These are the versions, these are what I wanna use to make things work. Composer says, great, I'm gonna get those, I'm gonna organize them, I'm gonna see if they have dependencies, I'm gonna get those dependencies, I'm gonna see if those dependencies have dependencies and I'm gonna get those for you, I'm gonna handle it buddy, all good. The developer can also say, hey Composer, I wanna update these, there's been a security update, can you update these packages? And Composer will say, no problem, I got you, I will update them, I will update their updates, I will update their dependencies, it'll be all good. So Composer abstracts all this maintenance and frees up all this maintenance time from your development team so they just have to worry about the code they're gonna write. Now every Composer project has this basic structure. There's the project root and then there might be a Composer.far file which I'll explain in a moment. There's a Composer.json file which is basically the file your developers use to tell Composer what your project requires. There's the Composer.lock file is what Composer uses to keep track of all the projects or the packages it's maintaining for you. I like to think of it as like Composer's database even though it's just a file. And then there's the vendor directory where Composer stores all that third party code so you never have to touch it, you never have to see it. And then there's everything else that has to go into a project. So that could be your custom modules, your themes, whatever type of PHP project you're working on, if it's Drupal or not. Everything else goes in your project. We're not gonna worry about that stuff. Now for security purposes, when you are working on a Composer project, it's ideal that you keep everything related to Composer above your web root. So your JSON file, your Composer.lock file in your vendor directory. The reason for this is you don't want those web accessible since it's code you don't control. So if you have a third party library let's just say an example I know of PHPUnit. If you're writing PHPUnit tests and you're using Composer to manage the PHPUnit library, if that's in your web root, if someone's clever enough, they can find a path to execute PHPUnit tests which may not seem like a big deal but if someone's really smart they can use that to do some sort of injection to your database or really get some details they're not supposed to. So keeping all your Composer project files above your web root is a secure way to make sure that the only thing that's web accessible is the code you control. Now obviously to work with Composer, you need Composer installed on your machine. This is where the Composer.far file comes into place. Composer.far is a PHP archive file. It's like an executable. Composer itself is PHP based and you can install Composer one of two ways. Well, first you can install on Windows, they have a Composer setup file executable that'll help you set it up. Then you can install it on Linux, they have a download page that will explain the steps to download it. So I click there, is the internet working? We'll see. But like I said, there's two ways you can install Composer, globally on your machine or locally. If you're installing globally, the benefit of that you only have to install it once. You install Composer on your machine, you can use it across any projects you have locally, you're good to go. The caveat of that is that anyone on your team, you have to make sure they've installed Composer and because people are gonna install Composer at different times, they may have different versions of Composer. You're introducing that variable of, well, it works on my machine and you don't wanna do that. But you can do it globally if that works for you. You can install it per project and this is where with the project structure I showed, we have the Composer.far in your project route. If you do that, then you can run Composer kind of like Drush, where it's recommended you have Drush per project. You can have Composer per project, you can run Composer in that project and what you know there is that everyone who downloads the project from like Git or wherever, they have Composer already. You know everyone's using the same version of Composer and that alleviates that. The caveat is the way you have to run the command is you have to type PHP first in the command line and then Composer. So it's a little annoying. But let's see what it's like to install Composer on your machine. And this will be our test to see if the Wi-Fi is good enough. So this is the download page on Composer on getcomposer.org. It has three, four PHP lines to run in your command line. They recommend you come here every time you wanna install Composer because the version of Composer changes so does the hash check. So what I'm simply gonna do is I'm gonna copy this PHP line, go in my handy-dandy terminal which I have an empty project. And I'm gonna just paste it there.  And all right, I'm already bored of this. So we're gonna go to the prerecorded version. Skip, skip, skip, skip, skip, skip, skip. All right, so I put in the copy command, it downloads it on my machine. And then what I do is I copy the other PHP code which is gonna do a hash check on that file I downloaded, make sure it works, it's verified. Then you run PHP composer-setup.php. This is the file you just downloaded and this is gonna check on your machine if your PHP settings validate for what Composer needs. And then you can set a file name so you can just call Composer. If everything works, it's gonna say great, Composer is there. Then you can delete the file and you're good to go. So that was quick. So what just happened was I downloaded the PHP file from getcomposer.org. I did a hash check to make sure I got the file I was expecting and it's verified. Then I ran composer-setup.php so that it can check my system to make sure my system has the right requirements. And then it installs Composer which is the composer.far file. And then I removed the setup file from my project directory because I no longer need it because I have Composer set up. So that was locally. After doing that, I'm all set. I have Composer.far in my project. We can do the same thing for the global install. It's the same couple steps. The only difference is once composer.far is added to your project, you're gonna move it into a directory that is relative to your path variable for your machine. So here I'm moving it to user local bin composer. And I forgot to type where I wanna move it to. Great, I wanna move composer.far to a global path variable. In doing that, now I can just run composer from anywhere. So if I actually show this from my terminal because I don't need composer to do that, I already have composer installed. Surprise, surprise. If I type composer, I have composer on my machine. I can run it from anywhere. So globally I can type composer because it's in a variable. It's in a path that's in my path variable. Without it, I have to type, let me clear this for you. I would have to type php composer.far to run composer. So now that you have composer installed, really it's running these four commands and then moving it either into a global location or keeping it for your project. Then what I can do, this is the recorded one, is we wanna start using composer to tell composer what we need. So composer, like I said, it uses a .json file. This is how you interface with composer and say, composer, these are the dependencies my project has. Now, if you're good with JSON, you can write it yourself. It's just a JSON schema file. You give your project information, like your name, the description, the type, which for our case is project. You can provide license information if you want that for your project, like I'm using the MIT license, their GPL license, any author information, an array of authors. The stability of the packages you wanna use, if you leave that out, it's gonna assume you only wanna use stable code. So I recommend you leave that out, especially for production work. The require array, which is what we'll get into, which is where you list all the third-party packages you wanna use for your project. And the require dev, which is another array of packages, which you can tell composer, only install this in my dev environment. So you can do things such as the coder module or drush you can put in there or other tools. But you don't have to write this yourself. You can have composer do it. And I can actually show this live because I have composer installed. So you can run the composer init command. And what composer init does is it brings up an interactive guide to generate that composer.json file. So by default, it's gonna ask for your package name, which is your project name. It'll be your logged in name and the directory you're in. I recommend, like they say, vendor name, client name. So I'll do Drupalcon composer 101. It's gonna ask for a description. This is just metadata. That's good for you and your team. My demo composer project. It's gonna ask for any author information. This could be your team members. I'm gonna leave it default for now. Minimum stability. I'm gonna leave that default because I only want stable code. It's 11 o'clock. I want a type project is what I'm going to be doing. Don't care about licenses for now. Now to ask you for an interactive, would you like to declare any dependencies right now?  So right now I'm gonna say no because we're gonna get into that in more depth. And then what it shows me is that JSON, it's going to generate so I can validate it. Yes, it has my project name, my project description, my author information, and I have empty requirements. So I'm gonna say yes, composer, generate that for me. So now in my project directory, I have composer.json. And if I open that, we're gonna see, that's really big. We're gonna see, it's the JSON file that it showed me it was going to generate. All the information it listed, now I have it available. So once you have composer.json, you can start searching for packages. But the question is, well, where do I find packages? Where do I find PHP code in third-party libraries? If you're using composer and you don't do anything extra, composer is going to look at packages.org. This is the official repository for PHP packages that are installable with composer. You can search for anything here. Search for packages, comes up a big list. You can find Drupal here, but you can't find Drupal modules. So if you want things for, say Drupal, they're Drupal specific, you can say in your composer.json file, where else to look for files? You can add a repositories array to your composer.json file. And there's two types of repositories you can add, one that is a composer one and one that is just for version control systems. For example, Drupal has its own composer packages library, which is available at packages.drupal.org slash eight or slash seven for Drupal seven. If you want to install Drupal themes, Drupal modules, you have to add this to your composer.json file. And this will tell composer when it starts looking for packages, look on packages, also look here to see if you can find any third-party code. You can also add any version control system like any GitHub repo, any Bitbucket repository. It doesn't even have to be a git. Any repository that has code that you want to use as a library, you can add it to your repositories array with type VCS for version control system. Doing this, if you have private packages, private repositories that you want to use for your projects, you can add it here. There's more advanced tips on getcomposer.org on how to do private repositories and add your hash key or your keys to access it and whatnot. But this way you can just link to any project and include it without having to download the code manually. Once you have packages that or repositories where you wanna look for packages, it's time to use composer require. This is the command that will tell composer my project requires this library. My project requires this third-party code for it to work. And when you run composer require, it's gonna touch three things, the composer.json file, the composer.lock file, and the vendor directory. Now, the require command can be run one of three ways. If you just run composer require, that's gonna bring up an interactive search in your terminal to help you find packages based on a keyword. If you run composer require with a vendor package name, it's gonna search all your repositories for something that matches that package name and then get the latest version. And if you run composer require with a package name and a version constraint, which I'll get into in a little bit, it's gonna get that explicit version of that package for your project. So let's try the live internet again. If I run composer require, it's gonna say, hey, search for a package. Tell me a package you wanna look for. Let's say log, right? Having logging on your packages or in your projects is a really good thing. It's gonna go, in this case, it's only gonna look at packages. It's gonna find any projects that have the keyword log in it. And then it's gonna return an array of those. All right, this is boring again. So it's gonna search, and then it's gonna pull up a list that it found, and then it's gonna give you a chance to say, which from this list do you wanna use? Give me the number. Did it show up yet? Man, that's really slow. All right. And once you select it, then it's gonna go back to packages or the repository found that package, get the additional information about that package, such as the versioning, find the latest version, download it and download any requirements that package has. So you see here in this recording that I select monologue, I skip the version constraints, it downloads version 1.23, and then it downloads monologue and a library requires PSR log. Now, one of the things you also notice here in the fourth bucket I have, composer.json has been updated. What composer does when it downloads a package, first it updates your composer.json file with that package information, which I'll show in a moment. Bump, bump. All right. And then it also at the bottom it says writing lock files. The lock file is the composer.lock. This is how composer keeps track of all your packages.  For example, with the monologue package. It has this packages array, it says I've installed monologue, I've installed this exact version, 1.23.0. It has source information like the git repository, it pulled it from any requirements this package has. So this package requires PHP version 5.3.0 and it requires that PSR log package version 1.0 or higher. So when composer installs one, it's gonna check my system to make sure I have the right version of PHP and it's going to download this third-party library, PSR log, and add that to my vendor directory. Now know about the lock file as you do not edit it. Think of it as something you cannot touch. It's generated by composer for composer. It's not meant for human consumption. Look at it all you want. Peruse, window shop, but don't edit it. If you do, then you're gonna screw up composer and it's easy enough to start over with composer but you don't wanna do that. Now when composer downloads packages or package dependencies, third-party code, it puts it in the vendor directory and the way it organizes the vendor directory is based on vendor name and then package name. So for example, in the vendor directory, it would have a composer directory for itself. It has monologue because we downloaded monologue and in monologue vendor, it has the monologue package. Inside that directory, you would have all that PHP code that that package has. And you see it also has the PSR directory and inside that has the log directory. The more packages I download, when I look in vendor, the bigger vendor's gonna get. This is where all my third-party code goes so I don't have to worry about it.   You don't wanna have it in your repo because then you're maintaining it. What you wanna do instead is in all your teams, environments, you have them run composer install, which we're gonna get to in the next section. And on your environments, like your dev or stage, you wanna try to generate what are known as build artifacts that will run composer install for you and download all that code.  So now, we can run composer require with a package name. Let's say we wanna download PHP unit. I give it the vendor and the package name PHP unit. Composer finds the latest version of that on packages. Downloads it and you see it's downloaded a whole bunch of other packages that PHP unit requires. Let me get into what just happened here. So I ran composer require PHP unit. It went to packages, it found information about PHP unit and it got version 5.7, which is the latest version. It updated my composer.json file with PHP unit information in that version constraint. Then it downloaded a whole bunch of packages in my vendor directory. So it downloaded PHP unit, but it looked at PHP units, composer.json file, downloaded all the requirements it had, any requirements they have, downloads all those. Then there's actually this interesting thing where packages in composer can say, hey, you might wanna think about installing these other packages, they're not required, but they'll help you out. So it provides suggestions in command line to say install these other packages. And then finally, it writes the lock file. It updates the composer.lock with all the explicit versions of the packages that downloaded. The third way to run composer require is with the package name and a version constraint. Now, versions in composer are comparable to tags in Git. Actually, they're very one-to-one related. So if you say explicitly, I wanna download version 1.0.1 of this package, you're telling composer, look at the repository for this package, find me the Git branch that matches this number. You can have a V before composer will figure that out. And it gets that exact version. But version constraints can be arranges. So you can say, I want a version of this package that is at least version 1.0, but it's less than version 2.0. I don't wanna break any of my functionality with a major update. So this command here, greater than or equal to 1.0, the space is equal to an and statement. So greater than and equal to 1.0 and less than version 2.0. We'll tell composer for that package, find me the latest version that matches that constraint. We can use a star operator, it's a wild card. So I can say, I want a version of this package, the latest version that matches the constraint of version 1.0.1. So I only want patch updates. This follows semantic versioning, which is major, minor patch that Drupal follows as well. So this will give me anything that matches version 1.0, point whatever the highest number is. You can also use a tilde, which will signify to composer, give me the version that matches below the next major release. So this tilde is actually equal to that version constraint, the second one I listed, greater than or equal to 1.0, less than 2.0. So this is a shorthand way to write it. And you can use a stability flag if you want to get things that are not stable code. So if your composer.json file doesn't list a stability requirement, composer's gonna assume you only want stable working code. Sometimes that won't work for specific packages. In Drupal 8, this is true because a lot of modules are still in beta and alpha. So you may have to add a stability flag and say, look, I know I told you I only want stable code, but for this package, I want an exception. Give me the dev version for 2.0.dev for this package. So this may look like this in your command line. You write composer require, let's say we want B-hat because we like to do all our testing. And we want version 3.3.star. I'm gonna say no suggest here just to hide some output in the demo. So what this is gonna do is composer is going to look at packages, find me a version of B-hat that matches this constraint. So basically anything that's lower than 3.4. And then it's gonna download B-hat and all its dependencies as well. So what happened here is it didn't even tell me what version is gonna install because I told it the version. So the first line was I've updated your composer.json file with that package and that version constraint. We'll look at the composer.json in a moment. Installed all the libraries or all the third-party code that I need to run B-hat and then updated my lock and vendor directory. So now my composer.json looks like this. We have our monologue package which is specific version 1.20.0. PHP unit was 5.7. And then B-hat has that version constraint with a star 3.3.star. So this is great. I have my packages installed and downloaded. Composer is maintaining the versions for me, maintaining their dependencies. I don't have to worry about any of that. I can write my fun code. Now, if you're running the composer require command on your machine, that's all you need to do because it's gonna download the code locally. But again, you don't commit your vendor directory so how do your other team members get that third-party code to work with it? This is where the composer install command comes into play. So the composer install command works with your composer.lock file and your vendor directory. When you run composer install, it's going to go and download all that third-party code for you.   If you don't, what's gonna happen? When you run composer install, composer's gonna look at your composer.json file and use your version constraints to download the packages. What this can lead to is depending when people run that command, they can get different versions depending on your version constraints. If you have a .star, someone can have version 3.3.2 while you have 3.3.1. If you have your lock file, your lock file explicitly states what version to download. It's always major, minor, patched, 3.3.1. If you have your lock file, everyone who runs composer install is gonna get that version.    It's gonna download all those packages and it's gonna install all of them and all their dependencies and you're good to go. You're ready to start running. So composer install looks at what repositories you're depending on. Downloads them all from the lock file, adds them all to your vendor directory, updates the lock file if it doesn't exist. So that's great. So composer init creates your composer.json file. Composer requires how you tell it what packages you want. Composer install is how you get everyone else on your team to have those packages. What happens when there's an update? Well, instead of having to manually have to update a third-party piece of code, even if it's a dependency of a dependency, you can have composer do it for you with your composer.update file, or command, sorry. So composer update will update your composer.json, your composer lock in your vendor directory. It can be run one of two ways. Composer update without any other parameters will look in your composer.json file for all your require and all your dev require packages. It's gonna use the version and trace to find the latest version of all those packages and then it's gonna go ahead and download them. It's gonna upgrade to the latest version if it doesn't have it. Remove the old code, replace with new code. If you run it with a vendor package name, it's only gonna update that specific package. For example, composer update Drupal core. Will only update Drupal core in its dependencies. It won't update any of your third-party modules. So for example, if we run composer update for our B-hat package, so we say B-hat, B-hat, it's gonna use our version constraints in our composer.json to find out if there's latest version from packages in this case. It's gonna update it to version 3.4, and then it's gonna update our lock file and it's gonna update our vendor directory with the latest version of that code and any dependencies it may have. So we see here, it updated from 3.1 to 4.3. But if you run composer, just update on its own with no other commands, it's going to find all your packages that need to be updated and update them all. In this case, monologue had to be updated from 1.20 to 1.23. So you can update your packages pretty simply by running composer update. Following your version constraints, composer's gonna update them. What happens if you wanna remove a package? I find this happens to me a lot when I am starting a new project, I'm building it and I'm testing modules, for example. I use composer in some of my modules, running composer install, Drupal slash path auto. And if it seems like actually I don't need that project, that module in my project anymore, you can use composer remove to get rid of it and get rid of any third party code that it required. So you don't have to manually do that.  So for example, suppose we wanna remove the PHP unit library from our project. You shouldn't do this, you should keep your unit tests. But it's gonna remove PHP unit, it's gonna look at all the dependencies that PHP unit has, cross check them against all my other third party code and get rid of any of the ones that aren't dependencies of another package. So it's gonna remove a whole bunch of things from my vendor directory for me so I don't have to worry about it. So when you type composer remove package and that's the only way to run composer remove is with a package name. It's gonna get information about that package, find its dependencies, check them in your vendor directory, get rid of them if they're not cross dependent for anything else, delete all that code from your repository, remove it from your .json file and remove it from the .loc file. So if you run composer install, downloads your vendor directories, composer update, update some, composer remove for packages you don't need, now what do you do? Now you do everything else. Everything that you need to do on your project and you don't wanna worry about third party code. But the question is, all right, I have all the third party code, I don't know much about, because composer is doing it for me, how do I use it? I'm not allowed to touch the vendor directory, I'm not allowed to touch the .loc file, how can I use PHP unit? How can I use the hat test? How can I use these modules? Well, composer, every time it downloads a package, it updates an autoload.php file, which uses PSR4 autoloading to help you load that class file in those objects without having to know exactly where they are. So all you have to do in your PHP code is you make a require statement to the composer autoload.php file. Now here, for example, this PHP file is in my project route or my web route. So I go a directory above that because everything composer is above my web route. I go to vendor and then autoload.php that composer generated for me. And from here, I can start just calling classes and instantiating objects in composer because the autoload file has handled where that's located, how to load those files. I don't have to know it. I don't have to put paths anywhere in my code. So I can do the autoloader, then I call monologue and create a logging tool. That's great for me. I don't have to know anything about this third-party code except that the autoloader is there and then I installed it with composer. So to recap, composer manages project dependencies for you. It saves you time, your developers' time, your project time so that you can focus on what's important and what differentiates your product is the code that you control, the code that you have to write and maintain. It takes out maintaining those third-party libraries that you have no control over and that you shouldn't add to your repository. You can install composer locally by keeping composer.far that you download running the composer setup in your project directory or globally by moving that to a directory that's accessible by your path. There's benefits and caveats to that. It's to your team's discretion what you wanna do. Composer is composed of three main parts. Composer.json, which has the project and dependency information for your project. Composer.loc, which has the specifics of all your dependencies that composer uses to maintain them. And your vendor directory, which holds all that third-party code, which you do not add to your Git repository. Then your basic commands, composer init, helps you generate that composer.json file. Require, helps you find packages and adds them to your project. Install, allows your team members to download that third-party code. Update, updates your packages to a version that matches your version constraints. And then remove, gets rid of any packages you no longer want and their dependencies. And then you use the autoload file created by composer to load those dependencies into your projects so that you can instantiate them. So I have a couple of resources for everybody here. The first link, bit.ly slash decon18 composer, this is an annotated version of this presentation since you can't hear my lovely raspy voice. You can watch it and peruse through it and read all the comments and see all the code I ran through. Getcomposer.org is the place for composer. They have tons of documentation to get you going further than these basics. I recommend reading their documentation, it's really helpful. Packages.org is a place to find composer packages, PHP packages. You can access it from the web and do a search there or you can use it from your command line. Now that everyone here knows the basics, you should be able to start going with composer on any PHP project, but I assume some of you want to know the more difficulties that have to do with composer and Drupal because it gets a little more complex. There's a great session tomorrow. It's two hours long. It's how to build a Drupal site with composer and keep all of your hair by Matthew Grasmick and Jeff Geerling. That's tomorrow at from 345 to 6pm in room 103B. Everyone here has the tools they need now to be prepared to go into that session and learn the more advanced topics of what you need to do to manage Drupal projects with composer. So I recommend you check it out. Both these people are really smart and I think you'll get a lot away from it. You can also start using your composer skills if you're here on Friday and join us for the sprints. We use composer in Drupal. You don't have to, but it's a great tool to speed up your development and you can help out with the sprints that way. If you have any questions or feedback for this presentation, for myself, I greatly appreciate it. I require it. If I was composer, I'd say I require feedback. So please, if you have any feedback, let me know. I'm here for the rest of the conference. Happy to chat. You can find me on Twitter at MikeMiles86. You can check out my podcast, which just released a new episode on leadership a half hour ago as I was magically here presenting to you all. Thank you, automation. With that, that's the end of the presentation. I have time for questions, so I'll put up the resources link and if you have a question, please raise your hand. After applause. I saw a question here. Yes. The question was, how do you update composer? Great question. Composer itself has an update command. Let me see if I can list it here. Oh, composer. You type composer, it will list all the commands you have available. And I believe there's a self update command. Do I scroll past it? Self update, up at the top here. So if you write composer self update, that'll update your composer.far file to the latest version of composer. Great question. I should have covered that, for sure. So yeah, self update. Composer self update would be the command. Yes. The question was, is there a tool that can generate your composer.json file from existing sites? I think there is. I know, especially in Drupal, there's a drush command that will help you do that. I don't know what the command is off top of my head, but I do know one exists. For other projects, I'm not sure if there is one. I know there is at least one GUI tool for composer. I also don't know the name of that on top of my head, fortunately, but there should be some. So at least drush has you covered. In the back there. Can you transfer the installer profile to other team members? Yes, you can. So the great thing with composer, what you want to add to your repository is your .json file and your .loc file. With that, anytime someone runs composer install, they're getting the install from the .loc file, but that means anyone in your team can run composer update. Anyone in your team can assume command because they have .json file, which is like how you interface with composer. So yeah, you don't have to transfer anything. Anybody can do it. Did I answer your question? Great, in the back there. My argument would be that the composer documentation says to follow their guide. Like I know you can install composer with like Homebrew on Mac or with Appget. I don't know if there's a benefit or not to doing it that way. I will say using the composer commands here, then you're checking the hash value to make sure that you're getting exactly what you want. So there's a little security there, but whatever works for you. I mean, you can also use like Wget to just get composer if you wanted to, but I'd recommend following their guides. Is it typical to check in composer.loc? Yes, it is, and the reason for that is because if you don't, then any time you run composer install is going to read from your composer.json file, and people are gonna end up having different versions based on your various constraints. So unless in composer.json, you say explicit package versions like x.x.x, 1.0.1, then people are gonna have different versions of packages, they're gonna have different dependencies, and that could you, again, it could be like, well, it works on my machine, I don't know why it doesn't work on the server when we installed it a year ago. So if you keep your lock file in there, the lock file has the specific versions. So I'd recommend it in the back. So the question was in terms of automation and running scripts to have it run install and update, should you do both? I would recommend just install and you have a human run update because you want, if you run update, again, your environments are gonna be updating packages to a different version that then your team members may not be using because it's gonna update the lock file and you only want your environments to be using what you tell it to use. So only run update locally, ideally have one person do that. Like I like to do it either right before release or right after release to update and then only have your environments run the install. Yes. Yeah, so the question was in terms of when do you turn it on and off again with Composer by deleting your vendor directory and your lock file? I would say at any time you can delete your vendor directory, it doesn't matter because then as soon as you run Composer install, it's gonna recreate it. For the lock file, that's a tricky question. I would say if I delete it when I know I wanna like update or change the version constraint, I tend to just delete it if I wanna update everything. Cause the problem is once you delete it, again, when you run Composer install, people are gonna have different versions or you're gonna have a different version than everyone. Unless you tell everyone, delete your lock file. So I would only delete my lock file if someone accidentally edited it and you're like, well Composer's not working at all, I'm not getting in the code. Then you're like, all right, let's see what happens when we get rid of it because your .json file does have all the information you need to recreate the project. Had the internet been good enough, you would have seen me delete the lock file and the vendor directory like four times during this talk. But everyone here was using their computers during my presentation. So, no, everyone here is great. Any other questions? No, oh yes, in the back. If you, the question was, if you run Composer update on a specific package, can you tell it a version to update to? I don't think so, I think what it will do is follow your version constraints.   Because it'd be like, well, it's 1.1. But if you say 1.0.star, you run Composer update, it's gonna do <IP_ADDRESS>, whatever the latest version is. So instead you'd wanna do Composer remove and close or require if you wanna give it a specific different version constraint. Correct, if you run Composer update and it does update packages, it's gonna update your lock file because it's getting a different version of those packages, which it keeps listed in that lock file.  Good question, yes. So the question was, Composer works great for Drupal 8? How do you integrate it to an existing Drupal 7 project?   Even though Composer works great with Drupal 8, there's a lot of subtleties that you have to get in place. One of the advanced things you can do in that you'll learn tomorrow, I'm sure, is you can tell Composer, when you install a package of this type, install it in a certain directory instead of vendor. This is a great way to handle modules. You can say, install your modules and decor, contrib. So for Drupal 7, I assume you'd have to set up something similar and then you can still pull your modules in and just make sure the path directories is correct where they're going, where your themes are going. Beyond that, I think it should work pretty well, but I haven't tried it. Yes, ooh, is there any way to tell if there's any packages you have that are no longer being used? I think there is a command that, I'm reading live here, I should have done it. Outdated will show you the version to see if your package is outdated. I know if you do Composer show, it'll show information about that package or info. I don't know if there's one that will say, oh, thank you, Timer. I don't know if there's one that will explicitly say, hey, these packages aren't being used anymore, you should get rid of them. But if you're using Composer to manage all your dependencies, you shouldn't have any abandoned ones left. So if you use Composer to remove, it's gonna get rid of any dependencies that aren't cross dependent. So I don't know how you would end up with, what would abandon dependencies? Good question though, that'd be helpful. Any more questions or another round of applause? Either way works for me. Oh, and I have stickers too, if anyone wants stickers. Always forget to mention that. Yes, I thought for recorded demos, you have to have that. So those are in the annotated versions, you'll find those are there. Hi, I love the way you said what happened. Thank you. Great. Yes, yes, no problem, happy. Thank you, yeah. For the latest updated? Yeah. Thank you. Oh, how to revert. You would have to, if you want to revert, you would have to do like a Composer to remove. Yeah, a Composer to remove, you would have to revert that package, and then require it with a version of strength that matches the previous version.  You'd have to say Composer to remove package, then Composer require package 3.3.star, and that'll get that version of it. So you can't say like revert, but you can say, you can tell what version you want. So that would be the way to do it, yeah. That's a good question. Thank you. So if you do Composer to remove, would it know that it responds all the way to it? No, like in Drupal, if you had like a module enabled, you could still run Composer to remove, because it's just gonna delete the code. And I know nothing about Drupal. But then you can speed up the database and it will come to that. Yeah, yeah, so then if you go to your Drupal site, Drupal's gonna be like, oh, there is something wrong here. But yeah, so Composer won't uninstall it for you. It won't know that's uninstalled, it just knows you want to get rid of that third party code. It relines more people. Yes, yes. Just make sure you have rules in place like how to remove packages or modules, like uninstall, then delete the code. So if your web host doesn't allow you to install Composer, for example, on Acquia, say, right? You have to have the vendor directory there. What you can do is in an intermediary step, like you can either use, we use like internally, we use Jenkins, or you can use like CircleCI, like a CI tool that will build that. And you build in your build script to run Composer install, and then you have that reading to check in to your Acquia repository.   Once you have it set up, it works awesome. But getting that set up, yeah, it's a little confusing. Or you have a separate repo on your machine that you then add it to, or a separate branch. Yeah. Well, what you can do in Acquia, that's cool. What you can do is they have Acquia Pipelines, which is an automation script that you can say, all right, Pipelines, I push code up, run Composer install, install the vendor directory. Pipelines are an additional kind. And depending on like your cloud subscription it is, it's totally worth it. It's probably over $20,000. I think for some it could be like, between like five to nine grand depending on it, but. Some of them, like if you're like enterprise level, you have it included, you need to like turn it on. It's a simple YAML file where you list here the commands to run when I push code to my repository. Check it out. But like, if you use Bitbucket, Bitbucket has pipelines that you can turn on, GitHub obviously has like Travis or Circle that you can use to handle that for you. Yes. So, one to be honest, I haven't used Windows in years, but I would recommend the EXE. They handle a lot of things for you. The only thing with the EXE is it installs it globally. So if you wanted to pair projects, you can still follow the like the PHP commands to download it. They list all this information on their website. But I think, you know, Windows can be a little trickier, right? So it has to be a little bit easier. So they recommend the .exe. We're moving a lot of stuff in Windows. Okay. I mean, all Composer needs to run is PHP. So like those commands are just PHP commands. So if you can run PHP from terminal command line, then you can follow those. Which had that point, as we've been evolving, so that's all good work. So you have like Bitbucket, which might not have an version of .exe, and WSO. We could, we could use it. Yeah. Yeah. If that's, if that's a composer. Yeah, well, I ended up doing it. Yeah, what it'll do, so when you, when you download, when you get the composer set up and you run that, what it does, it checks PHP settings, checks your PHP version, checks some I and I settings. If they don't, if you don't have what you need to run Composer, it's going to tell you, hey, these things are broken. Fix these. If they work, they'll say, great, I'm going to get the hard file and it works. But it'll tell you, if you're trying to install it, I think five, six, yeah. They listen on the website. It'll tell you, it's homework. It's good to know. Thank you for coming. Appreciate it. Thank you very much. Thank you, thank you for coming, I appreciate it. Sure. We have only two developers. Okay. And when we started with Drupal 8 and Composer, it wasn't even when I pushed up to the gig. The second developer gets a pool and it's all like eating down the file owner's and some conflicts and we were really happy to use it. This for Composer files or for Drupal files? For vendors, right? For vendor, right. So that's where I recommend you don't have your vendor directory in your repo. Yeah, that's the game. Yeah, for Aqua, you can do it. Yeah. Yeah, they're recommended to commit. You're right. And that's causing a lot of problems. Yeah, because that'll cause problems. So that's where. Yeah, I meant to share. Yeah, you can do pipelines or some, even your intermediary build system, then you can let that handle it for you and you don't have to worry about it. It's a little more. You should go to the session tomorrow and show them how to come to that stuff, yeah. Yeah. Thank you so much. Yep.


So, the last time we discussed a bit about induced norms and also introduced the spectral radius not norm and today we will continue this discussion about the spectral radius. Okay, so just to recall, so the spectral radius rho of A is defined to be the maximum magnitude eigenvalue of a matrix A. Okay, and we also saw that the spectral radius is a lower bound or any matrix norm. So, if is a matrix norm, rho of A is less than reported norm of A is true for any matrix A. And in fact, if you go back and look at the proof, yeah. So, in fact, so we saw that the spectral radius has this universality property that regardless of which matrix norm you choose, if you evaluate the norm from a matrix A, we are able to do the spectral radius of that matrix A. However, the spectral radius is not a norm. So, we were looking at some other properties of this spectral radius. And so, at the end of the previous class, we were trying to show the following lemma that, so let A be C to the N cross N and epsilon be greater than 0. Then there exists a matrix norm such that in other words, we can find a norm such that you can the norm of this particular matrix is as close to its spectral radius as you wish. Notice that if I mean this is for a specific matrix. So, in other words, if I take a different matrix B, then it is not generally true that norm of B will also be between rho of A and rho of A plus epsilon. So, only for this one matrix A, you can find a matrix norm such that the norm of A is between rho of A and rho of A plus epsilon. So, for the proof of this, I said that we use this short triangularization theorem which we will be proving much later in the course. So, the first step is this, which says that any matrix A in C to the N cross N with eigenvalues lambda 1, then there exists a unitary U and C to the N cross N and upper triangular delta with delta ii equal to lambda i such that A is equal to U Hermitian delta U. This is such a decomposition as possible for any N cross N matrix A. You can always find a unitary U and upper triangular delta satisfying these properties. Now, we will set dt to be the matrix with t, t squared up to t power N on the diagonal and zeroes seven URLs. And then for such a matrix, if I compute, for example, I just, since I went through it a little bit quickly in the previous class, let me just, so here I'll just say compute dt delta dt inverse where delta is the upper triangular matrix you get by doing the short decomposition of this matrix A. So, since I went through it a little bit quickly in the previous class, let me just take a 3 cross 3 example and just show you how this works out. So, dt is t squared tq times this delta matrix will have lambda 1, lambda 2 and lambda 3 on the diagonal. It's upper triangular, so it will have zeroes below the diagonal. And let's say it has delta 1, delta 1, 3 and delta 2, 3 here. And then for a diagonal matrix when you invert it, all the diagonal entries get inverted. So, it's this t inverse t to the minus 2 and t to the minus 3 and zeroes everywhere else. So, if I do this, this is equal to, I'll multiply these two first. So, it is t, t squared tq times, if you multiply this, you'll get lambda 1 t inverse and this will be delta 1, 2, t to the minus 2 and delta 1, 3, t to the minus 3. And this entry will be zero and lambda 2 t to the minus 2 and t to the minus 3, zero, zero, lambda 3, t to the minus 3. So, if I complete this multiplication, I'll get, this will become lambda 1, then delta 1, 2, t inverse this times, then this times the first row will become delta 1, 3, t to the minus 2, then zero, lambda 2, delta 2, 3, t to the minus 1, zero, zero and lambda 3. So, you can see that when you do such an operation, dt delta dt inverse, it will retain lambda 1, lambda 2, lambda 3 on the diagonal. The first off diagonal, the first that is the super diagonal, the entries will all get multiplied by t inverse, the second off diagonal will get multiplied by t to the minus 2 and so on. So, in general, what we have is that dt delta dt inverse is equal to lambda 1, zeros, t inverse delta 1, 2, all the way up to t to the minus n minus 1, delta 1, n, lambda 2, up to lambda n on the diagonal and this will be t inverse delta n minus 1 and n. So, you can fill in the rest of the entries. So, this is how it will look. So, all the first off diagonal, the first super diagonal entries will get multiplied by t inverse, then t to the minus 2, all the way up to t to the minus of n minus 1. So, basically, if I choose t very large, all these off diagonal terms can be made small enough. So, specifically what we will do is we will choose t large enough such that the sum of the absolute values of all the off diagonal terms here is at most epsilon, is less than or equal to epsilon. So, what this means is that if we look at dt delta dt inverse and we consider its L1 norm, what is the L1 norm? It is the maximum column sum norm. So, I will have to take the sum of the magnitudes of the entries in every column and see which column is giving me the biggest number and that is this maximum column sum norm. So, when I take the magnitude of the entries here, I get mod of lambda 1. Here, I will get mod lambda 2 plus mod of t inverse delta 1 2. But the sum of all these entries is at most epsilon and so, this one term in magnitude cannot, the magnitude of this one term cannot exceed epsilon. So, that is also going to be smaller than epsilon. So, the this column, this the L1 norm of this column can be at most mod of lambda 2 plus epsilon. The L1 norm of this column also can be at most mod of lambda 3 plus epsilon because this is the sum of the magnitudes of just two terms. Whereas, we have already made sure that the sum of the magnitudes of all these terms is at most epsilon. So, this quantity here will be at most just a second. And the maximum of all these lambdas is rho of a by definition and so, this is going to be at most rho of a plus epsilon. In other words, one of these columns is going to have the largest eigenvalue in magnitude. That largest eigenvalue plus the sum of all these terms together in magnitude is an upper bound on the maximum column sum norm of dt delta dt inverse. And so, this is this is true. So, that was the kind of key step in the proof. And so now, the rest of it is kind of connecting the dots here. So, if we define the norm, so we will consider dt u b u Hermitian dt inverse and maximum column sum. So, we have already seen that if I take any invertible matrix and I consider S inverse AS where the norm of S inverse AS, that is also a valid norm. So, this is a valid matrix norm. So, L1, this maximum column sum norm is a matrix norm and this matrix dt or u Hermitian dt inverse, this matrix is an invertible matrix. So, this is in fact a valid norm. Okay. So, this is what I will define. Then, so, so then, repeat. Hello, sir. Hold on one second. Okay. Volume is too low on my machine. Okay. Yeah. Please repeat your question. Sir, can you please repeat why it is valid norm? So, we have already seen that, okay. First of all is a norm. And the second point is that given any norm AS, S inverse AS is a valid norm. The only requirement is that S should be non-singular. But that is true here because this I can always Hermitian dt inverse, inverse b u Hermitian dt inverse. Okay. This is the theorem we have stated and proved in the previous class. Okay. So, this is a valid norm. And then if I compute under this norm what the norm of A is. So, then for large enough D, we have norm of A is equal to L1 norm of dt u.  But u, u Hermitian and u, u Hermitian are both the identity matrix. So, I have dt delta dt inverse which is less than or equal to rho of A plus epsilon as we just showed here. And of course, for any norm we have already seen that for any norm this rho of A is a lower bound on the norm. We are done. I mean that is all we wanted to show which is that the norm of A is between rho of A and rho of A plus epsilon. These are the two things we wanted to show. Okay. So, that is this result. This completes the proof we started the previous class. So, now we will continue. Okay. So, one remark is that what this result shows is that the rho of A is essentially the greatest lower bound for the values of all matrix norms of, for the value of all matrix norms of A. In other words, I can find a norm such that the norm of A is as close to rho of A as I wish. And so, there is no way anybody else can find some other zeta of A or something which is bigger than rho of A and such that no matter which norm of A I choose to evaluate that will still be bigger than zeta of A. The rho of A is the biggest lower bound I can find on any possible matrix norm of A.


If somebode went to the media and just said Naka Chinda has a $30 million in his account, Zambian people's reaction is an early evil because we never imagined that a fellow Zambian, particularly a black person, can have that kind of money. Utuwa nituwa chabeta utuwa Chinese who were criminals in their country, they were prisoners in their country, they come here in Nama Bamba, and they come and would wink us into some deals, and in the process, Naka Kwata 10 million mu account, we clapped for them, but we condemn fellow Africans, fellow Zambians when they are reported to have money. So what is working here is not even about the fight against corruption, nijeras if you are quoted, ah ah, so boman na kwa tanga nda yamsangori, because as far as we are concerned, the ringroku churanga iwa wine, even when he is working hard, so that is what is working here. Are you telling me that Aka nda ichilema is the only wise man in this country who tells us that he has the money that he is purported to have because he sees the opportunities. Iwa kwata fema en seama opportunities. The rest of us are just useless, we don't think, we can't utilize any opportunity. It's say, you know, I laugh at Zambians. That is what is causing a problem in this country. Wutu wutu, wakutila, you never imagine another person to have what you have. That kind of mentality can never be found in state house, because as a head of state, you are supposed to be wishing your citizens prosperity and working towards the improvement of their lives. We are very concerned and it's appointed by one Mr. Rafa Nakachinda. The president of the Republic of Zambia, Aka nda ichilema, spoke of freedom of speech. He told every Zambian to be free to express themselves, but the way we use the freedom of speech must be monitored. You can't discuss the president in such a manner where Mr. Nakachinda is busy calling the president okeba wutu wutu. That is tribalism. That is 80 speech. Mr. Nakachinda must stop being personal. Mr. Nakachinda must know that Aka nda ichilema and the UPND were voted in power by 2.8 million citizens. He must know that 10 provinces in Zambia voted for UPND. When people were voting for UPND, we did not say that no Isitonga, Ilozi, Ibemba, no, no, no. They voted for someone who can liberate Zambia itself. So why should Nakachinda become so personal? Why should Nakachinda lose respect of the presidents? So we asked Nakachinda to apologize within 24 hours. We failed to reach. We shall now meet Nakachinda ourselves and ensure that he tells us what he meant by saying kwaibati muaboro muntu umutonga from Wengwa. We put him in state house. He must tell us now if the police can't act. We are there to defend the presidents. We are there to defend the president of Zambia. And also he is president because HH is not the president for one person. It is for the president for everyone and therefore we asked Nakachinda to stop his behavior and he must know that people are watching him. Let him continue. On that path is going to meet us head on. My brother Nakachinda respect yourself. When you see the president is quiet, he is not quiet, he is watching and also we are watching because we are his people including yourself. So we ask you to caution yourself. We ask you to watch what you say. Use the freedom of speech in a proper way. Use the democracy that has been given in a proper way. Not insulting the presidents. I have told you you are not the only Zambian who knows how to talk now. If it is not you, it is Boman. If it is not Boman, it is Nakachinda. The question is why? The care of my brother is your president, is my president, is your president for every Zambian. He was voted into office by Zambians. So if you continue on that path, you will be very unfortunate one day and we ask the law enforcement agencies to act. Within 24 hours and I repeat, Mr Nakachinda must apologize. If you don't apologize, we shall meet you head on and we shall ask you a question that you have to be asked. What do you mean by calling the presidents? Thank you so much.


Check it, check it, check it. It's a unique hustle, nigga.    Name another podcast like this. Check it, check it, check it. It's a unique hustle. It's your boy, E-C-E-O. And I'm here with the lovely, amazing, official Mr. Maker. What's going on? None, none. You know my dad walk on. Man, hey man, you know, we are out here in Las Vegas, y'all. Once again, you know, we always, like we always do at this time. That's what Kanye say, man. Check it, man. We are out here, man. And we ran into a gym, man. My boy Moody is in the building. How's it going? What's going on? Man, what's going down, brother? Shit, just out here grinding, doing this agent work. What is you doing in Las Vegas, Nevada, man? Well, I'm currently out here working with a few talents, looking to find who's the next big thing, you know, out here from Nevada. Because I ain't really heard at all. A few artists out here.   For sure. Okay, Moody. So, you know, our fans, all of our fans might, some might know you, some might not. So for the ones who don't know you, tell us about where you from. Were you raised in a single parent household? No. I was born in St. Paul, Minnesota. I was raised while I grew up in Wisconsin, a household of nine kids. You feel me?  Nine kids? Yeah, nine siblings. Wow, that's crazy. Yeah, it was a full house, full house. You know, little town in Wisconsin, Somerset, Wisconsin. So how old were you when you moved to Wisconsin from, you say you were born somewhere else? Yeah, I was born in Minnesota. How far has Minnesota from Wisconsin been? Forty minutes. I'll say it's not even that far. Forty minutes, you know, from the small city that I went to high school at. Okay, so how was it growing up in Wisconsin? Because I heard that's country.   How did that feel? That's weird.  It was different, you know.  No, yeah, there was always racism, you know, in Wisconsin.  I was the person, you know, doing the back flips. You know, at the football games, I was the one stepping out, being different, you know, from the other people. Tell me one instance where you faced racism growing up that stood out to you? For sure, you know, at the football games, you know, from other schools and stuff, you know, I was performing at the halftime shows, you know.  And think it'd be cool to say the N-word, you know, stuff that could tick me off, but growing up in, you know, in that area, I knew what, you know, what was chances of me facing racism, so I never really let racism get to me. So you never said nothing about it, aren't you? See how, brother, you said nine of y'all. How many boys and how many girls? Uh, I got a problem. Damn, my damn, it's a lot of them. Yeah, it's a lot, because I have stepbrothers, too. So it's like, I'm... So, but where do you fall in between? Were you the middle child, the youngest, oldest? What did you fall in between? Yeah, uh, third to the oldest. Third to the oldest. But how did it feel growing up in a household full of so many kids? I know that in my mind, I'm like, okay, it can be fun, but sometimes it can be terrible because you're sharing everything. You don't really have nothing for yourself.  It was always, you know, living on the budget, you know, nobody got more than, you know, any of the other. But yeah, it was always living on the budget, you know, and you had to, you know, do what you had to do, you know. You said your mom and dad lived together?  Wow, from what? Um, she was just very sick. Wow. Just very sick. Do you remember her? No, I really don't. Wow. You know, my older brother always told me what type of woman she was. That sounds awesome. And you know, family and friends always told me, you know, what type of woman she was. I didn't really get a chance to meet my mom because, you know, I was very young at the age, but I grew up with my pops. You know, my pops, it was, uh, grew up, we grew up in Minnesota. I mean, grew up in Wisconsin.  Okay, that's good. At least you had that female influence in your life. Yeah. And hopefully it was positive. Yeah. That's good. So when did you discover the music? Uh, I started, you know, I was always the kid in high school getting kicked out of class, class clown. I didn't really tell you high school series because I just didn't think it was for me. When I, um, just growing up, I had a lot of ADHD, energy, and it always was just getting me kicked out of school. So at that point, when I got up to high school, um, I was flunking class, getting asked, but, you know, in my high school, they were still moving you on, but like it was still matter about the GPA and stuff about graduating on time. And, um, that's pretty much like my high school. Like I was just flunking school, getting kicked out, suspension after school, in school. So I really, I wasn't graduating on time. So I had to come up with a plan to like do something because I was at the point where I wanted to drop out and I eventually ended up doing it, but I ended up doing it after I figured out what I wanted to do and how to do it. So there's a lot of, a litany of artists that you've engaged with because of you venturing into whether it be promoting or whether it be, you know, just going into different business ventures. Who are some of the people that you've worked with? Some of the artists that I have worked with, um, when I first started my career in Minnesota, I was always on top of the concerts. When it was coming to my city, to Minneapolis, I was always on top of them. I never knew the promoters. So literally when the concerts came to my city, I was usually, I had a mouthpiece. So I always was using my mouthpiece to finesse it and, you know, talk to people and tell them who I was and stuff. And it always just worked out. And I always, um, got myself in through the, the back door, you know, the back gate, just using my mouthpiece because I realized how promoters and how business people were moving and how to move to get to where I wanted to be and the people that I need to connect with. I always just had a mouthpiece to get my way in the back door. You say you always be observing. Is there any one person that you observe that you're like, man, I can pick up a lot of game from them? Yeah, there was a lot of mentors, you know, people that I looked up to. Um, when I moved to Minnesota, I had an OG, you know, big homie AK, shout out big homie AK for many of Minnesota. He put on for the city. He is a big OG in Minnesota. He helps put artists on. Um, and it just, he's just been doing it for years. And when I moved to Minnesota, I went from sleeping in a music studio to him helping me throw my own shows, put together shows, learn how to book artists, you know, get them booked. It was just a lot of things that he had taught me from sleeping on a studio couch to now I'm living in LA, Miami, wherever now. That's awesome. Who were some of the artists that you booked? Some of the artists that I've done work with are Help Get Book, NLE Choppa, 21 Savage, Young Thug, Chris Brown, La Shorty Shorty, some of the new cats, Lil T.J. I've done a lot of work with a lot of people. Yeah. So when you think about some of those ones that you set up, which one sticks out for you to where it was complicated, but you got it done and it was a breath of fresh air once you made it happen? Um... There's a lot. Yeah, but it's one of them that you was like, damn, by the heralds of my 10 and 10, 10, this thing almost didn't happen. You know, sometimes it's to be like, sometimes the club may be going close early, the artist may be late, a flight may be delayed. There's a lot of things that happen when you're booking shows.  There was.  I had Lil Durk. I had a big show I was hosting in our city with Lil Durk. It was Lil Durk, Sleazy Go.  It was supposed to be at the big Target Center in Minnesota. And the venue, I don't know, the venue wasn't really, you know, tripping because it was outside promoters. But did you get to make it happen? No, we never made it happen. The promoters never made it happen. They had me on it hosting, but yeah, we ended up having to cancel the event because, you know, it was just... They had to give everybody back their money. Yeah, for sure. With the rap that these current artists bring with them, with a lot of baggage that they bring to each city because of all of the violence that goes on with the artists, you would probably run into that a little bit more than often where people are very leery about inviting certain artists into the shows, right? Oh, yeah.   But how can you control all of that? You know, you say with security, but even with security, you can't cover everything. Sometimes, yeah, sometimes when you get events like that that were shootings or fighting, you can't control, it just happens. You know, sometimes it happens just in the crowd. You feel me?  So it's really a lot of responsibility. It's really on who you have securing the venue. Wow. What about this chain? I see you got it on. I like this chain. This piece is nice, man. This piece, the LA piece, it resembles, I got the LA piece because it resembles how I started my career in LA. So when I first moved to LA is when I started to get in buzz. I was throwing mansion parties for the celebrities. I really built a base in LA and it meant something to me when I started tapping in with the OGs and working with how to promote, how to move. Shout out Big U, the OG, with unique music. Learning from him, watching him on his podcast, checked in from my OGs working with him. I learned who he was and how he maneuvered around and helped grow artists, you know, like Nipsey, working with people to help grow them and market them and put them on. And I really learned a lot from just watching OGs like him. Wow. So you basically are saying that these guys influenced you. How difficult was it going to LA and trying to learn how to move? You said move. So you have to move a certain way in LA. Yes, for sure. We just left LA a couple of days ago. We interviewed a lot of people. My main concern was, okay, how do I invite this person and that person versus how things are going to be organized when we get there to where it keeps everybody safe? Because everybody don't rock with everybody in every city you go to. So, I mean, how difficult was it for you trying to understand how the boundaries were set in LA like that? It was very hard at first. I sold everything from Minnesota when I moved to LA. I sold everything. It went out there with two bands. I sold everything. How old were you? This was, like, I want to say, like a year and a half ago, before COVID, when COVID started in LA, so beginning of COVID. So, like, last summer, something like that. Okay. It was beginning of COVID. I moved to LA when everything was shut down, like, at a wrong time, but so it was kind of hard and stuff. So I moved there with two bands and literally got a monthly Airbnb for $1,500 and I had $500 left in my pocket and ended up tapping in, you know, with the influencers, the TikTokers and stuff like that. When I moved to LA, I realized that everybody was a TikToker, a model. They was doing something. You feel me? And it motivated me to become and tap in with TikTokers, just people who had that type of fame or following and to see how people were doing it out there and how to maneuver and stuff like that. I was tapping in with the influencers and I ended up living in a content house. It was called the drip crib with a bunch of other TikTokers and I ended up building my base and learning how to grow, make content, be consistent with it and stuff like that. And so you found out a lot about the TikTok world. I was living in a content house for a little bit. It was called the drip crib. But it was a serious like those guys, they understand how to maneuver in a TikTok. Yeah, I moved in that house and them guys had like 5 million followers. All them content creators had millions of fans and I was in there, I was nobody. Wow, how did that affect you in your movement? Did it help? Yeah, for sure. It helped me being in that content house to help me realize how people acted when they had fans, people who looked up to them, how they moved out there. You feel me? Because when you're known in such area like LA, you have to move cautiously because people know who you are. So when you're having that big image, you soon realize who's real and who's not when you first get that big image because when people get that name, it just starts to see, you just start to see who's loyal and who's not. And one thing that's, it's a good thing you said that because I see you have that tattoo says loyalty and death before dishonor. So I know honor and loyalty is very, very big for you. Is there something that happened?  Yeah, I grew up, one of my favorite artists died. His name was XX Tintasian. So I'm a celebrity host and I used to do concerts, a few concerts with him and my bro Schemas. They're really brothers. And so when I was doing shows and concerts with him, I had that energy. Their energy inspired me to be how I be on the stage when I'm doing my MC and my hosting.  And when X passed, I had got this tattoo death before dishonor. Which meaning like I would die before I disowned my family and my own that I love. And loyalty, I'm very, very big on the loyalty and the people that I bring into my life and around me. How? Okay, so X passes.  I really listened to his music. I was, he inspired people. He did a lot of things for people. And so like when I seen that he was killed in LA at a car dealership in his own state. It just made me want to go harder and just broke me. Like this guy inspired me. You feel me? It was sad, you know? But I used his energy that he provided for me and I seen it. And I realized when people started comparing me and him and our bro Schemash like the energy stage wise and stuff like that, it was just that I just need to keep going and his legacy and his energy I'm going to keep it on. You feel me? I'm going to keep it live. Wow. So you know with that being said you know after him there was trickleings of artists that just kept getting killed. Whether it was Pop Smoke, whether it was Mothry, whether it was Dolph, whether it was Analyst Goes On. There's a few LA artists that I can't name but I remember them passing here within the last year. Like I'll do that affect you you know you're moving in some of those same circles. It affects me because some of them artists that have passed I've done work with them done got them bookings and don't have deep conversations outside of what people think with social media. On my page, you go on my page it's me pictures with a bunch of celebrities and stuff like that but behind the scenes it's really deep conversations it's really business talk with these artists that a lot of people like the world don't know about. Man you know you just wanted the guys that out here in the waves man and the young waves you know I respect you guys movement so much being that you guys are the future and you all pretty much hold a key to the future you know what I'm saying for me so when I see a young star here getting to it it's so much respect and love there's a lot of different young people that God has put in my path and I'm glad that you won over my brother. We are in Las Vegas in the bottom man it's going down man we are here for magic we've been out here now we was in LA but we in Vegas now guys so yeah it's going down man I got a question so out of all the whether you actually promoted this event or not what's the craziest thing you've ever seen at an event happen?   Where was that at? When did that happen?  No I didn't see it but I saw the argument it was just some beef you know LA some rival rival stuff outside music festival not a lot of security you know I was hosting for a little bit you know I was there with a few artists you know a few artists that really not big but I was bringing them to the festival and stuff like that but no argument broke out and done seeing the person pulled the gun out like shot the dude a few times and took off. Wow. You didn't run? No yeah for sure. Everybody fell for sure. When a man got a gun everybody run for sure. Let me tell you some people are in shock willing to stand up there and be like can't move. No. My brother was asleep one time when they started shooting and I drug him and then he started shooting but nobody stand. That's the big for me. I didn't see a lot of shootouts.  No as for show and you just you just never know if the shooter you know is just going to spray you just you just never know if he's just going to shoot. How did you feel about that because that could have been you know standing so close?   So we started walking you know we still looking back and as soon as we see him pull the gun we just look away and you know we heard the shots and we just got out of there as soon as we came you know that's kind of the stuff you know that happens in LA. So when you got into this business the reason that you got into this business was there anybody else in your family that was in this business already? Yeah my family was always you know some of my brothers my older brother was always you know a rapper growing up you know I seen him do his little shows I just couldn't go to him because at the time I was very young at the age so I seen how my older brother was an artist and a beat producer you know so I seen how you know he was making music and stuff he always wanted me to become a studio in his house and stuff always you know be trying to still to this day try to get me to get on the mic I've gone to mic few times but I never took the I don't know I just never took the artist I have too much I think I have the energy I just like hosting you feel me I like I like the hosting because I host like I am the artist you feel me but I'm just not rapping a song What makes you different from every other host why do why should people contact you book you anything like that the difference between me and other hosts I'm just nice I'm not the type of host that's just sitting there just talking on the mic you know just talking I actually get in a crowd interact with them crowd serve open up a circle dance circle I'm doing back flips off the speakers I'm an energetic kid you know I did gymnastics for a little bit so I'm on stage flipping I'm different from a lot of hosts you know these concert hosts these older guys young guys you know just talking on the mic but you know I'm different when you get when you book me you get the whole package you get me bringing a fan on stage flipping over him you get the whole packaging you know so you are crazy dudes that I see like on social media you know you watch those videos and they try to backflip over cars like a speeding car coming in and they try to backflip over and that's how I got big in LA doing that I was doing it actually did that with a car yeah I was doing that in front of the and that's how I got recognition from camera man camera people outside the Staple Center and a bunch of you know tours how many cars you've done that with is only one car you flipped over or two yeah when I show you my IG if you pull up my IG yeah I have a video me flipping over a green Corvette in front of the Staple Center watch your IG for them to know so they can go searching my IG is a young moody official YU NG M O O D Y official how long you did that that was probably like I still can flip now but I still can flip now but I don't think I gains you know so a little bit away I chilled out on the flipping but that was like when I moved to LA pretty much I was just straight flipping for companies I was getting brands I was flipping for P Diddy son King Combs he has a drink called wave juice shout out wave juice shout out King Combs I still do promotion and brand and bastioning stuff for his juice wave juice and yeah I started flipping getting drink sponsors weed sponsors you know all types of stuff and you feel me I drink the drink and then run and go flip over the car you know and it was good promotion it's really good promotion but that takes a toll on your body I guarantee you yeah for sure you know I always like I don't know like I was always like not actually been able to do it like because some people think they are invincible they keep doing the same things over and over and keep adding on to it and then it's scary because you can really get hurt yeah for sure I've done it I've tried to do it you know Corvette kind of a little smaller so with a Corvette I was clean I tried to do it with a charger I ended up like barely clip my head you know as I flipped luckily I still landed you know safely but like yeah it's still I still clip my head on the windshield and a little bit for sure you know if he was going any little faster he was smoking wow usually they go I have them go by like you know five to ten miles I was about to say how fast are they five to ten miles probably you know moving so when these videos actually because to me they'd be looking like they're going really fast but if you're saying they're going five to ten miles speed limit do that I mean that when the video comes out they speed it up to make it look like it's going faster no five five ten miles probably is fast it's fast like fast I have a video of me doing it on the Hollywood Boulevard in front of the whole strip where I had literally stopped traffic I had literally had my guy stopped traffic to do this in front of hundreds of people on the strip like when they seen this I flipped on it went viral on the news you know Hollywood news was was was talking about it was on TMZ for a little bit it was literally just like teenager flips over moving car Hollywood Boulevard but you know it makes it where it starts a trend because I've seen a lot more people do it but you weren't the first person who done something like that you have other people that you've seen before you know yeah there's there's a lot of you know people street performers stuff like that I look up to I've seen like that flip harder than me that are flipping over you know multiple cars in a row I'm like damn okay they working you know so you you work you I remember you mentioned about DC just understanding know how did you guys link no me in the OG DC I had met him in LA while he was working and doing his strip clubs and stuff like that he had I just came literally I just came to one of his strip clubs the home he was talking about it doing security there he's I mean I think you should tap in with this OG you know he runs clubs he's been doing it for a minute and you know he's from your state you know in Houston Dallas he does in the Dallas area I'm like yeah for sure I pulled up you know introduced him told him who I was what I did you know I showed him I showed him what I literally showed him was a flit video on me flipping over a car and he said the same he's like holy shit you feel me see my following and stuff like that he told you know other people like little bro lit you feel me so I tapped in I told him I'm like look I'm trying to promote you know get into promotion promoting stuff you know for the club scene and stuff like that and he you know had put me on introduced me to you know the people that he was working with and I've been working with him helping them promote his clubs and stuff like that all over man so do you I mean being that DC does a lot of different business in a lot of different cities you never know where he's going to be next I've watched his movement man real fun of his movement just just a litany of places like Atlanta New Orleans I've seen his movement down there and the LA movement now have you done anything in Vegas yet I don't yeah DC actually shout out to the OG DC he's opening up a new club this Friday this Friday August 12th it's called Euphoric right in Las Vegas it's a brand new club you know a lot of 50 beautiful women strippers and it's the grand opening is this Friday August 12th so it's a cabaret I'm just happy about the way that he keep hustling it's not as big as V Live in Dallas it's a little you know smart little classic club you know only like 50 dancers but yeah it's going to be a nice good look is it upstairs downstairs is it going to be a nude topless what is it I haven't actually I haven't actually seen it yet I will be seeing it this Thursday I've seen like you know online the outside a little bit of what the inside look like but I'll be there this Thursday to check it out but from the looks and from the videos and stuff promotion wise it's going to be good it's going to be open all weekend wow you know my boy money Moses he always step on the scene for sure you and him both got that income and it's all both for our guy with DC yeah for sure worked at the V Live up in Dallas for sure man what's up money Moses man welcome to Las Vegas man I'm in you just sit here and say you got 50 girls be live and have a 20 be live and have a 20 for sure for yes I mean the girls list is a big event and they come from out of town that's about it that's a big deal yeah now yeah what I was told like they had like 50 strippers at least dancers you know hired at the new club so I'm like okay wow so you girl knowing how do you feel about DC like when you and him work together was it was it cool to work with DC because he'd be everywhere he a cool person like he bring the money he bring the money he bring the money that nigga pose been on boss talk a while back and he didn't show he said he want to come well you know boss talk over here we serious he flew out of town he always flew out of town we are we flew enough out of town now we have been Vegas man this is our third what is this our third trip up here for boss talk you was with me the very the first I mean is it for three three three three yeah man so we we up here for the third time in Las Vegas shooting man and we had we didn't sit out with moody today man this guy right here you want one of those guys so what do you think about the promoters and the promotions that was going on with the live money Moses down in Dallas we probably needed him I'm not gonna say it was the it was the club I'm saying it was the scene because all this stuff was happening so it's like everything was happening so it's like you couldn't really just do nothing because too much killing happening and most of the shooting was really after the club after they lie really so it was like it's always around the club it's like then next to the club next to it's like they do a lot of shooting over there but they always blame on V live wow so it's a it's so do you think cause V live didn't be live clothes now in Dallas it's closed now they turn to the forest like a restaurant so so basically now the shooting suppose that slowed down but another young lady got killed at at SC or something else security guards wow that's something to do with it wow so how much yeah I know you talked about killing a little bit and at these shows or whatever man how how tough is it for us the security manager that you guys take when these shows are going on uh experiences is big you know when I'm I'm never the person to book the security but you know sometimes people recommend I know a lot of you know professional security companies so the investors always would ask me like you know what's a good security team and stuff like that you know I'd give them a few recommendations of people that I have worked with some companies that I personally have worked with and people who have done personal security for me and stuff at my events and stuff like that so I would just give the investors or the promoters recommendation most of the time they already had you know their people uh booked for the security well Travis Scott though he was one that had to show them went crazy for a while back in the day back in a while back uh he's I seen him kind of resurfacing again and trying to move past what had happened for sure um and have you ever worked with him uh yeah I've done uh Matt Travis Scott a few times I was supposed to be at Astro World literally when uh when uh news had happened and stuff like that but I had some other bookings to do I was supposed to be with a few other artists that were going to be on the lineup but I ended up uh had to do some other things that day and uh I really uh was sad I couldn't go cause Houston that's where I went to high school and stuff with for a little bit so I really fuck with Houston how what house he has uh I went to a task you see the high school very very huge school what you about to say money I think when they book security they need to book security from another city not the city uh that you in because they see that you in they know like he said earlier they know the people's already that's around them so they know the people's like they gonna let someone with guns you gonna pay to pay to bring guns in so that should be security from out of town so they don't know nobody I agree what do you think about okay so you say something early about it off off the camera about a documentary what gets give me a spiel on how you plan to uh do a documentary on how you how's it coming so right now I'm documenting my lifestyle of how I be coming I'm right now um I'm documenting my lifestyle of how I'm working as an MC as becoming uh from becoming nothing to now becoming something as a big MC hype man pretty much that's how I carry myself is a hype man because most of these people you know my supporters family they know me as a hype man who turns up you know concerts club events stuff like that with all these celebrities so I turn up the crowd before they come out wow no man so um man top three artists of all time did our live top three artists of all time did our live number one uh my favorite uh I gotta put x on there xx xx number two juice world I work with juice world for a minute them them guys really inspired me so I gotta put them on there because they inspired my lifestyle my energy and the third one I gotta say uh polo g polo g polo g and I see where you at with your polo g yeah you can tell this style yeah man so how can people get a hold of you if they're trying to link up with you man uh using my i g on my email I have a business email people can use but most of the time I'm very active on my Instagram and I'm always getting back to DMs right away like it's quick to catch me on the Instagram Instagram man uh if it's family or friends they uh you get my Facebook okay and and what is your Instagram again my Instagram is young moody official y u n g m o o d y o f f i c a l official man you know what man hey man we love you brother we appreciate you for coming on for sure we link for life now man you boss talk one certified for sure and uh just before we cut the the podcast I just want to say I'm a prime example from coming from nothing to something and I became what I became because of who I am and I stayed true to who I was and I just want to say man you can do anything God gonna bless you if you work hard for that shit man that's real talk man hey man thank you so much for coming on the show again money Moses we are here in Las Vegas man how you liking it out here bro it's really fun but it's just the heat I hate the heat bro you can't go no more without sweating man so so you know we've been tackling this for a minute now man and boss talk 101 been around for like I said it's the third time we've been up we came on early in the game Vegas was one of the first years we came before the pandemic we came one time before the pandemic then we shut down for a year that's why we concerned ourselves to have been around for a year now because the pandemic kind of shut everything off and then we went for four players I believe in 2021 yeah and we're here right now man so boss talk 101 Las Vegas Nevada for sure make sure you guys like and subscribe to our channel all the people if you if you look in the sponsor us you know we put up our own money because we boss is right now we've been bosses that's why boss talk 101 we've been doing the Vegas thing Cali thing the Houston thing Atlanta thing the Chicago thing let's go Arkansas little rock shot out the TV man hey Louisiana I ain't down there we everywhere man everywhere like my boy said he say the earth is what it was our turf hey man check it man it's been another great thing when the boss talk 101 what a boss is talk