As soon as everyone can hear me all right, seems really loud to me up here. So this is building confidence in APIs with Postman. My name is John Ferris. I'm the director of front-end engineering at Atten Design Group. Atten is a full-service design strategy and development agency based out of Denver, Colorado. We work with a lot of organizations that are doing really good work. We like to think that we work with organizations that are really trying to make the world a better place. And increasingly, our clients are coming to us with ask for more, like, application like websites. Not just content publishing, but data visualization, more interactive and intuitive forms. Things that don't work very well necessarily or very efficiently with the standard like full-page refresh kind of site architecture. So we're doing a little bit more decoupled work. And that requires using a lot of APIs. And me personally, I got into web development through design. I started graphic design and I did do a little bit of schooling with actual computer science degree, but it wasn't visual enough for me. And so I gravitated to the front-end naturally because it's that mix of visual kind of the art side and actual programming. So my experience with JavaScript was more like making drop-downs and animating things and a whole lot of action script and flash interaction back in the day. So the idea of actually getting data through an API and doing authentication, those kind of things, that was really intimidating for me when I was getting into it. It just seemed like a lot of pressure, you got to get this right. And so a few years ago, I found a tool called Postman. At the time, it was a Chrome app or Chrome extension that you can use to actually test APIs. Can I get a show of hands of people that have actually used Postman? Cool. A lot of people. Awesome. Of those people, who's actually used the native app? Cool. So yeah, traditionally Postman was a browser extension for Chrome. And they've released a native app that is just incredibly intuitive, really useful. And the reason I wanted to share it with you today is like there was a lot of things. I just used Postman to grab an API, send a request, get the response back and view it. And I recently learned there's so much more to it and there's so many more features that I just didn't know about. I got really excited. It felt very empowering. So I wanted to share that with you today. And I want to do that in the context of Contenta. Everybody familiar with the Contenta distribution for Drupal? Anyone not? Cool. So Contenta is basically, it's a distribution made for API-first Drupal development. So it has a lot of things turned off like there's not really a front end or like blocks per se. It's designed just to allow you to model your content and expose that as APIs. So it has a lot of functionality like simple OAuth built into it, JSON API, which we're going to talk about, and GraphQL, which I've never used. So you can ask me a question and I won't answer it or tell you where to Google it, I guess. So we're going to talk a little bit about JSON API. If you're not familiar with JSON API, yes, it is a module for Drupal, but JSON API is actually a specification for sending requests to a server and getting responses back. So the specification outlines like basically if you were sending a JSON request or a JSON body in a request to a server that's formatted in a very specific way, you know, how you filter is fairly prescribed, how you sort and those kind of things. And then the response, the shape of that data as it comes back is all in the specification. And there's really two big advantages in my mind at least for the specification. The first is you don't have to spend a bunch of time like architecting what your API is going to look like. JSON API, basically everything is entity formatted or entity-based. So you have specific endpoints for a resource. You can fetch those resources, you can post them, you can get collections back. And that maps really well with Drupal. So if you think of a node as an entity or a taxonomy term as an entity, that maps really well with JSON API.  What is the endpoint we're going to post to? What are we going to get back? And then the other big advantage, because it's a specification, that allows us to make tools that make assumptions about, you know, what that shape, the shape of the data should be. So we don't have to write a lot of boilerplate code in order to, you know, fetch a node from Drupal per se. So we're going to, the examples we're going to look at in postman are all going to be based on JSON API, the JSON API module. As I say here, I highly encourage you to actually read the spec. It's a 30, 40 minute read and I'm a really slow reader. Also, once you're done with that, there's really good modules or really good documentation for the module itself. So it's definitely worth the time reading those.  Yeah, do that. So I want to talk a little bit about APIs in general. Sounds like just based on the hands of people in the room that have used postman, you know what a REST API is. But essentially, we are just sending a request just like you would for an image or an HTML page. You're sending a request for data. So you send that to the server and you get a response back. Those responses have status code. So you're familiar with 200, you know, everything worked. It's usually a good sign. 201 created. So if you're actually posting a new entity to the server, in our examples coming up, we're going to post a recipe to the server. And if it works successfully, we'll get a 201 status code. 301 moved permanently. 403 forbidden. So if you don't have, you're not authenticated to get a resource. 404 not found. You probably put the wrong URL in. 418, I'm a teapot. If you send a request to a teapot trying to make coffee, you're going to get the 418. I'm a teapot response. There's also a spec for that. Google it. I'm not lying. But the general idea is the 100 responses are hold on. Two, here you go. Everything's working well.  Usually when you get the white screen of death, that's in the 500s. So it's actually since requests. Okay, so here's the postman interface. Postman has a concept of workspaces. So you can switch. Usually I'll have a workspace set up for like a different project that I'm working on. And then you have collections here on the side. So collections are just groups of requests. And then within those you can, I don't have any here, but you can organize those in folders as well. So in this example, can everyone see that all right? Is it big enough? I need to zoom in. Cool. So here's, I've got a local instance of Contento running. It's namespace with this API path. And I want to get recipes. So I send that, I should get a whole list of recipes back. And this is the JSON API format. You get, if everything goes correctly, you get one object. And inside of that, it's got a property called data, or it must have the property data. And if it's a collection, like you're getting a group of entities, in this case, we want all the recipes. We didn't specify any filtering or anything. So it's going to send back an array. Even if it's just one, it'll send back an array because we're getting a collection. So yeah, we just have a bunch of entities and you'll see that there's a lot of data here. In a lot of cases, when you just want to show a list of recipes, you don't necessarily need all that data. You don't need the created data. You might not need if it's published or not. You don't need the user ID. So we'll look at ways to just get what you need there. So Postman allows for URL parameters. So in this case, we want to get a specific recipe. So we know the UUID for that. And if we just hit params, you can see I already have it defined. I've got one of the UUIDs for a recipe. And we send that. And in that response, you notice that now this is an object. So we just get one single entity. It's a recipe, basically all the same information that we had before. It's just now a single entity. So it's an object. Categories are taxonomy terms. We can send those. Get those. And that's what you might expect. It's categories, a bunch of field data. Now, JSON API allows you to filter those queries, get specific fields. So first, I'll turn on the sort parameter. This is one thing I really like about Postman, is you can load a bunch of test query parameters up in here and just enable and disable and delete them as you need. So you don't have to worry about always going back and copying and pasting things in. Disable specific parameters. So we'll send that. And it should be sorted by name. So we have main course. Let's see. It's kind of hard to scroll through this, right? Because there's a lot of information that we don't need. So JSON API has this idea of sparse field sets, which lets you define what fields you want back. So really all we're interested in is the name for our hypothetical purposes. So if I send that, now I mainly just get the name attribute. I don't have the created or the published or anything like that. It makes for a smaller request, easier to look at, a little more efficient in terms of what you're downloading from the server. So now we can see that these are indeed sorted by name. And you can actually get pretty complicated with this. So here I've got searching for recipes. I want the title and the category. Again, using sparse field sets. Again, we're going to sort by title. But now I've got this new parameter called include. And include allows us to include any of the other entities that are being referenced. So in this case, if we run this, and I also limited it by only two resources. So all these are paginated. I believe the default is 50. Is that right, Gabe? Thanks. He's paying attention. So I'm liberating by 50. And also for the categories, I only want the name. So with this syntax, we can say fields, categories, only give me the name. So let's see what that looks like. Sorry, my little scroll target is really tiny. So here we have recipes. And we have these relationships. So in the category, the data is, so this is in the category, 9 1 F 0 7 3 E F, yada, yada, yada. It's not very useful to humans anyway. But we have included that. So if I collapse this, we now have an included parameter. And that includes any of the categories that are referenced from the entities that we searched. So in this way, we don't have to make two requests. We don't have to get our recipes and then turn around and fetch all of our categories. So there's only one included category here because both the two recipes that we got back were both main course recipes. So it only included one of those entities. Cool. Does that all make sense so far? Pretty basic, which is why I labeled this basic. So now we're going to talk about authentication. This is one of the things that was really, really scary for me. There's a number of different ways you can authenticate with an API. The example we're going to use right now is OAuth. So the general idea with OAuth is you have a specific endpoint that will return tokens, like an access token. In this case, it's OAuth slash token. And this stuff pretty much works out of the box when you install Contenta. I think you have to upload a public and private key, but that's generally about it. So we can see what we get back here. We're actually doing a post now. We're not doing a get request. So we're posting for a token. The grant type is password, the client ID, which is the UUID of a client. The client secret, which is kind of like the client password. The username is admin, and here's my user one password. Feel free if you want to try to hack my local content environment and download recipes for grilled cheeses. And then there's the scope, which is content administrator. I'm not really going to get too deep into this because there's a bunch of great resources out this, specifically for the simple OAuth module. But this is what we need to send in order to get this token. So I sent that. I got this really long token back. It expires in 300 seconds, which is, what, five minutes? So we have our access token, and then we have our refresh token. So five minutes, it's a pretty short period of time. So this access token is going to expire in five minutes. And then after that, it's just not going to be usable anymore. Refresh token has a much longer expiration date. So instead of having to send our password every time, we can just send a refresh token. So I am going to copy this out, switch over. And so the idea here, if you're building a JavaScript application, you would do your fetch for your token, and then you store that locally in objects, in memory or local storage, something like that. And then when you need to get a new token, I'm sorry, I'll back up. Then once you post request, you just include that token, and that'll give you access to do whatever, delete things, add things, edit things. And then when you need to refresh, so five minutes has gone by, it's been 10 minutes, and now you want to post a new recipe. What you would do is send the refresh token that you saved. So in this case, let me replace that. I'll send that. And now I got a new token. And so this cycle just goes on forever as long as you need it. If you're past the refresh token expiration date, then you have to go back and that's when, you know, if you're on a website and it's like, you've been logged out too long, you need your username and password. Most likely the refresh token has expired. Cool. So now let's actually post a recipe. So you see we have all our HTTP methods here. So far we've just been looking at gets in terms of entities. But now we're going to post. So we include the accepting content type headers. It's JSON API. You'll notice now that we have an authorization header. I believe if I send this, it should get rejected. Yep, 403 forbidden because this is the token that I sent earlier. So if I go back to this response, if I haven't been talking for five minutes, this should work. So the general syntax is just a string bearer with capital B, space, and then whatever your token is, we'll send that bummer. Try again. I don't think I copied the whole thing. There's better ways of doing this, especially hitting shift instead of caps lock. I'll try this one more time. Okay, there we go. So we posted a grilled cheese. I guess I should have explained that with the post, we're sending JSON object in the body. This looks very similar to what we got back when we were trying to get a single resource.  I'm not going to get too deep into that. I do want to show the authorization options. So everything we've done so far was very manual. We were just copying and pasting those tokens. If we change the authorization type, we can just put in a bearer token. And if I paste that directly in there, still copying and pasting, we just posted another grilled cheese. Here's our contentus site. We should have two grilled cheeses. So it's working. It's posted data locally. So there's quite a few authorization options in here. You can just do basic auth, which is filling in your username and password. And it'll take that and it'll encode it into a string and you would send that. There is actually a built-in functionality for OAuth. Actually, we want OAuth 2. And this is just another interface for actually getting that data. I haven't found this really useful because it doesn't handle the refresh token. At least I haven't figured out how to get it to handle the refresh token. So we'll look at other ways for handling that. But you do have these options there. Another one I want to point out is inherent auth from parent. So we can actually set whatever our authentication settings are on the parent request. So in this case, or I'm sorry, the parent, whatever you want to call it, collection, I guess, we can edit that and we could set the specific authorization settings here. So we'd update that. And now any request within this collection using the type inherent auth from parent will actually use that. So you don't have to worry about setting it on every single request. As you'll see in a little bit, you can get a lot of requests in a collection. Okay. Now I want to talk a little bit about variables. So Postman allows you to add variables in pretty much anywhere you can type a string in Postman. You can replace it with a variable. It looks very similar to like Twig syntax, double curly braces. And those variables have different scopes.  And we said inherent that from the parent variables do that naturally. So you can have there's five different scopes of variables in Postman. You have your global scope, which is, if you remember when I first started talking, I clicked on the content of workspace at the top. Those are specific to the workspace. So if you switch workspaces, your global variables change. And we have collections, which we're looking at the, we had a number of different collections. And then we have environments. So I haven't talked about environments yet, but I will in a second. But an environment is essentially just a group of variables that you can share across collections, across workspaces. I typically use environment settings for like my development environments. So I'll have a group of settings, maybe specific passwords for my local environment, like different domain, maybe my locals using HTTP. So I have a variable for that protocol where our dev servers using HTTPS. So you can have those environments, or those variables grouped together in environments.  And then you have local variables, which we'll get into that. Those are specific to scripts. We'll talk more about scripts. And then you have a data variable. And I hope to at least touch on this, but we'll talk about that in a bit when we get into running a collection. So you can run all your requests together. Data variables allow you to have a different set of variables each time you run that request. And I'll talk about some use cases for that. But it ends up, these various layers of abstraction give you a lot of power in what you can do with Postman. So, real quick, simple variables. Here I've replaced the initial request with a protocol variable and a domain. And Postman has a lot of nice UI touches in it. So if I hover over a variable that I've typed in, it'll tell you what scope it's coming from. In this case, the value of this variable is contenta.test and the scope is environment. And if I screw up the name, it actually, I don't know if you can see, but it turns red. So it's simple to use. NPM install numen-g, so install it globally. It's a node package. And then you can run your collection. So Numen run, Postman echo, this is just an example from the site and you can see it runs through all that stuff. Just to give you an example of what we just did. So I saved these, my collection and my environment outs. And I did that by just going here, clicking export, saves it as a JSON file. Same with the environment. You can go in and edit it. Save it as a JSON file. And then command line, just type numen run. You give it the collection file that you want to run. In this case, I want to run it with a specific environment. So you just pass it the E flag for environment. And if I run that and it just ran all the tests that I had. So it's super, super powerful, super easy to use.  I feel like I'm just scratching the surface with Postman. Everything you've seen here is all part of the free tool. Obviously they need to make money. They have pro-level features. One of the main things there is sharing things with the team. Like I said, you can export a collection to get and share it. But if you have the pro version, you can actually share workspaces and all that stuff stored in the cloud. So everybody on your development team can work with it. What other things are there? You can run monitors super easy. So if you've ever used something like Pingdom that's just every so often, it'll ping a site to see that it's getting a 200 or whatever test. You can run a whole collection with a monitor tool. And you'll get reporting back on that. So I set that up for one of our client sites. It just pings their site and lets me know, yeah, it's up every five minutes or so.  You're limited by the free account. I recently used this. I wrote a collection for actually doing a very basic migration. So we have a client site that has an event management system. It's an older system. It has like a pretty basic XML feed for all their events. I was able to take that, convert it into JSON and turn it into one of those data collections. And my migration script from a postman perspective was essentially just one, it was like an authentication request to authenticate with the server and then a post request. That looped through all the different entity types. And because I was using JSON API and it had a standard, like Drupal has a standard for what those endpoints should look like, I was able to figure out from the data what URL to post to and was able to migrate like 700 events fairly quickly.  May not be the most efficient way, but it worked and the client was really happy with the result. So there's a lot of other things. I'm sure I've missed a ton. But with that, say thanks. Definitely have a couple minutes for questions. I do also want to say that we're hiring developers right now. So if any of this stuff looks interesting to you, come talk to myself. Come talk to Joel in that shirt down there. We'd love to talk to you. I think we're doing really fun work. I'm always excited about the stuff we're working on. We get to work with some amazing clients. So yeah, come talk to me. And if you have any questions, please step up to the mic. I do also have, I don't work for Postman. I'm just a big fanboy. It's been really helpful for me. So I reached out to them and asked them if I could use some of their assets. And they actually sent a bunch of stickers and they're really nice stickers, if that's your thing. So come up and see me. Come visit us at the booth. I'd love to answer some questions if anyone has any. Like these right here? Yeah, well I definitely, I've exported all the collections here as part of my slides. So they're up on GitHub and I'll post a link to that. But I could definitely post the collection for, like I've got one that just creates a ton of entities and one that deletes a bunch. Yeah, happy to do that. Anything else? Somebody's got to have a question. Alright, well thanks for coming.


It's good. What's up? Dunk life daily, we're back. First things first. Happy birthday mom. Always bugging me on my videos. I mentioned one time. I'll say hi mom after eight minutes. She never lets me live it down. I gotta remember to do that. Problem is when I'm vlogging, I don't know how long the video is gonna be. I guess I gotta throw it in. But here it is. Hopefully that suffices for a little bit. Satisfies you. Anyway, welcome to Dunk life daily. We're back day four already. Damn. Yeah, I'm gonna try to keep this up as many days as I can. If I take a break one day or two because I'm just busy, be right back at it. I want to keep this going for a long time. I've been doing the actual daily podcast now for maybe two months. It's been a while since I started doing it daily and I'm loving it. Gets my mind right. And now I've added the dunk tips, dunk tips, life. What's going on? Black holes? I continued my research last night watching that show. Speaking of life, I went to sleep at 8 p.m. I was in bed at 8.15, slept for, I'll flash it on the screen. If you're watching on the video podcast, shout out to YouTube. My Fitbit says I did eight hours and 28 minutes time of sleep. I think that's after the wakefulness because I have an hour of 40 minutes of wakefulness, two hours of REM, four hours and 53 minutes of light sleep, and deep sleep, one hour and 35 minutes. I'm killing it. That was an amazing. So I woke up at 6.45. Natural. Boy, I feel good. It felt really good. What I was saying yesterday on my Instagram, if you follow, was the no nap gang. What I mean by that is I was so hyped from the night, the day I dunked. If you haven't seen that video, check that out for sure. It was like my highest jumping day ever. I made a crazy edits for it. I edited the whole vlog. I was just basking in it, celebrating it, feeling so good about it that I went to sleep late and then I only slept like five hours and then the next day I was exhausted after work, but I needed to go to the gym to keep my hamstrings, keep working on it. We don't stop. I realized that pushing my hamstrings, doing the Romanian deadlifts, those really help. So I wanted to do those daily because I sit on it at work and sitting on my hamstring hurts all back to the awareness dude. I'm using, I'm going full dunk life principles on these friggin. So yeah, I was always conscious of how I feel. They feel super tight after work. So I really want to get that stretch in before I go to sleep, before the day ends, but I was so tired. I'm like, do I take a nap first? I go to the gym, then take a nap. There was just no good time to take a nap. I do like 30 minute power naps. I have these binaural beats I listen to. It like eases you into sleep and then eases you right out of it. So and after 30 minutes of just silence and trying to meditate, that those 30 minutes naps, naps take what, what take feel great. And so other than that though, if I take, if I took a long nap, I probably would have woken up at like seven or eight and then I would have gone to sleep late, but I like waking up early and plus I want to get a lot done.  And I think that's a lot healthier because if you do it, it's just a harder cycle to get back in the rhythm. I was off the rhythm because of the poor sleep. So I'm not going to compound it by going to taking a long nap in the afternoon, just kind of stay up a little more. And that's what I like to do. So today I wanted to talk about jumpers knee part two, because yesterday I really wanted to get that video up, but I forgot two, two things. So yesterday I talked about the progression. So yesterday, if you missed yesterday's was jumpers knee, how to fix it, the progression from just really quick, which was literally do nothing and rest then to isometrics for a few weeks or however long it takes, then body squats, and then added weighted squats and then jumps. So that's the basic progression. But today I wanted to bring more awareness to how what you should be feeling when you're trying to fix that jumpers knee, which is the tendon health. And there's two things I wanted to mention, which is the range of motion you can handle and the tension you're causing. So range of motion is like if you just slightly bend your knee, like if you're standing up and you slightly bend, that's very little range of motion. But if you go all the way down to a full squad or bend your leg all the way, that's the full range of motion of that tendon. So you want to get the full range of motion. So you're getting the health of the muscle and the tendon. So you're getting it like the blood flow through the whole thing. That's really important. But at first, if it really hurts, don't go full range of motion. But that's another one of your goals as you're making that progress with isometrics. And when you're going to the body squats, so maybe you start body squats and you do like quarter squats, then half squats, then you could do a full squat. But the point is you want to build up the range of motion first before you start adding weight. You don't want to just add weight in that range. But you do want to start wrapping out that range. So if you can't do a full body squat yet, but you can do like slight bends, maybe just do a bunch of reps in that range. You basically want to hit that range over and over again. So you get a lot of blood flow stimulated and start strengthening a little bit and push it a tiny bit. And then the tension, the other thing about tension, the main thing is that tension is caused by more range of motion and also speed and weight. So if you have, if you're in full range of motion with a certain amount of weight, that's going to be a lot more tension on your tendon than if you do like a quarter squat with a lot of weight. So remember that.  That's going to cause more tension. And then if you're using heavier weight, that's going to cause more tension. So all these things, all those factors need to be in your mind as you're progressing. So that way, because for example, like for me, if I was trying to do it, this is what I had to learn because in the past I did it poorly is like I was lifting a lot, right? And I was lifting heavy weight and it didn't hurt my knee. But I didn't realize like I was going full depth on squats using a lot of weight. That's a ton of tension. And then the next day I was jumping, I'm like, I'm not lifting on my knees anymore. It should be fine. But jumping is a lot of speed and an even more force. So I didn't know anything about that. So even though they're like two completely different exercises, I already used a lot of my knee the day before using lifting. So I was just putting so much tension on my knee. And when you're making the progress, when you're doing body squats is like be cautious of how fast you're doing. And when you do your, that's why I say baby jumps, when you first get back to jumping, because if you just try to jump full speed, that might, you don't know, you want to go gradual, you don't want to cause like however many pounds of force with the tension of the speed of the jump, do like a very light jump. So yeah, that's pretty much jumpers knee. And now back to life. I was going to say, yeah, we're keeping it going. I have a lot of big news coming up that I might be able to share coming soon, maybe in the next few days or so. Hint hints, it's job related. So that should be really cool. I'm loving doing this podcast. I made a dope mix of my last dunk session, which I love doing as well, but I can't really post it on YouTube because it's just going to get taken down with the music, but check out my Instagram for that with YouTube. I got guests coming on. I spoke with Jay Dooth. That was super dope. We talked about him blowing up on YouTube. So I'm going to post that soon when it comes to dunk live daily. I'm going to try to post this every single morning to start your day with some frigging energy as you know, but also I'm post other videos. So there's probably going to be a lot of days where I post multiple videos a day. So sorry, but you're probably going to love it. And yeah, lastly, leave all your comments below because I want the bottom of this to be where I answer all the questions. So I'm not answering the questions in DMs where only one person gets to see it this way. Everybody sees your comment and I have one place where I can add all the information, all the value I can. So let's go. Plus I want to blow up on YouTube. Help me out. Anything else? It's a great day and I guess I'll end it with a happy birthday again, mom. Have a good one. That's it. That's really it, I guess. To to the live.


Inspector General of Police Usman Baba has reeled out the strategies being taken by the police to stabilize Nigeria's security amid threats in various parts of the country. They explained that the police would undertake a holistic assessment of the current challenges with a view to ensure the security of lives and properties of the people. The IGP stated this during the Nigeria Police Force Conference on Retreat for Senior Officers held in Unoyo, the Aqabam State Capitol. The event had in attendance the State Governor Udo Mimano and Chairman of the Nigeria Governors Forum and Ikiti State Governor Kairi Fahimi as well as top officers of the Nigeria Police Force. President Mohammed Buhari and the Senate President Ahmed Lawan were represented at the event. We hope to undertake a holistic assessment of the current internet security threats and crime dynamics in the country, identify factors that engendering crimes, re-evaluate our strategies, identify operational gaps and evolve new pathways to strengthen existing strategies towards meeting our sacred obligation to the citizens of this country. It is also our expectation that we shall leverage on the network to be established at the event to enhance professional peer review towards engendering a broader understanding of our mandate and strengthen our administrative and professional capacity. We would only just support honorable Minnesota police affairs in the task of delivering security and safety to Nigerian citizens by augmenting whatever is doing and whatever our principle the President is doing at the federal level in our various states. And we are doing as much as we can, as much as the resources in our various states permit us to do. I've always been an advocate for a robust redeployment of intelligence apparatus, both human and electronic, and I'm glad that this approach appears to have taken ascendance among other items in crime-fighting toolbox of the security agencies. With that intelligence, we may not be able to do a whole lot. So we should also look as a people as we made in this conference at other root causes, why people impressed criminal activities, especially among the youths. People, all of us, we have a role to play here. Every single person is not something just about only the federal. It's both the federal and all sub-nationals and even individuals. And don't forget to hit the notification button so you get notified about fresh news updates.


And if there's no value tomorrow, and again, there's a couple plays I'll share with you guys for tomorrow. But, you know, if there is nothing going on tomorrow, again, don't try to squeeze water out of a rock. You know, there'll always be something long-term, and that's the whole point. You're not jeopardizing one trading session burning. Welcome to Access a Trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability, and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process, and own your future. Hey guys, good evening everybody. Welcome to the last update of theAxisTrader.com nightly wrap-up show. Hope everybody is doing great. Hope 2021 has treated you well, but the most important thing, and I can't emphasize this enough, but I think all of us are on the same page. Hopefully everybody continues to be in good health. That's the name of the game.  But again, always remember the big picture, we're in a completely different world.  And again, the most important thing, just like it is in life, just like it is in trading, never, for example, in trading, never, you know, sacrifice one day for the bigger picture, and obviously in life as well. Don't sacrifice one night, right? Or a couple of nights for your long-term health prowess. So hopefully everybody's doing well. Hopefully you guys had a great year, and the next time you see this broadcast, it will be 2022. So let's wrap this up, right? Let's wrap this up. You know, Mark had played out today pretty much like we thought, right? Like I talked about yesterday, I was very unenthusiastic, kind of going into today's session. I didn't really expect a lot. The names that we talked about last night in the video, you know, they played all right. There was a one big significant play today. We'll talk about that in a second, but you know, they played all right. REV had this really nice move. We talked about this last night, went from 12 and a half to nearly 14, square that we highlighted last night, got below this 62 and a half area, went all the way down to 58 and a half, you know, Moderna, and I kind of like this possible Moderna play for tomorrow back to the upside, but you know, took out this whole channel here, you know, went down about four bucks and held a perfect double bottom. This is kind of why I like, maybe for the upside move tomorrow, we'll talk about that in a second, but that's kind of what it was. You know, if you look at the indexes today, they did exactly pretty much what we talked about. NASDAQ had this really, really big run. You know, a lot of names just kind of drifted. They did absolutely nothing, but the bullish part of what they did today was kind of a setup going into next week or next year was the successful back test into this rising five-day support. And if you look at a lot of the strong names today, you're gonna see a lot of the same similarities and that's the most important part. There was no significant selling because there was not a mass vast participation today in the market. If you looked at the options market today, there weren't any significant seven figure bets.  It was just kind of a day. It was basically a couple of days before the end of the year and around 11 o'clock in the morning, you started seeing the volume just drift and drift and drift and slowly but surely kind of gone away and that's what it is. That's what it is. And tomorrow, give yourself a couple of hours, trade to like 11, 1130, maybe noon. And if there's no value tomorrow, and again, there's a couple of plays I'll share with you guys for tomorrow. But if there is nothing going on tomorrow, again, don't try to squeeze water out of a rock. There'll always be something long-term and that's the whole point. You're not jeopardizing one trading session, burning mental equity or burning physical capital to kind of pacify you because, quote unquote, you need to trade again. So if I was very enthusiastic about tomorrow, well, hell, I'm gonna be definitely a much more enthusiastic for tomorrow's session. I mean, do you have some names that look good? Yeah, you do, you know, STX, maybe needs a couple of more days trying to attack the top of the channel here. That looks pretty good. Maybe a name like Visa. It's actually doing a lot better than a lot of the financials. And if you look at Visa's run, they had this big, big move, consolidating over the 50-day moving average, keeps on bouncing off this rising five-day moving average. So, you know, Visa, just all it needs to do, if the financials are strong tomorrow, just needs to clear out this whole channel here. And maybe get a $5, $6 pusher, not a bad looking chart as well. Moderna, right? Moderna does not look horrible, right? There's nothing horrible about it. You could see here, there was a double bottom here, right? Say it lost that 277 pivot, went down to the lows of December the 10th, which is 233, if you see today's low, da, da, da, 233, it held a double bottom. So if Moderna starts, you know, starts accumulating, starts accumulating, starts building above today's channel, maybe you have a nice snapback day, five, 10 points, depending how strong the move is. So again, you know, there's not a lot of meat, but like I said yesterday, there's going to be enough that you could kind of band-aid a day today.  But more important things, guys, again, stick to your guns, stick to your discipline. Again, everybody uses the word patience, but most people, you know, are just afraid to apply it. But the bottom line is you need patience. You need to be reserved sometimes, because again, sometimes you will play a hand, and you're playing a hand strictly out of boredom, and your heart's not in it. That means your tear size is not in it. That means even if you make money, you're not going to make money on the tray, and if you lose money, you're going to burn more mental equity than there is on the actual monetary side. So again, unless you're getting a really, really good technical setup or technical defense, what's the point, right? Like what's the point here? Again, there's always will be cleaner, more majestic days with expansion channels that we talked about last night, and the most important part is, again, you're extending your shelf life, and what you're doing is getting much more screen time that's valuable for a day like tomorrow the next day than anything else.  You know, I'm going to watch Roku. I know I was watching this thing maybe for some sort of PR. If there is no PR tomorrow, you know, look at the bottom of this channel here. In case the market pulls tomorrow, you know, this thing held three separate times in the bottom support. You know, eventually something has to give here in this top of the channel, the bottom of the channel here. So we're going to keep an eye on both. So I'm going into tomorrow. I'm kind of Delta neutral. You know, maybe we get a bounce back day tomorrow in some of the key tech names, but like I said, like I mentioned a few minutes ago, the key more macro area was today we came down slowly, tested the rising five-day moving average. Again, that is a short-term sentiment and we bounced and a lot of bounced with it. And let's kind of segue that into today's channel. So, you know, we talked about it. You know, yesterday we talked about on the video 62.50, 62. If it builds below can flush, it was square, right? Nothing crazy. Here's a 62.5 went down to 58.5, not a bad move, right? Not a bad move at all. I was going, I was watching to the upside, never got there. Amazon, I was watching to the upside, never got there. Pfizer, I was watching to the downside, 57 held twice. Well, now Pfizer held 57 three times, right? One, two, three. So that 57 is going to be a big, big area going forward. But hey, if Moderna has a, you know, maybe a snap back day, maybe Pfizer does as well. Who knows? The video is watching to the upside, obviously never got there. Here's, you know, here's a pivot on Moderna, 237 is a sneaky pivot, 233 is macro. It went from 237 down perfectly to 233. The only thing is it didn't confirm, right? Didn't confirm macro, but again, not everything is not everything is going to be perfect. Revlon, we talked about this last night, 12.50 needs to build again, lower volume. They joust this thing. It went to 13.85, not a bad move at all. AMC, if it builds below, can flush. It went down to like into the 2660s and then kind of reversed, nothing crazy there either. So again, take on the way down to Moderna, take on the way down on square, blah, blah, blah. And this was definitely, definitely, definitely the play of the day. Again, I went into today with absolutely no expectations. I had no, you know, disappointments. And then something fell into our lap. So again, the five-day moving average, just like the same way we saw the Qs today, right? Test the five-day moving average. Again, for all you guys who are kind of joining us recently, the five-day moving average is, the five-day moving average is the shortest term sentiment. And whoever takes control of the five-day moving average will probably have a shorter term bias in that direction. And this was the play. This was definitely the play of the day. Tesla for longer term view, 1066 is the five-day moving average if bulls defend can snap back. And Tesla was great, absolutely great. Here was Tesla, as you can see here, it tested perfectly. Everybody see this orange line, right? 1066, it got down to 1064, remount to 1066, and just exploded at one point. It went green, traded up to like 1096. For all you guys who are holding a runner, that's the point, hold the runner now. You got a macro play, you're using now, break even as you stop, right? You pretty much have a play that's against the five-day moving average. So if there is an update tomorrow in the broader market of technology, and Tesla starts reclaiming shorter term levels, and hey, maybe you could get a move right back to the top of the channel here. So here is the defense, they bulls held. We saw some pretty aggressive call buyers coming in. Also today for the Januarys, we saw some 1400s, some 1300s being bet. So Tesla, just like the Qs, successfully tested the five-day moving average they held, they snapped it back, and now it needs to start reclaiming the previous couple of days' levels. And who knows, maybe you're gonna move all the way up to the upper Bollinger band, so that was fine as well. And that was pretty cool. And again, that's kind of the whole point of technical analysis. You don't need opinions, right? You don't need somebody on a message board talking about Tesla's going to 500, the next person saying it's going to 1500. Just look at the charts. Look at the charts. They're your ultimate guide, your ultimate lifeline, and there is nothing else more pure than technical analysis. Again, if you took it for a day trade, take on the way up, use break even as a stop, and it kept on going, right? It kept on going. The first move went to 1072, and then you started seeing moves all the way to 1081. And then we had one more, and then Tesla went green, right? Tesla went green, so a huge, huge pop and Tesla $30 move off the five-day moving average. Again, for tomorrow's session, I would like to see technology to kind of wake up just to see if we can get some sneaky channels, maybe the video will wake up, all the ones that kind of led higher. Because if you look at some of the names that didn't sell off to, they held fine. Apple held fine, Microsoft held fine, right? There's a lot of names that did pretty, pretty well, considering the consolidation to pull back into the five-day moving average. So for all you guys who are finally, finally get off the fence and are interested in trading pivots, we got a couple of days left, a really, really cool offer for all you guys to kind of test drive the pivots to see if they are right fit for you. If you've been kind of watching this broadcast for the last year or so and you're finally ready to go, we are starting brand up 2022 on Monday. We learned a lot of good things this year, just because of COVID and kind of folk to start attention to trading. We implemented a lot more things. The bounce plays have been really, really great. It's been a big fixture on the day-to-day. The option flow is just a must, an absolute must in every trader's toolbox, I guess. And the most important part is we eliminated a lot of the things that drive traders into a premature exit in this business and hopefully we'll start implementing more and more for 2022. So for all you guys, God bless, I wanna wish everybody a happy new year. Next time you see me and hear my voice we'll be on the 2022 weekend update. Guys, God bless, hope everybody has a great trading day tomorrow. Stay healthy and with God's help we'll see you each other tomorrow. Take care.


Any here like 2020. How did this turn into this? Close to her house. Wow My name is Matthew Horkey my partner in crime and I travel around the wine world full-time Tasting and documenting our finds through writing and video. We were hoping to have a breakout year in 2020, but then COVID happened. We found ourselves locked down in a tiny apartment in Zagreb Croatia asking ourselves How can we continue to work? How do we move forward and then? Wow with all the stuff going around the crazy world Coronavirus everything we're walking up at 6 7 o'clock 15 a.m. This morning in Zagreb There was a little bit of earthquake the building was shaking As locked down eased up in Zagreb. We were able to travel throughout the country and revisit some old friends All these winemakers inspired me with their tenacity to move forward despite the difficult year Seeing them in action reminded me that despite the current conditions the vine and mother nature moves on Which means I should too. Oh welcome back to exotic wine travel You


Number one, acknowledge and accept your emotions. In order to stop feeling this lingering, unexplained emptiness, you must acknowledge it and accept it. You may not be able to control every situation, but you can control your attitude and the way you handle the situation. Are you feeling lonely? Do you feel disconnected and oddly numb? Allow yourself to feel that way if you do. Even if it's dulled or hard to reach, it's completely okay to take the time you need to deal with heavy emotions, maybe you buried your bad feeling emotions or tried to ignore them, but the first step of healing is to sit down and process all those feelings, whether they're good or bad. All your feelings are valid and important. Number two, let go of the shame and blame. In the process of reflecting and trying to better understand this lingering feeling of emptiness, you may feel a sense of shame. While struggling with feeling empty, you're also likely to feel a great sense of self-criticism and guilt. Psychotherapist and author, Ema Lowe, states in her article for psychology today that it's important to remember that your numbness grew out of a place of pain and tenderness and was nothing but a desperate attempt to survive. Shaming or punishing for becoming numb in the first place will only reinforce the destructive pattern. Although it can be challenging at first, you will need to eliminate any self-blame so that you can move forward successfully. Number three, identify the root cause of your feelings of emptiness. Now that you've acknowledged the emptiness that you've been feeling, it's time to get down to the root cause of your feelings. What exactly is it that's bothering you? Maybe you feel fatigued and burnt out and are in need of a break. Maybe you feel lonely because you feel isolated from your friends and family, or perhaps you feel numb from going through a recent hardship in life. Whatever the reason may be for numbness, identifying these feelings and more importantly, where they're coming from will help you move forward as you understand the true source of your emptiness. Number four, notice and appreciate what you have. When you feel empty, numb, or hopeless inside, it can be really easy to overlook the positives in life. Take a moment to pause, reflect, and count your blessings. What are some things you're grateful for? What makes you wanna get out of bed every day? What's keeping you going through these tough times? Maybe you're thankful for having a supportive family or a roof over your head. Maybe you're thankful for your pet for always sticking around. Or maybe it's the fact that your body is keeping you alive and running. No matter how trivial or insignificant it may seem, take note of it. Physically write it down or type it up. Visually seeing a list of all the things you're thankful for can really help you gain a more positive perspective and strengthen your mind to fight this dreadful feeling. Number five, create and follow a healthy routine. Refocusing yourself can make a great difference in allowing you to give yourself the opportunity to get back on the right track. Create a realistic, balanced routine that can be achievable on a daily basis. A few important factors you should include in this routine should be some sort of physical activity, plenty of rest, ample hydration, and a nutritious diet. And don't forget to make time for some fun too. You can organize this with the help of a planner, a to-do list, or even reminders on your phone. The little things can add up to make a big difference and being able to check off everything you've accomplished over the course of the day can really give you a sense of achievement. Number six, practice mindfulness. To be mindful, pay close attention and make a careful observation of your thoughts. The Selene Institute highlights how mindfulness is exceptionally beneficial stating that mindfulness calls us to notice when our thoughts have drifted to the past or wandered into the future. And when we're regretting, fantasizing, or worrying rather than engaging with what's right in front of us. Mindfulness can allow you to obtain better clarity, comfort, and tranquility in your thinking. Learning, practicing, and implementing the concept of mindfulness in your day-to-day life will truly be an extraordinary superpower that can help you ride the unpredictable waves of life. Number seven, try to learn something new. Depersonalization along with multiple other mental health issues gets worse when the brain is being under stimulated and inactive. Various neurological studies have shown that learning new skills can significantly improve your brain's competence and proficiency. It can allow you to revitalize your minds while giving you the opportunity to find a productive way to channel your built-up energy. You could try learning a new language, playing an instrument, cooking up delicious meals with new recipes, taking up yoga, hand lettering, or pretty much any other productive activity. The sky's the limit. Give yourself a chance to break out of your shell. And number eight, reach out for external help. One self-help isn't quite working out the way you'd hoped. It's always great to reach out to someone to aid you through your recovery. Internal battles sometimes need some external help and that's perfectly okay. Reach out to a trusted family member, friend, or mental health professional. Having someone to talk to can really help get perspective for your problems. It can be challenging to open up to someone else while you're feeling so emotionally numb but making meaningful connections and asking for help can give you a strong foundation for a true inner transformation. Lastly, here's a friendly reminder that your journey to self-healing and revitalization will not happen overnight. Persistence and continuity is the key to recovery. Remember that every well-intentioned step that you take to get yourself out of this emptiness is a step in the right direction. It could take multiple trials to find out what works for you but the effort will always be worth it. At the end of the day, it's all about progress, not perfection. Please like and share this video if it helped you and you think it could help someone else too. The studies and references used are listed in the description below. Don't forget to hit the subscribe button for more Psych2Go videos and as always, thank you for watching. We'll see you next time.


If we want to engage them on the democratic process, we have to let them know that the democratic impact can change their life. And what was not only a supportive and informational way to give them this information, it was also a real talk about the importance of the civic engagement and how through the democratic system youth can contribute to make a change as a first step.


This is Barricade, G.I. Joe's Bunker Buster. We have two versions of Barricade. Version 1 was available in 1992, and Version 2 was available in 1993. According to Yojo.com, Version 1 was only available in 1992, but there are some examples of the 1992 figure on the 1993 Battlecore card. Version 2 of Barricade was only available in 1993 and was discontinued for 1994. There were no other versions of Barricade in the vintage era. There were a couple post-vintage versions. A Bunker Buster is a munition that is designed to destroy heavily fortified or underground targets. Merriam-Webster gives 1985 as the first usage of the term. It was a term that entered the popular lexicon during Operation Desert Storm in 1991, when this figure was being designed. According to pre-production material, Barricade was originally going to be the second version of Downtown. The Mortar Man from 1989. That's surprising, since I think Downtown should have been the second version of G.I. Joe's first mortar soldier short fuse. As we will see, Barricade's role doesn't fit a Bunker Buster or a mortar soldier. If you grew up in the 1980s, you may recognize Barricade, but you may know him by a different name, Captain Power. Captain Power and the Soldiers of the Future was a toy line produced by Mattel in 1987. It had an accompanying television show made by Landmark Entertainment and Ventura Pictures. It was an innovative interactive show that provided a game for the toys. The show included targets that could be seen by the electronic eye in the toys. By shooting the TV screen with the Powerjet X-T7, you could register hits. It was a really cool idea. The toy in the TV show didn't last long, but it is one of the most creative forms of children's entertainment in the 80s. But the creators of G.I. Joe wouldn't copy a toy from another toy line, would they? I mean, they copied from Aliens, Captain Planet, Ninja Turtles, Star Wars, but not Captain Power. Captain Power was canceled years before Barricade was released. But it's the same guy. That's not to say that Hasbro was trying to latch onto the popularity of a show that was long gone before Barricade was designed. Maybe it was Homage. Maybe it was a sign of respect. I don't know. Version 2 is identical to version 1, except the blue parts are changed to orange. Even the accessories are the same. This skirts the line of demarcation between a variant and a version. That is a discussion detailed in my review of Firefly versions 2 and 3. Version 2 is part of the Battle Course series, which was the main line of G.I. Joe toys in 1993. I have the full cards for both versions. We can see how these figures were marketed in 1992 and 1993. Version 1 first appeared on the 1992 card. It was also on the Battle Core 1993 card. Then, sometime in 1993, they changed the color of the figure, producing version 2. And all version 2 figures were produced on the 1993 card. The artwork was not updated to reflect the new colors. If only the colors were changed and nothing else was the updated figure really intended to be a new version or just a variant? The 1992 card has the G.I. Joe logo. It has some pretty good card art. It says battering ram launcher shoots, battle stand included. There are some instructions on how to use the spring loaded missile launcher. Barricade was number 9 in the 1992 series. And this figure was $2.99 at Toys R Us. On the back of the card, we have the cross-sell. We have an advertisement for drug elimination force, eco-warriors, and ninja force. This figure was worth one flag point. And we have the file card, which we will look at later. The 1993 card has the Battle Core logo. Barricade was number 17 in the Battle Core series. It has the same artwork as the 1992 card, but it now has the blue laser stripe background. It still has instructions on how to use the spring loaded missile launcher and the battle stand. The back of the card has the cross-sell and an advertisement for DEF and ninja force. The flag point has been removed on my example. Then, of course, we have the file card. Let's look at the accessories for Barricade. Both version 1 and version 2 had the same accessories, so we only have to look at them once. Let's start by looking at Barricade's helmet. The file card calls this helmet. Titanium reinforced concussion-proof headgear. The helmet is gold with a red paint application. It is made of a soft, flexible plastic. I like the flexible plastic accessories from the 90s. There's less chance of breakage. It looks a bit similar to Captain Powers helmet. The biggest difference is Captain Powers helmet has blue instead of red. However, the card art for Barricade has blue on the helmet. Next, let's look at Barricade's submachine gun. The card calls this a sophisticated Z99 battlefield sidearm. It is in blue plastic. It is not based on a real-world weapon to my knowledge, but it still looks good. This gun was issued in black for Cutter version 3 in 1993. The next accessory is the backpack. It is in blue plastic. I am using the one that came with my version 2 figure. You can see that it has a slot. And on that slot, you can fit the spring-loaded missile launcher. Mine is a very tight fit, and because it is such a tight fit, I will not put it on this backpack. I did put it on once, but it was such a tight fit that I almost did not get it off. The backpack that came with my version 1 figure isn't quite such a tight fit, so you can pull the thing off. This is a spring-loaded missile launcher. These were an innovation for 90s GI Joes. It is in blue plastic. It has a yellow trigger in the back. This missile launcher was reissued in 1993 with Colonel Courage in gold plastic. It did not include the backpack. According to the artwork on the card, the grip is supposed to be on the top of the launcher. This does not fit on my action figure's hand, and I'm not going to force it. Above the missile launcher barrel, it looks like it has a multi-barrel machine gun. The card calls this an 8-barreled multi-shot, never-miss machine gun. Barricade included one yellow missile with a battering ram tip. The card called this a high-powered wall-smasher battering ram. This oddly-shaped yellow missile was reissued in 1993 with Colonel Courage just as the launcher was, and this time in green plastic. To operate the missile launcher, just place the missile in the barrel notch side up. Press until it clicks. To test this missile launcher, let's bring in our old friend, Dr. Meinbender. To fire the missile, just take aim and press down on the trigger in the back to fire. Barricade included one other accessory. It is a figure stand in black plastic. This was a great thing about 90s figures. They mostly came with figure stands, and 80s figures did not. Let's look at the articulation on Barricade. Both version one and version two had the same articulation, and it was the articulation that was standard for GI Joe figures well before 1992. He could turn his head from left to right and look up and down. He could swing his arm up at the shoulder and swivel at the shoulder all the way around. He had a hinge at the elbow that allowed him to bend his arm at the elbow about 90 degrees. He had a swivel at the bicep that allowed him to swivel his arm all the way around. This was an O-ring figure, meaning it was held together with a rubber O-ring that looped around the inside, not allowed him to move at the torso a bit. He could move his legs apart about so far. He could bend his leg at the hip about 90 degrees and bend at the knee about 90 degrees. Let's look at the sculpt design and color of Barricade. I was going to warn about gold plastic syndrome for this figure. Gold plastic produced in the 80s and 90s tends to become very brittle over time. For Barricade though, it doesn't look like most of his parts are made of gold plastic. He is mostly a base blue plastic color with gold paint. Looking at Barricade's head, he has black hair. He has a subtle sneer. This face was probably based on a real person as many 90s GI Joe figures were, but I haven't been able to find a source for who this may be. On his chest, he has a blue uniform with gold armor on his chest and back. On his back, he has a protruding pack that is similar to the pack on the Captain Power figure. On the Captain Power figure, that looks like it's supposed to be a jet pack. Not so on Barricade, but it still looks similar. On his arms, he has long blue sleeves. He has gold armor on his shoulders and he has gold Iron Man style gloves. The waist piece is all gold with no paint applications. It is just solid gold armor. On his legs, he has a blue uniform with gold pads on his thighs and straps that go around his upper legs. He has gold knee pads and tall gold boots. These legs are very similar to Captain Power, whose legs had a blue uniform with gold thigh pads and straps around the upper legs, gold knee pads and tall gold boots. These legs were used on two figures in 1994, gears and Cobra Black Star. The color scheme is not suitable for most combat environments, but if Barricade works in an urban setting rather than a traditional battlefield, it may not matter that much. Version 2 of Barricade from 1995 is exactly the same as version 1. The only difference is the blue parts have been changed to orange. The paint applications are exactly the same. The articulation, the accessories all exactly the same. Even the copyright stamp and the country of origin stamp on the figures are the same. Let's look at Barricade's file card. The 1992 file card has a portrait of Barricade and a full body picture of Barricade that is taken from the artwork on the front of the card. It has a numbered list of features and I have used this list to describe some of the accessories and features on the figure. His code name is Barricade, he is the Bunker Buster. His file name is Philip M. Halsinger. His primary military specialty is Bunker Buster. Secondary military specialty is Badger Driver. The Badger was a 1991 GI Joe vehicle that was discontinued for 1992, so it was not on the shelves at the same time as Barricade. His birthplace is Pittsburgh, Kansas, and his grade is E5. There is a quote here, presumably from Barricade himself. It says, Never kick down a door that you can blow down with a satchel charge. The figure does not include a satchel charge. This paragraph says, When Cobra takes over a city, it has to be one back, block by block, house by house, room by room. Barricade, GI Joe's armored assault specialist has nerves of steel and trip hammer reflexes necessary for the job. Outfitted with a suit of flexible composite laminate armor and a helmet with built-in infrared heat source sensors. Barricade can take on any Cobra agent in an urban environment and knock his block off with relative ease. Knock his block off. So are we borrowing from Rockham Sockham robots now? There are some minor changes on the 1993 card. They did away with the registered trademark symbol next to GI Joe. And he's now the urban assault specialist instead of the armored assault specialist. This is the kind of change you saw in D.E.F. characters that were re-released in 1993 like bulletproof. But Barricade was not in D.E.F. They did not need to make this change. What this card is describing is an urban assault trooper, not a guy who blows up underground bases. His role is more like a SWAT specialist like Shockwave. In fact, Barricade looks a little like Shockwave version 3. So Barricade could have been Downtown or Short Fuse or Shockwave or Captain Power. The GI Joe collector's book published by Hasbro in 1993 has two entries for Barricade. The 1992 entry has his specialty as Bunker Buster Specialist. The 1993 entry has his specialty as Urban Assault Trooper in parentheses new colors. This specialty didn't make it to the 1993 file card. Based on the file card, this seems to be what he was always meant to be. He's not a Bunker Buster in the conventional sense unless you mean busting into bunkers through the door. Looking at how Barricade was used in GI Joe media, that won't take long. He had no appearances in the animated series and no appearances in the GI Joe comic book series published by Marvel Comics.


meat boy is back and today we are making sloppy joes which I'm genuinely surprised I haven't made yet because it's really just a bunch of ground beef on a bun you can't get much more carnivore than that and in the context of getting kids or picky eaters to consume more animal protein this is as good as it gets usually these recipes sneak in some high quality dairy bit of steak here and there but to actually get someone to consume you know a quarter or half a pound three quarters of a pound of meat in one setting to get the B vitamins and that animal protein that the average person is so deficient in nowadays is a bit rare so let me show you guys what ingredients we need so there's three stages to this recipe we're going to brown the meat take it out of the pan caramelize the vegetables and then put the meat back in with the sauce and let that simmer for maybe 15-20 minutes for the meat we're using 100% grass-fed top-secret blend on Frankie's free range meat so if you go under the ground beef section this will be available and I'll do a video on this in the future when I'm 100% ready to launch it but this is just really special just I've messed around with a bunch of different cuts and this is what I have came up with Frankie's free range meat calm top-secret blend the vegetables we need are one onion one green bell pepper and six cloves of garlic I've already diced that up and then for the sauce we have ketchup coconut aminos honey to sweeten it a little bit some mustard and some butter that we're going to saute the meat in and there's some variation in these recipes the veg is typically the same sometimes they'll use tomato paste instead of coconut aminos they'll use Worcestershire which is to me not that high quality and this is basically identical a few tweaks to make it healthier as well as a little bit tastier almost forgot I did grab some wagyu beef tello from Frankie's free range meat because I don't want that butter to burn so much when I'm caramelizing the meat I want to be a little careful because this pan is really hot but so I have two pounds of beef and this recipe is a lot you know maybe two or three nights of leftovers for your family but if you're gonna put in the effort to make something this high quality you know you want to have those leftovers and I put the meat in the pan like this so that we can get a nice browning and caramelization if you just put the ground beef in here and start breaking it up it's gonna start sweating and releasing a lot of moisture and it's ultimately going to steam instead of caramelized now most recipes what they'll do is you know they'll break it up they'll completely kill it they'll take it out put it back in and then cook another 15-20 minutes which is way way way too long at least this way we can keep most of it raw still get that caramelization and then put it back in that should be good now we're gonna add two tablespoons of butter to the pan so that when we saute the vegetables we add a lot of flavor and again this is one bell pepper one whole onion and six cloves of garlic so these we just want to soften I mean I guess you could caramelize them if you want to try to add some more flavor but every recipe I've looked at just softens the vegetables for three to five minutes so while that's sauteing we have time to make our sloppy Joe sauce and in this measuring cup I already have two-thirds of a cup of filtered water to that we're going to add one and a half cups of ketchup you want two tablespoons of honey some recipes use brown sugar some recipes use white sugar about one tablespoon of the coconut aminos one teaspoon of mustard half a teaspoon of freshly cracked black pepper and I'm going to put a decent amount of salt in here because I haven't seasoned any of this dish yet all the salt is going to be in this sauce there's no salt on the meat there's no salt on the vegetables just you know two or three teaspoons in here or put one teaspoon in here and then season the vegetables and meat accordingly so this is where everything comes together we're gonna put our beef back in the pan and we're going to pour in the sloppy Joe sauce so now I'm just gonna break up all the beef alright so everything is nicely mixed together as you can see there's still a lot of pink in here the beef is mostly raw throughout so we're gonna let this go for 15 20 minutes and then we'll check in when everything's cooked and the liquid has reduced slightly so we let this simmer for about 20 minutes took it off the heat it's going off now and it looks perfect it's a bit late so my lovely sister is not here to taste test however I'm sure she will enjoy this over the next few days I put a little bit in a bowl on the side just so that it would cool off a bit faster than the rest and for the buns I just went to Whole Foods and bought the organic white buns the whole wheat don't really taste that good Dave's killer bread does have a pretty good brand that tastes good that I didn't see there today and the ingredients on either not ideal but it's really the only option in the supermarket there's not that many organic buns available you know we gluten cane sugar canola oil but this is not bad you know if you're again compared to what your kid would normally eat or an average stands in American diet or I'm hoping to do a recipe on burger buns in the future it's just a lot of work so I've been kind of delaying that however this will do for the sloppy joes now I am not a sloppy guy I don't like eating with my hands I don't like getting messy you know if I get like a little bit of food on my hands or face I have to like use four napkins to wipe it all off I mean it's basically pure ground beef on a burger definitely sloppy predominant flavor is beef hints of the ketchup a little bit of the vegetables so let's say you know you don't want hot dog buns you know your keto or like a not so strict carnivore how does this taste on its own I mean it's good stuff as someone who usually likes rare meat or well not well done like this I can even go for this you know a couple times a month as a nice change of pace so hopefully you guys try this recipe for yourself your family or your kids and you enjoy it if you can please drop a like on the video leave a comment down below subscribe so that YouTube can unsubscribe you next week and be sure to check that notification bell so they don't notify you of my videos if you guys have any recipe ideas please let me know down in the comments below and if you guys do want to support me you can see all of my businesses on frank dash to follow calm we have that top secret blend as well as the wagyu beef tello Frankie's range meat calm and then you can see all the other businesses on frank dash to fire calm thanks again guys and I will see you tomorrow


Hi, everyone, this is going to be another fairly short video. I'm just going to do something that I've actually shown you how to do one time before, but I'm going to show you again. I want to take this demonstration data project that I'm going to use to show you how to do problem set for and also your semester-long project. Remember, do not use this data file yourself, because the whole point, you can use any of these others. But the whole point is for you to be using something original, at least not directly copying my work. You've got to be doing something a little bit different. But I want to move it over to that demonstration project directory. So I'm going to do what I did in the last video. I'm going to do copy 2. And I've got to come out a couple of levels. And I'm going to this demonstration semester project. And normally, I would put it in a data directory, but this is the only data I'm going to use all semester.  It's not the best way for organizing, but it's going to make things simpler through the semester. So I'm just going to save it in the main directory. The next thing I want to do is actually get over to that project and start using it. So there are a couple of ways I can do that. I can come to the recent projects, and it's there. If you don't actually have it in your recent projects, it won't be there. Another way is I can come over here, and this also has the recent projects, and it's there. Or I can come to the File menu, and I can say Open Project. This is the hard way. And I have to know, in order to do it this way, I have to know where it is on my computer. And I know that I have in my documents, I've set up this R projects directory. That's a slight change from earlier in the semester because I got a new computer. So I just named it R projects. And down there in R projects is the demonstration semester project. And to open it, I have to look for the file that has the .rproj extension, .rproj. As the end of the file name, I can double click on it, or I can highlight it and click Open. Either way, that's going to open up that project. And when we get there, I copied that data set, the demonstration data.csv. And there it is. I'm going to leave that for now. And on the next video, which is going to be a little longer, I'm actually going to open up that data set and do the first several problems on problem set four.


od i'm starving so um thank you everybody um again big shout out to everybody uh all the mods uh dawn especially dawn who's been here uh so much over the last two weeks and also the us open series just uh keeping all of you guys in check making sure the madness doesn't get out of hand so big shout to dawn pat was here today foot fault uh ang allison uh all popping in and out during the tournament um so thank you the mods doing a great job as always not easy dealing with the chat sometimes people get passionate and passion creates feuds and dawn does a great job along with the other mods of uh trying to like settle things down when things get crazy um even though i'm not making it any easier by yelling and screaming but hey uh shout out to the mods also shout out to the members thank you so much big shout out to jack who uh gifted so many members um so many members this tournament shout out to jack all the donations um i mean we've got some ridiculous donations today but uh thank you for the everyone who's donated anything from a dollar to a hundred dollars uh appreciate it you don't have to donate as i always say you don't have to donate but um it does help the channel so appreciate it and just thank you to everybody who joined throughout the whole stream subscribe like all that stuff um thank you for hanging out at this us open the grand slam season has officially finished and carlos elkres is a champion and he is now the world number one which i didn't think would be saying this year to be perfectly frank even when he was winning i didn't expect elkres to be number one this year so uh crazy i'm so excited to see what happens over the next few months tennis continues the tennis continues we've got davis cup next week we've got atp wta finals in november uh september laver cup in october we've got some of the asian swing some smaller tournaments we've got so much time as so much tennis to go uh to finish off this massive season this historic season um so uh don't be a stranger make sure you join us even though the us open is done tennis isn't done and we continue to watch so uh appreciate everybody for uh for hanging out and i'll see you guys next week at some point i don't know when um but we're taking a couple of days i need to just you know i think we all needed just a little breather let's soak in this achievement uh of elkres and just kind of appreciate it give it a couple of days to appreciate and then we can uh return with a bang uh at the davis cup so thank you so much everybody i'll see you guys in the next few days uh stay tuned on the channel we've got plenty of videos coming out obviously ranking show comes out today uh so watch that one and also news and all that stuff going forward but um appreciate it thank you for watching us open done dusted 2022 us open it's over elkres is a champion he beats kasparud 64267663 he's the world number one and the grand slam champion 19 he's 19 what were you doing at 19 i was getting my license see you soon


You can close this one first, and then you can do, you can close this terminal, open the terminal first. You validate your Python, take drum, this one is on the, we have Python 3, 8.2.2. So we need to install the latest version of Python, don't do it here. So we need to install the latest version of Python, go to the browser. Now you can type our though, you can type out your Python.org. Okay, you can search the Google also. Then you can find your Python.org. Oh, I see. Oh, I see. No, wrong. Yes. Go to the download section. No, go to the download section, yeah. You see there already they did up the Python 3.10.18. Here you see down here 3.7. What are doing?  You can see there down, the 2.7, 2.7 is enough advice. This cannot be used again anymore. Okay. It's not recommend for development. So this one you read, so just click the download button. Yeah. What is they called? Okay, no problem. You have already downloaded it. Okay, you have already downloaded. So go to the download folder. Is there available? Oh, no. Wait, I'll drink for you, I'll drink for you. You didn't have there, did you? I had one. Yeah, you already downloaded it, did you? I had one. But did you laugh? I had one. But are you a sinner? Because we have sins, we use our names. So go to the, okay, like this. Go to the here, this is your home. Okay. And then, not to the home. Go to the computer and then Mac and thoughts. And then user. Here you got the limbo, is it? This is old user name, so here click here. And download. This is your engine? Yeah. Okay. Now you do read about this one, all about this. Continue. Then this is software agreement. You need to agree the software. Okay, so install the software now. You need to type your admin password. Write in file. So this one is found out because 10. Install. It's in install running package 3. It's already update. You can close it. Close, close down. Okay, no problem. Open your terminal. Okay, now take Python 3. First, yes, yes. No, no, no, no, yes. Yeah. Yeah. Oh. Oh, yeah. We are wrong again. Okay. Because we need to type Python 3, is it? iPhone, iPhone. Maybe you never quit the terminal. Okay. I always do that. Okay, maybe you never quit the terminal. Okay, this one is awesome. Okay. Now you open one time your terminal. Okay, type Python 3. Yeah. Awesome. Yay. Because that's how we will get around because we never quit the terminal. Yeah. Now you can write some code there. Python 3. Is it? So, okay, start. Python 3 and hello. Print out the hello. Did you get it? What is wrong? Because you never type Python 3. You need to write Python 3. That's the software you need to do first. Yes. Excellent. Amen. Send X in your room. You don't need, you cannot do this space there. It's 7 plus 9, not equal. Also, the space. No, equal. It was just 7 plus 9. You do now. Yes, is it? Yes. Also, you can do long like this. 1 plus 2 plus.  Is it? I know. 1 plus 2 is a 3. A 3 equals 6. Plus 4 equals 10. Plus 5 equals 15. So, it is. Also, you can make a multiply and divide. Because there's a 5 in here. That's 55. Good. I don't need to make 50, but this 5 may get 55. Which one is the divide button? Divide it. This one? Yes. But it's okay, you are fine for this one. So, you already installed the Python 3. Now we are ready to run the software. Next video. We run some code here. And then we write to the text. It's a simple text file. And then we write to this program. Okay? In the future, we'll take it from calculator. Some apps. And then we can run to your computer. Or your browser, web browser. They can use anywhere from the globe. Okay? Yes. It's great. Okay, that's it for today. Thank you.