Derek, Mike said that he wants to kind of get back to the basics in a way for what this offense can do. For you, what does that mean, running the ball differently, but what needs to change I guess? You all have the same mindset, getting back to the basics, doing what we do, doing what we know how to do, and go out there and execute it. Back to the basics this past week, fundamentals, working on small things and improving. Did you see that transfer into the game, even though it wasn't the outcome you wanted? What specifically do you want to work on fundamentally that would be different from what you did last week? I mean, I think we did it in our first drive, but we didn't sustain it throughout the game. And you know, end up losing. That's what happens. But I think you just keep working on it, keep heavy emphasis on it when you're out here on the practice field, meeting room, and continue to work on it until the Sunday comes. What do you think you guys have done differently, maybe to lead to those struggles where the first drive seems to be going to plan a lot of the time when it's scripted, you guys kind of get off script and have had some trouble sustaining drives in these first two games? Yeah, I think, you know, that first drive, you know, we were into it, moving the ball and playing how we wanted to play and, you know, got in the end zone.  And I think that's just the main focus.  And then we know if we do that, we give ourselves a good chance. How would you describe the shortcomings in the rushing attack? Where is it like, is it something that you guys aren't doing or is it something that opposing teams are doing to stop it or slow it down? No, it just takes all 11. We got to be better. On my part, I got to do my part and be better and it takes all 11. So just focusing on it, being better at it and working it out here. It comes Sunday. Make it all come together. How do you and the team lean on the success of the past rather than kind of referencing the failures of the last two weeks? Just a little adversity when the sky's not falling. And we know we'll be fine, you know, just to stay with it. You know, we got the man in this building that'll get it done. You know, it takes a lot of hard work and improvement.  It takes all the left guys to make it happen. You just said that. But are guys sometimes when things don't go well, maybe guilty of trying to do too much and maybe just not not cleaning up their own details and trying to do too much and help too much? No, it's not an individual sport. It's all of us.  That's a part of the game. But as long as you see that mindset want to improve and, you know, still working as hard as they can, it's all you can hope for. It's not always going to be perfect. What has been kind of a move mindset this week? What's it going to take to win on Sunday? I think coach put it perfect. Getting back to doing what we do.  And that's just focusing on that. Only trying to accountable is what I've been saying. But, you know, it starts out here. And that's a big focus on just letting it carry into Sunday. What you do out here is definitely going to carry to Sunday. And that's the main focus. Have you ever been 0-1-2 at any level of football and how uncomfortable a feeling is it, I guess? 0-1-2 back in high school. It's never a good feeling when you're 0-1-2. You definitely win the win. It's why you play this game. But like I said, the sky's not falling. We're still focused. You know, as early as on the week, too, early in the season, so long season. So, you know, we just continue working and working to improve every day. How much do you talk with the offensive line? Do you have meetings with them? I can't remember if you guys were having those regularly in the past. Well, talk about what? Just what you're seeing, what they're doing. Well, I think we all know what we need to do. We know it's not, hasn't been our standard and success we had in the past. And we got to be better. I think we all know that we need to have it since the urgency, and that's what we all focus on. Derek, you've always been critical of your performance, always looking for ways to improve. Was it a little harder to flip that switch coming off that Monday night game and trying to shake that and move on? Oh, no. It made it more easier to get it going. I think when things like that happen, I think since the urgency rises and you know, you get a level that you would just want to get it going at some point. And that's my main focus is come out here and work hard and work hard every day until Sunday comes. Have you seen that in your teammates as well? Maybe you're feeling that this team needed a little bit of a wake-up call, and Monday night might have been that for everybody to take it up a notch. Yeah, I mean, we got in this building on this team, definitely motivated, and it's a grown man business. So our approach is always the same. Just come out here and get better and get ready for Sunday. Derek, what do you see from this Raiders defense and also a familiar face with Jay Omfraum, who you guys were teammates for a while? Some of you, they do a lot of different things. They switch up a lot, give you a lot of different fronts. And you might have something on one series and a whole other defense in another series. So you just watch a lot of the film on these guys. Happy to see Jay Om over there playing some ball. But we got to prepare for them because they do so many different things. That's right. All right, who's going to start out with the punt return question today? Yeah, well, that's it. Come on. Where are you in the process of figuring out who's is going to still be Kyle or where are you in the process? Yeah, I mean, we're still in the process of going through who's going to be back there. Obviously, today is going to be a big day, but we got to get back to the fundamentals. I got to do a better job coaching it, just letting those guys understand versus a right-footed punter, if that ball starts to turn over, you know, that ball is going to start drifting to the left. If it doesn't, that ball is going to be short and to the right. Just getting back to the basic fundamentals of getting square up to the ball, having our elbows in and watching it through. So we're going to focus on that today and with all the guys, whether it's KP, whether it's Imani Hooker, Robert Woods, or anyone else back there, we're going to really focus on that fundamental today. Does shoulder injury have any impact whatsoever on his ability to raise his hands and catch the ball properly? You know, obviously, we didn't feel like that going into it. You know, Kyle's a tough kid and we're excited to have him. Obviously, the guy has a bunch of playmaking ability that you guys saw in the pre-season and during that opening punt return. So we'll continue to work through whatever Kyle ends up, you know, can take and we'll see what's going on with it. But I think Kyle wants to be out there, you know, even after he dropped that other one, he was like, put me back out there. I want to be the guy, which obviously we love to hear. Why are you coming out of the game describing that scenario that they don't have down going into the game about the spin and the... Oh, I mean, that's obviously something that we taught them early on, but we just need to continue to reiterate it, you know, that, hey, if the guy ends up turning the ball over, if he ends up hitting the ball deep, that that spin's just going to be a little bit different, whether it's a right footed or a left footed punter. But yeah, that's something that we always go through them with during the training camp and off season, and we'll just continue to reiterate it with him because the one that Imani end up dropping, the guy ended up turning the ball over and it drifted to his left. So that's always something we'll focus on and hopefully get better at. Why are they not getting it? Does it say something about your messaging? You know, I don't think so. I just think it was one of those moments where those guys want to go out there and catch the ball and help the team. They probably want to get a return on it and just taking their eye off the ball a little bit, obviously doesn't end up helping. What about Berks? A kick return, I think a point it was, maybe it was Cannon, Hilliard, Chestnut as the top three. Now Cannon's out, Hilliard, maybe, if the, how you looking as far as depth chart goes there? Yeah, obviously Hassan ended up going back there for us during this last game. We thought he did a really good job, you know, coming up and catching those short kicks and then just running and getting up field. So we're excited about Hassan. Obviously Julius will be back there a little bit today too, getting reps and we'll find out what Don Trell can do a little bit later on in the week. What about Berks? I know there was mention that he was back there during camp, but has that something that you may approach? Sure. You know, Traylin was another guy who came up to us after, you know, the unfortunate incidents of, you know, dropping the punt, but he wanted to be back there and he came to me and said, coach, put me back there. I want to be the guy. You know, we just went down the list of Amani and then Robert and then obviously, if things weren't going to work out, Traylin would have got an opportunity. The great thing about Traylin is, you know, he came up to us and said, I want to do it. And you're always looking for a player to do that, like Amani did, like Robert Woods did, said, hey, put me back there, I can do it. So we'll find out what Traylin can end up doing, but he's getting better each and every time he gets out on the field, which is good. Is that the main, like enthusiasm for being back there, you seem to be awarding a lot of points for that. What about successfully doing the job? Where does that come in? Yeah, there's no question. I mean, that's obviously the most important thing for us to get the ball back. And last week, when we talked about that here, that's the main goal. You know, we can have enthusiasm and say, hey, I want to be back there, but we have got to catch the ball. We got to do our part on special teams to give our offense the ball back. That's our number one goal. And then we'll fight for yardage and get that. But it's obviously we've got to catch the ball, give the ball back to the offense. That's got to be the number one goal. The enthusiasm part is just helps us say, hey, OK, well, he wants to be back there, but can he end up doing it? Or is he back to square one? And Kyle's case, this turns into sort of the yips, too. And you just have to work on him, just catching the ball above all else? Sure, I think it's going to be confidence with him going back there. We'll continue to work with him. He does a great job in practice. It's just him going into the game now of having that confidence of going and catching the ball, whether there's guys around him or not, whether he has to signal for fair catch or get a return. But we'll continue to work with Kyle. Hopefully, he continues to have confidence going back there. And we'll find out what we're going to do this week later on. Are you back to the point where you were a year or two ago where it's just catch the ball and don't worry about a return? No, we don't want that. The biggest thing, catching the ball and giving back to the offense, but we don't want to just be go back there and fair catch the ball every single time. That's not what we're looking for. If guys are 20, 30 yards down the field and we're calling for a fair catch, we're obviously not helping out our offense at all, a gaining field position. But we want our guys to go back there and make smart decisions. If there is a chance to call for a fair catch, let's call for a fair catch. If there's a chance to return some and get some positive yards, we still need to do that. How much of these two losses is on your humans? I mean, obviously, when we lose, we always feel like we're a part of it. We're going to win as a team and lose as a team. We obviously don't want to have bad critical mistakes that help our team lose. We want to be more impactful to help our team win. So we'll continue to discuss it and hopefully get better and make an impact positively on a win for us. What you expected so far in terms of his ability to change field positions? Sure. He's doing a great job for us. If you guys were at the game against Buffalo, the wind gusts got up to 30 miles an hour during pregame. And it was pretty interesting.  And we were obviously excited to go down there. And it's a net close to 46, 47 yards. We were excited for him. He's doing a great job.  What do you attribute that to in terms of why things are so successful early on? And then you guys can't seem to finish drives later in the game. Yeah, first I would say a little bit of a misnomer with the script term. You'd set an opening script or what we call the opening script. And it's just a group of plays that we like early in the game. We get together as a staff. It's the same process we've done for years around here. And inevitably you're going to come off of that script because of a situation. Whether it was a Giants game getting in the red zone quickly or a third down early in the game, you come off of that script within the process of the game. But I would say why we haven't been able to sustain is because our consistency hasn't been there. Our execution, as we've gotten into our second third drives or into the second half of the Giants game, we just need to be more consistent in executing our bread and butter schemes. The toss sweep that you guys ran several times to the left, it got stopped for lost yardage multiple times without Taylor on the field. Why keep going to that when they were sniffing it out? Yeah, the ball exchange was the same in that it was a toss, but there were two different schemes, one of them being in sub and then the other one being a big personnel grouping. Thought we could get the front set in a way that we could gain leverage on those blocks. Obviously it didn't work out and we didn't execute well enough, but after the second one stayed away from that a little bit. So. What's it like right now to kind of reset to the identity that you need to have to be the team that you've been? Yeah, I think the communication number one across the board, just making sure everybody's working to the right guys and understanding what we're trying to accomplish. Number two, we got to win the line of scrimmage. We have to fire off the ball and we got to win that line of scrimmage, get into these combinations, and let Derek get into his fourth or fifth step and see where we go from there. Derek Carr, and have you kept up with him over the years? Yeah, Derek and I have a great relationship. He's a wonderful human being, as I know you guys have seen throughout the years. And Derek is one of those guys that is a perfectionist, a pleaser. He wants to try to improve at every turn. And so it was really fun coaching him in a manner of which he always wanted more. He always wanted the next thing. He always wanted the next drill. He always wanted the next cut up and all those things. So as a player, a very dedicated player, as a man and even more impressive human being, and somebody that I consider a close friend. What areas do you feel you've grown since your last opportunity in Oakland as an OC? Yeah, a couple of things. One, I hope I'm more collaborative. I know that my first time in Oakland, there were times I kind of just shut the door and put my head down and tried to figure it all out. And so I hope I'm a little bit more collaborative that way. Secondly, I think I try to anticipate some problems a little bit better, maybe instead of just banking on what we do, winning every situation, trying to anticipate some things. And then I think any time you're doing something for the second time, the second go around, you gain experience, right? You're able to maybe anticipate some main game things, deal with some relationships. Maybe different than you did the first time around. And so hopefully I'm better. What problems have the offensive line has had? And now injuries come into that group as well. Do you have to kind of adjust what you do? Maybe keep more backs in the block, more tight ends in the block? Just try and help everybody out? Yeah, I think that's a constant evaluation. Some of the most highly played and highly skilled players on defense are those edge rushers.  And so we're always looking for ways to make sure that we're doing what's best in protection, trying to give Ryan a chance to get through progressions and find that balance between always having a bunch of people in blocking and only three out on the route and then times where we got to be able to get four, maybe even five out into the route to take advantage of spacing or matchups. So that's a constant evaluation for sure. I did it exactly the way we did after Stevan and Petaylor. You know, on a kind of short preparation, I thought he did a great job. I'm really excited to see what he does with a full week of preparation. But he played hard. Obviously, like any of us, obviously myself included, there are things you wish you could have done different in the game or handled different, but I think he'll learn from those things. And with a week of prep, I'm excited to see how he plays. Before games, we always see you kind of walk in the lining of the field and headphones on usually. Have you always done that? And what's that about in terms of your own preparation? Yeah, everybody's got their own way of getting ready for games.  I take prayer walks. You probably see me do it around the practice field here. Obviously, my faith is something that's important to me. And so I spend some time just in reflection, listening to some worship music, say a little prayer, protection over the players and my staff and the guys I'm working with and all that. So... How far back does that go? Oh, I mean, way before here or being a coordinator, that was something I started when I first got into the league and started kind of maturing in my faith. It's something that kind of helped me get focused and centered for game day. Feel confidence is an issue for some guys on the offense right now based on production that you haven't had and the results? I don't know that I'd say confidence. I think there's a level of frustration. I think anytime that you're working as hard as we're working and not seeing the results come to fruition, there's a little bit of frustration maybe impatience. But we're working hard together to band together to make sure that we're focused on helping each other out and find a way to break through. And I believe that the process will work and that we will start to see some of the rewards to our hard work. Coming off of... You have to find your own impatience a little bit too when it comes to that. I don't know that I get impatient. Obviously I want what's best for our players. And I work tirelessly to try to put them in the best positions we can. And so I have an urgency to try to get our players going a little bit because I think they deserve that. I see how hard they work. But I wouldn't consider myself impatient more just urgent. Coming off a game where you only scored seven points. How do you approach this next game? I'm sure you want to come out and get points early and sustain that. But what's the approach for you as a play court?  So we have to stay true to the process, but we have to put an emphasis on scoring points. And it's hard in this league to sustain long drives without producing some big plays within those drives and certainly without conversions on third down. So we're going to have to find a way to put some chunks together and to convert some third downs. And our mantra's got to be, hey, we got to go score some points. Josh Gordon settled in a little bit more in the practice field. We play 18 snaps Monday, but you'll see him build enough for potentially more. I think so. And you'll understand in maybe different positions. So we don't have to just tag him at one spot and limit his route tree a little bit. I think he's getting some more exposure and getting in better shape and all those things. So excited to have Josh and like what he's been showing us. We see like different personnel packages where it's like you'll go big and pass out of that package and opposite. Does it get to a point where you're just like, you know what, let's just strip it down a little bit, stick with the basics and try to figure out what it is that we do really well. Yeah, you know, I think that we've executed some bread and butter schemes out of different personnel groupings. That's something that we said all the way back in camp, right? Is we got to be able to run the same plays out of different groupings. You know, there was an empty play in the game. We just missed trailing on a shallow cross. That was out of a big grouping. Again, back to some of our conversations at this podium from last week, you know, you build certain tendencies in that personnel grouping. We had a very heavy run tendency, so we wanted to open them up and get a shallow cross. We just didn't execute, but you're always going to try to find wrinkles like that, you know, and tendencies like that to try to take advantage of and hopefully we can go execute and produce. Given his ability to make plays after the catch and run with the ball in his hands, do you need to make trailing more a focal part of the offense in terms of what he can do? I think he's been growing each and every week. And I think, you know, he's been generating confidence in a lot of people around here each and every week. And so as that happens, just naturally, I think the ball tends to find him a little bit more. Again, I don't think he can force anything, but you certainly want to give a guy that has done well with his opportunities, some more opportunities. Jeffrey was talking about, seemed like he was pretty excited about a different rush approach against Derek, who he said is more willing to take a hit and you don't have to worry about pinning him in so much you can kind of just go at him. Yeah, I mean, each week you got to evaluate the quarterbacks and their skill sets. We knew with Allen it was going to be, if there was a lane, he was going to probably find it on us. And Derek's got the same mobility, he does. I mean, he's got the athleticism, he can do it. I think he's just comfortable in the pocket to sit and let things develop a little bit more. And not quite as quick to take off, but I mean, if we give him opportunities to, like he's going to, we just got to be disciplined in what we're doing. But it is a little bit different mindset. Between Adams, Waller, Renfro, you under siege sort of at every level of the secondary every time they drop back in this game? Yeah, I mean, they got a lot of playmakers back there. We're going to have to do a good job understanding what the scheme is and changing things up on them. We'll see kind of see where it goes as the game's going, what they're doing with each guy. You know, that's a big part of it. Their game plan coming in, whether it's with Adams or Renfro or Waller, we got to be good at Justin and kind of seeing what that is as the game goes. But yeah, we got our hands full. They got playmakers and they got a guy that can get it to him. So we just got to make sure we're locked in and understand where those guys are at and what they're trying to do with them. Kevin Byrd said that at times, he has to remind himself to do his job first, not to try and help other guys who maybe are younger that don't understand the scheme in the system as well as he does. How much do your veteran guys have to guard against getting out of their own gap and making a mistake as they're trying to help a younger guy? Yeah, I think a lot of it is more probably pre-snap, the communication aspect of it, more so than anything that Kevin's referring to. And we talked about before, the more guys are familiar with the system, what we're doing, what they're doing, the less that communication plays a role as much pre-snap, right? And it takes a lot out of you. Like it takes a lot out of you having to communicate, get all these guys lined up, make sure we're in the right call, make sure these guys understand what's going on, what the offense is showing us that we might have a tendency on. So trying to limit that package and ultimately those guys have a job to do where they do have to communicate, but some of the other guys gotta take some burden on as well with that. Cause ultimately you gotta control it, you can control it and then be ready to go. Mike explained yesterday why you don't. I'm wondering if when you're ever fully healthy in the secondary, you ever consider putting a corner strictly on a top receiver, on a digs or an Adams?  Yeah, I mean, I think there's a time and place for, a lot of that depends on what you're doing schematically. There's a lot of ways to try to, whether it's a matchup, if you put one guy on one guy, if there's ways where you're pushing help that way to alleviate it, do you really want your best guy on their best guy? If you know he's getting a piece that we're trying to help him with, where some of those other guys might be vulnerable. So there's a lot of things schematically that we can do to try to help whoever that is that isn't just solely one-on-one, hey, you got them, right? And a lot of that falls on us, just what we're trying to get accomplished with who we got, with who they got. And there's some moving parts.  Where if you're in zone or man and you play those own alignments, now they're not real sure you can disguise some things. So, I mean, there's give and take to both of it. But if the time comes and we feel like that, we got that matchup one-on-one with whoever it is, then I think we're definitely open to it. But you're also in advantage to guys getting used to playing sides, not to the degree of an offensive tackle, but... Yeah, I mean, again, I think it's hard, Paul, because they could just as well put all the receivers on one side and the corners gotta go over, you know what I'm saying? So like, these guys are lining up and offenses do that to you. They manipulate formations to try to see what you're in. Man, zone, whatever it might be. And then all of a sudden, we're working everybody on the left and now all of a sudden he's gotta go right and play and it's like, we're caught with our pants down, right? So, I mean, there's a lot of things that kind of go into those conversations schematically. What are you seeing that's happening on some of these explosives that you guys, I think it's what, three? Yeah. Three, 40 yards or more plays that have been given up. Yeah, I think the couple from the other night, do just got by Caleb, got behind Caleb, showed him, got behind Caleb. We had one bust in a zone where we should have been deeper with our middle piece. And then the last one, the touchdown to digs, we should have been on top of that all day. He did a little double move, broke out, the corner got nosy and then he burst it on him and we gotta be on top of that. Is that one where you want that safety back there? Cause I think that was on the digs, touchdown. Yeah, on the digs. Yeah, we were in unique coverage where the corner pieces were really the on top pieces in that zone. Okay. Shane, when a team has success, Adams was limited to no catches in the second half last week. When an opponent has success against a guy like that, can you maybe take something from that or is there a risk of, they're gonna be trying to adapt to get him the ball and can you overthink it in a situation like that? Yeah, yeah, that's a good question. I think they're probably trying to find answers to solve that riddle, right? To create ways to get him the ball where they don't get handcuffed a little bit where they gotta go away from them. But yeah, we use the information we see on film, what other teams are doing. And a lot of that depends on our personnel, our scheme too and how we can correlate it, how it relates to what we've done, right? Where it's not totally brand new, but there are things you take away from other teams that they've done to try to slow certain guys down. Shane, I think you had four sacks in the first half of the season and since then, pass rush maybe not so effective. I know you're a little banged up at that spot, but how big a concern is that at this point?  I think our guys are working to try to rush. Paul kind of asked the question earlier. I think a little bit last week was understanding who Josh Allen was, that plays a part in it. But I'm excited for the guys we got in there.  So I mean, I'm not concerned with it. I'm more hopeful that these guys continue to get better and improve and hopefully step in and are able to make some impact on the quarterback. And Jeff says, you want to thank you for each all the time, it's about us, it's about us. And what are the main things you're preaching that need to be better for your group to play like you want to? Yeah, I think like we had this conversation as a unit earlier in the week. And it comes back to, first of all, our mentality, our approach, week in and week out, making sure we control what we can control. Like offenses are, we're gonna obviously have to game plan and be familiar with our opponent. But if we don't go out there and communicate our defense, if we don't go out there and play with physicality, play with effort, play with our standard, execute whatever we're doing, right? Like regardless of what the offense doing, it ain't gonna be very good for us, right? So just making sure we're locked in on kind of what we're doing, our expectation, the standard that we're trying to set and trying to get to here defensively, it's more about our culture than what we're trying to defend.


T. F. N. N. Headline news update. Welcome folks to the 1 p.m. update. Right now we've got the Dow trading up 49 points. 26803 is the print. The transports are also up about a quarter of a percent, 21 points, otherwise all of the other indices to the downside, nothing significant with the exception being the Russell 2000. That's off 10 points. They're about six tenths of a percent, half a percent to the downside inside of the semiconductor index. She's trade out at 1413. You've got gold basically flat trading at 1397. Silver off 22 pennies, one and a half percent to the downside trading out of 1526. Light sweet crude a 5% plus. That's up $2.89. That can't be right. That is the wrong contract. Let's get the correct contract out there.  That is trading out at 5751. Let's begin by taking a look at the Dow. The key here in the Dow, the key number to be watching today potentially is going to be 266.95, 266.95 for the Dow is the swing point from April 23rd, 2019. If price continues to close above that, well then what it's likely to do is target it's all time high inside the Dow. That number is 26951, 26951. That takes you back to the October 3rd, 2018 level out there. What happens if we go back even further? Yeah, that was that October level was above the January. So at this stage here, no failures inside of the Dow. If we take a look at the S&P 500, the S&P 500 trading right now out at 2954. 2954 takes you above the swing point. I take that we're trading 2954.55, 2954.13 happens to be the swing point out there from Mayday. Was there a higher high? There was a higher high. Let me see here folks. I'm just trying to look at the January. I'm sorry, September 21, 2018. September 21st, 2018, that high was 2940, no. So the number to be watching here is 2954.13. If there's a close above that, well, where does that say that price could head to? You know, here's what I would do. Just a simple trend line folks. A simple trend line will take the high of September 21st and then the high of Mayday out there. Let's extend that line to the right. Let's see if we can do it in the next five seconds out here, extend right. That would be, well, we're trading right into it right now. Hey folks, stay tuned. I'm Steve Rhodes, I'll be up with the next hour. We'll take a look at these markets in depth. Have a great Friday and a great weekend. Take care.


Hello everybody and welcome to show and tell. Hey everybody, we're so close to the end of the year, but we're still doing show and tell as usual. It's me, Lady Aida, with me, Mr. Lady Aida. We're here at the Aida Food Factory. It's nice and quiet. Everyone's at home, which is why we're not wearing masks right now. Yeah, we have to do the disclaimer. I know, well, we are keeping very safe. We live together and there's no one around here right now, but everyone's masked up at Aida for everyone's vaccinated. Everyone's boosted, everyone's getting tested, everyone's doing it, but it's now time for the half an hour where we show and share projects together. It's true. Let's kick this off. I think we're gonna go with Jeff. Jeff, what's you got going on over here? Hi there. It's a bird feeder. Well, this is stock photo. This is not my bird feeder, but in the backyard we have an electrified bird feeder because it's a great way to, you know, keep the birds hydrated all winter long. The problem we have- Jeff, our bird's reel. I am not gonna stake out a position on that. Don't at me because- You gotta be careful. We're so careful now.  Yeah, yeah, it's really interesting. So I don't know, maybe we'll do some experiments about that as we go along. But anyway, so the heated bird bath, it's supposed to have a thermostat. It's maybe not the greatest thermostat. So the water will just evaporate really quickly. And so I wanted to put apply IoT. So this is kind of the first IoT thing I've done. And these plugs, they have power monitoring and you can put open source software on them called Tasmoda, which of course is on GitHub like all software. And it presents you a little user interface like this. So you can turn it on and off and you can also see instantaneously what the power consumption is. And so I have plugged all of that into Adafruit IO. So this is the ambient temperature actually from National Weather Service. And this is showing the power of the bird bath and this is accumulating it across a day. So now we know how much power it's using. And then it is also turning the power, it's a relay so I can turn it on and off according to the temperature. So if I don't like the thermostat, I can turn it off myself earlier. And Tasmoda is really nice but it didn't play well with Adafruit IO for many of the documentation I could find. So I ended up with a program that's getting a little bit unruly and I just run it every five minutes from a Chrome tab. And because my device didn't work with Adafruit IO out of the box but it did have JSON endpoints. So I could get the data out of its JSON endpoint and then send that right over to Adafruit IO and have it show up in my dashboards that I wanted. So that's where this project is at right now and we haven't seen any birds yet so, you know. What's in the soft as an 80266 or a 32? So I do not know the specs of this Sonoff exactly. I'm like, what's it? Cause it's dead. So it's got four megs of flash. I'm pretty sure it's a 80266, there it is. Okay. Yeah, what's the first step for support? It'll be interesting to see if you could program it with whippersnapper and have it, you know, automatically upload the data. Yeah, that would be nicer. It has MQTT support, but it just insists on sending topics that aren't compatible with Adafruit IO was as far as I could understand what was happening. And I was like, that's fine. I know how to do my own thing with Python running on a standard computer. So maybe we'll be able to optimize the power usage a little bit. Maybe we'll be able to keep the water from evaporating as fast or maybe we'll learn something interesting from the statistics. I don't know which way it'll go, but that's my IoT project. All right, one comment and then three questions. First, thanks for showing how once you have like a common language in this case, Jason, you could do so much with everything and like we built all over a pipe portal to build it. Did I offer that? Yeah, Jason is pretty awesome. So that's neat because that just means like pretty much anything can work with anything. It's a neat clue. So thanks for showing that. And then two questions and then a third question. So with your bird bath, you could potentially turn it up and heat up the birds like maybe even like a little bit too much. Wait, what? No, no, no, I'm just asking. No, no, no, no, I'm just asking. Like how hot could it be for the birds? Like a sauna? No, no, no, no. I suspect the water probably gets to a good 36 or 40 degrees Fahrenheit. So it's enough that in the low humidity and cold temperature, you'll cease water vapor. I'd say steam informally. But no, the thermostat inside of the bird bath is going to be keep it safe for birds, but we just want to like maybe keep it a little cooler. So you want to like shop up some curry, what's celery? No, I'm just gonna go. No, we are having soup for dinner, but it is not, it is not bird soup. And then you could potentially, if the birds are getting out of control, you could make it a little colder and then it breezes over.  Got it. Right, because who wants the squirrels? And then for the room here and then for the chat. So one of the things that we're trying to think about is, I think machine learning and AI, those words are kind of like busted now and they don't really mean too much of anything. So we're thinking of things that are objects that you're giving intelligence to that you're doing something more. So you're like, your bird bath is now wicked smart. Cause we went to Boston. So it's an idea where anytime you make something better, you just make it wicked smart. So. Okay, I'm not gonna try to say that. No, just think about it. We don't actually talk like that. I know, but just think about it. Just think about it. Like it'd be like, it's a cool bird bath and you'd be like, yeah, I made it wicked smart. Yeah, I mean, I may also need to put googly eyes on it. We'll see. All right, well, thank you so much, Jeff. Happy holidays and more and thank you for making this a fantastic year together. It is a blast. Let's do another one. Yeah, let's keep doing this. Okay. The birds, thank you. We thank you. Thanks, Jeff. Birds are real. All right. Next up will be... Dragons. Hi. Is anything wicked smart? Hey. You have to decide. It's an interactive show and tell.  Teapot. Teapot, okay, you get the teapot. Good, cause that's already up there on the screen. Yes. Even if you're not a computer graphics person, like everybody knows this teapot now, right? It is like, it's like the Wilhelm Scream of computer graphics. And this came about from the University of Utah in the 70s, fellow there, Martin Newell, came up with this model. He actually did the whole tea set, but just like coincidentally, the teapot model was really good for testing different, you know, graphics algorithms, just the combination of shapes and stuff there. And so it just, it snowballed, it became this thing. And so you still see it today. They just stick it everywhere. Cause like I said, it's a running gag, like the Wilhelm Scream. But interesting thing about this is he didn't just make up this shape. It was actually a tea set that he had at home made by Melita, a German company, and they still make them. And I actually have one right here. So I can turn this and translate in real time. I guess- I love the shading. Look at that specular highlight. Wow. It's impressive that it can do this in real time. But so it's a company in Germany, Melita. And if you look on eBay, a Melita with two Ts, eBay or I think even Amazon, you might be able to find them. And it's normally plain white, but I looked on eBay and there was this nice hand-painted one. And I don't remember what the price was on it, but you know, there's that make offer button. And so I made offer 42 and they accepted. Great. So it is a 42 teapot. Yeah, accurate. Yeah. That's so cool. Outstanding. Well, thank you so much, Furby. What do you think of the wicked smart idea for inanimate objects that gain intelligence through IoT or other stuff? What do you think? That's a deep subject. Okay. Okay, I'm ready. I know, this is it. Maybe book next week. Okay. Thank you for bringing your teapot. Thank you. You bet. All right, next. Oh wait, I'm just going to pop over to Jeff for a screen now. Look at this. Jeff. This was at the Seattle Computer History Museum in 2019. And they've got this whole display. I'm zoomed in. I was trying to read the caption, but yeah, they had this whole display of Utah teapots. And it was super cool. Look at this. That's nice. All right. Thank you for bringing the tea. All right. And Pedro, what'd you get going on this week? Well, we have never 3D printed a teapot, have we? We'll have to add that in the 2020. I'll do the global illumination. I know what's called a teapot. I invented one. It looks like you don't need that much support, either. You want all your plants because you made those planters. Yeah, I really could do that. OK, so we'll put a Neopixel in it. So yeah, this week we got this fun acrylic project. It's also got some 3D printed parts. Basically, this is a Neopixel strip. And then these little CNC milled or laser-cut pieces of acrylic. And the idea here is that when you string them together, you can create this little animation. So we're running the LED animation library, running the Chase animation. So you kind of got this little wave going on. You could do all sort of different engravings. So if you want to do some messages, it'd be cool to do some graphics that may be like a walking cycle or maybe a teapot, right? They can kind of spin around. But a lot of folks have been having cool ideas with it. So maybe we'll do something fun with it. But for now, this is kind of what we came up with. It's just got a QT pie inside here. So the QT pie, RP2040, and just a Neopixel strip. So just eight of them. And what makes it work is the little 3D printed bit has these little walls that kind of keep the LEDs isolated so the light doesn't link into each other. So that's kind of like the way you can achieve that effect. But we put together Learn Guide. We got a little fun video, too, to go with it. And yeah, folks, artistic folks want to kind of create some fun animations and some etching and some shapes have at it. So the Learn Guide is up. And yeah, the video is up there, too. So check that out. We're going to be playing that. Just because Phil B is here. Oh, yeah, yeah. Let me crunch the camera. Yeah, shout out to Tobias for releasing this wearable Krumpus mask. It's got the slits at the bottom. And it's kind of like two pieces that you glue together. You got these horns, too. So real nice. He's got his glasses on, too, so you can wear it right over. That's a great print. Yeah, definitely check out. Folks got to take about three days. Mike, bring your printer. But it's all over it. Yeah, for everyone with a 3D printer and you're going to see family, the CDC has recommended this specific mask. Get your mask. Yes, get your mask here. I saw Fauci on TV and he's like, this is the mask, everybody. I don't make the rules. I just work here. OK, tell the horns. You're fair, Tyler. That's much of it. All right, thank you. Next up, we're going to go to Fome Guy. And then we're going to go to Liz. Hello, how are you, Tim? Doing pretty good. How are you? Great now. So I have put together a Pie Portal version of this busy simulator from last week. So right now it's laid out on the Pie Portal and I can push the buttons. I don't know if they're going to come through from all the way over here. But if I pull it back here, I heard it. Yeah, nice. Pull it back by the microphone. It'll play those. So right now I have it just set up as a kind of like a sound board, but I think we'll make it repeat the same way as this. Yeah, that's what I thought was funny. Is it like like you click them all and all of a sudden it's like your computer. Yeah, I think when you're on a phone call and you want to get off the phone call, you could just have the sound board off to the side and you could just be like, oh, hey, and they're like, hey, is everything OK over there? It's like, no, it's fine. It's just like a busy day, meetings and stuff. And so yeah, I have it set up. There'll be the Learn Guy coming out. The code is set up to basically just have a list of these things so you could also swap them out if you want different sounds in there. And it's pretty straightforward after that. So that'll be coming out soon. OK, right on. And you're doing you're filling in for Scott for some of the videos, right? So are you going to be doing a video this week? Deep dive? Yeah, on Friday, on Friday afternoon, I will be. I don't know exactly what time, but I'll definitely put the links up in the in the chat room. And yeah, I usually try to stream if Scott's gone, but it does depend what I got going on on Friday. Thanks. All right. Well, we look forward to it. If we see it, we'll help get the word out. And thanks so much for being part of this Adafrit adventure this year, Tim. Thanks for having fun. Thank you. Good work. I see you have some Slack notifications. Stay busy. All right. Liz, who we just saw in person. Hey, meet Liz. Hey, Liz, how are you? Back to virtual. How are you? You and so long. A couple of days. I know it's been forever. So I've got like a quick kind of break project going on. It's a passive mixer. So basically what that means is you just have, you know, pots that are taking in different inputs and going out one output, but without any op-amps or anything like that. So just to test out to make sure I was thinking of the signal flow properly, I've got one channel going to a main out, and I have a hookup to this MOOC here. And so we're going up there. And so, yeah, I've got some here. Yeah. So I'm going to do this as probably a four by one. So four inputs, one output. And yeah, make the little 3D printed enclosure. It'll be stereo. Good time will be have it by all. Yay, analog pots. Yeah. All right. And thanks for hanging out with us, Liz, for the folks who want to see a photo of our lady Ada and Liz, you can check it out on our socials. We're all messed up in everything. We're all super safe. We're all good. Super safe. Everybody's right on me. Yeah, we're all doing our tours of family visits and more, and Liz happened to be where we were visiting. So we got a chance to hang out in person. So even better than in HD. Yes. Yeah, that was awesome. OK. All right. Well, thank you so much, Liz. And thank you for another epic year together. Keep bopping. Please continue to stay safe. Thanks, you too. Have a good one. Bye. All right. And that's our show in total this week. All right. Thanks, everybody. We're going to be here next week, 7.30 PM Eastern time. And ask an engineer tonight, 8 o'clock. Tomorrow, no JP show. He's out. But Friday, coming up, Tim, will be doing a deep dive probably. Stay tuned to the tweets and more so you can see when that's gone live. And we'll have some of our shows during the week. And then we also have a Descalade 8 on Sunday. So we'll see everybody for an action-packed week. Thank you so much for spending your time with us in between watching The Matrix, I guess. I don't know, we'll see. And not going to go in. Yeah, not going to go in. We'll see everybody in just a few minutes. Thanks, everybody. Bye, everybody. See you next week.


So, hi everybody, and welcome to this Fedora classroom. I'm Alessandro Michielo, Solution Arcade for Red Hat, and today we will talk about containers with Podman on Fedora 29. First of all, who am I? I'm Alessandro, graduated in computer engineering here in Italy. I'm currently working as Solution Arcade for Red Hat, as I said, and I'm very passionate Linux Fun. My first Red Hat Linux installation was at age of 14, and after that I never left and kept using Linux in my home and work life. But what about me and Fedora? I use Fedora as primary operating system for work and personal usage from five years, I think. Yeah, and I love placing stickers all over my laptop and let my friends and colleagues guess the open source project behind the logo. My favorite window manager is GNOME, so don't blame me, and as you will see, I'm currently running Fedora release 29. What about the logo? You will find the Red Hat logo in almost every slide because the content comes from a Red Hat slide deck. And moving forward, we will talk today about Linux containers. We will deep-dive in the containers architecture. We will then introduce the containers run times. We will see some examples of how to pull and run containers through Podman, then managing networking, logging, security, and persistent storage, some basic example, nothing more advanced. Finally, we will also introduce system services in containers. At the end of the slides, I will give you also some links and docs that you further explore for beginning in the word of containers. Starting talking about Linux containers, what are containers? As every time you may ask in the technology, on the technology side, it depends who you ask. On infrastructure side, basically, a container is an application process with a shared kernel that is simple and lighter and denser than a virtual machine. And this is also portable across different environments. On the application side, so looking at the application, the real software you run, a container is just a package, that package in a sort of archive, a target, the application with all the dependencies. With this kind of technology, you can deploy, of course, the container in any environment in seconds. And this could allow actually the easily access of this kind of application through different and shared environments. Going through and so matching what a virtual machine and container is, as you can see from the slide, a virtual machine isolates the hardware. It means that actually starting from the bottom of the stack, so from the hardware, from the real server, your laptop a server on cloud, you may have an hypervisor, so a software stack running virtual machine. And as you can see inside the virtual machine, you have a shared kernel with a shared operating system dependencies. These shared kernel and shared operating system dependencies are used by multiple applications running inside a virtual machine. On the other side, so moving to the right of the slide, you will see that actually the container isolates the process itself, so the application. You have always an hardware, of course, your laptop, your physical server, you have a software hypervisor, then a shared host kernel. In this case, you have multiple container running side by side. Everyone has his own operating system dependencies and his own application. So you can see that you can easily manage multiple operating system dependencies with a shared kernel instead of having multiple virtual machines replicating also virtual hardware. In the case of container, you don't need virtual hardware. Of course, you can use containers on top of virtual machine, but if you want, you can easily avoid the virtualization and the virtual machine. Moving forward, so on the virtual machine side, we have, of course, virtual machine isolation, so you have an entire machine completely isolated, and you can have multiple virtual machines isolated each other. But, on the other hand, you have a complete operating system with a static and allocation for computing and memory with a high-resus usage, because, of course, you have to define, before starting the virtual machine or also editing during the runtime, the quantity of compute and memory. On the container side, you have container isolation with a shared kernel, with possible compute and memory, so you can define it. You can let the container use at runtime, basically, the compute and the memory that they need, with, of course, lower-resus usage, because, effectively, the container may consume more lesser resources. And this, of course, could generate the main differences between virtual machine and container. Virtual machines, in general, are not portable across different hypervisors, and cannot easily use it for a packaging application. On the other hand, instead, containers can guarantee the application portability, because you pack in a hole in one archive operating system dependencies and the application in one container, and then you can move your container from laptop to permetal to virtualization, private cloud, public cloud, so you can easily move. You can build one time your container, your container image, you will see, and then move this container between different environments. Going in deep, so in the container's world, we can say that we can think the container as the smallest compute unit, so the smallest part, the smallest archive that we can put in runtime, but containers themselves are created from container images. Think the container image as the main archive containing all the operating system dependencies, and when you run your containers, it runs starting from a container image. Going in deep, a container image is nothing more than all the libraries, we said, that actually let your application, your service, be up and running, so imagine libraries as GleeBC, SSL, binary packages, including, for example, software for managing those packages, software repositories, and so on, and usually container images are organized in layers, so you can add layer by layer more software to your container image. But, of course, container image could be, again, stored in another element called image registry, where basically you can store multiple types of container image in multiple versions, and then pull your image, your base image, your favorite one from one of those registry to run your container. And, of course, Fedora has its own containers image registry, as you can see, and we will see also in the demo, pointing your browser to registry.fedoraproject.org, you will find a list of all the containers that this registry is hosting. But, moving forward, and so going in deep in the registry servers, as you can imagine, the registry server can offer a set of actions, like find images, run your images, run your build, and also let you explore the various details that an image contains about software, about tags, and so on. So, basically, a registry server can expose a set of actions for better using them. And, as we said, an image repository contains all versions of an image in the image registry. Basically, as you can see in this example, you can have in your registry an image called front end with multiple versions, and other images, for example, a database Mongo, again, with multiple versions. You have also a special tag called latest that identifies every time the latest image you pushed, so you uploaded in your container image registry. But, going forward, containers don't run on Docker. So, we have this myth about the Docker containers. We have to say that Docker is one of the many user space tools and libraries that talks to the kernel to set up containers, and we will see why. Basically, containers don't run on Docker. Docker is just a format that allows us to play and manage containers. Containers are just processes, and they run on a container host. So, containers basically are built of Linux, of an operating system, and they are just processes. Moving forward, a container host, so going in deep, we are going in deep in the technology. A container host is built of a kernel, as we said, and a container runtime. A container runtime is an application that actually lets you manage and play with containers, like, for example, Run-C that Podman uses, and, of course, a container host may also include, for example, another tool to let the container engine or container runtime talk with other components, for example, the orchestrator of Kubernetes or OpenShift. So, the container host is the physical server or your laptop or your virtual machine that actually will spawn new containers. It's just a Linux. It could be your Fedora, Ascentos, and Ubuntu, and Red Hat Enterprise Linux, and so on. But, again, going again in deep, a kernel is just a set of system calls, memory, CPU, devices, drivers, file system. The kernel is the gatekeeper for accessing the resources and data structure. And, of course, the kernel manages different system calls for orchestrating the different processes side-by-side. Creating containerized Linux processes is nothing more than creating regular processes. There is no kernel definition for what a container is. There are only just processes. And what the kernel and container runtimes do is to create an isolated environment that let you, for example, associate a dedicated network, a dedicated process ID, among point, a user that will be used for run the process inside the container. So, basically, on the kernel side, there is no knowledge about the container, but only about a sort of segregation of different processes on the same Linux system. Going so to the, returning back to the container engine. As we said, we have different container engine. For example, Run-C that uses Podman or container D, Docker D. Of course, this container engine provides API that can be consumed by user or other application and prepares data and metadata for a container image to run that container image in a real runtime container. And, of course, this container engine takes command line option for defining the option and the configuration for the container you want to start for pooling, so for downloading images from a container image registry, and then handling all the other information, for example, mounting a file system, ensuring also the isolation, so defining the data structure that the container itself will use. Going in deep in the container runtime, we have to say that there were yearly concerns with Docker, because actually Docker, as we said, is one of the first container engine and format for containers. But, of course, it requires edemon for running containers, for building new containers. It requires, of course, route and privileged access to the runtime. And using edemon on your container host when playing with orchestrator like Kubernetes could be, of course, a single point of failure. So, for that reason, Docker, Red Hat, and other companies, early in June 2015, created two specifications, one for container runtimes and one for image format. This initiative goes through the name of open container initiative. And this is how basically the runtime can create a file system bundle and the image format, how to create an image itself, so a container image. So, the runtime defines how the container should be run and how the runtime should implement that specification. And that was the first and the default implementation is run C that was donated by Docker to the project. And then the image format basically defines how a build system should perform a build of an image container. And the output includes usually an image manifest with some metadata, file system serialization, an image configuration, and so on. We then arrived to Podman that is included in the latest Fedora 29 that is edemon-less API software for running, managing, and debugging OCI container and pods. As we said, it doesn't require edemon and so it leverages, of course, run C, that is default runtime for OCI containers for the open container initiative, and provides a Docker-like syntax for working with containers. So, it could be really easily to move from a Docker CLEE to a Podman CLEE. It provides remote management via API through bar link and also system D integration for managing container in system services. Podman was part of the project atomic project on DAB. And as we said, it implies and brings all the technology for managing OCI compatible containers and images. So, Podman could be used, for example, for pulling down an image from an image registry and running new containers or also managing the just downloaded container image. Going through the example, I prepared a set of slides, but of course, we will run the example live in a console on my Fedora laptop. The first one will be pulling a container image from the registry of Fedora project. We will try to pull the image from an HTTP container image for the ones who don't know what HTTP is, it's just a web server. So, basically, we'll pull down this image and then we'll try to inspect the image for details. So, we take, basically, the image from a container registry from Fedora from container registry and we search for F29 HTTP. As you can see, there is already the command predefined for pulling down the image and use with Podman. I already installed Podman, we just set DNF install Podman on my Fedora 29 and then I open my terminal and run the command. I already downloaded the image, so the process should be really, really fast as you can see, but of course, we can inspect the images actually already downloaded by launching Podman images. And this will, of course, display all the various images. If we here have multiple images, it will display all the images downloaded from the various registry. Of course, I can also download the images from Docker RAB or other registries. But going in deep, we can, for example, inspect metadata of our container image and going through, for example, the ID that represents the image on our system, but in the registry too, the name on the registry. We have, for example, the user ID that will be used for running that container image. Again, we have the exposed port and we will see in the networking part that actually this data could let us to expose a port from the container network directly to our laptop or server network. Again, we have a set of metadata and environment variables that actually could be modified and personalized for running in a different way our containers. As you can see, we have also a metadata representing the command that will be run into the container. And so the command will be user being run HTTPD. And finally, the various metadata and tag that identify and let the registry handle the image properly. Moving forward, we can then run our just downloaded image. So, transform that kind of container image in a running container. And so we just run Podman run HTTPD, for example. Okay. And as you can see, we instructed Podman to run a new container. In this case, the container is waiting for us as an action because it is in interactive mode. And so we just display the output that is starting actually, and is waiting for request. Of course, our telly's lock it because it is waiting for more output so we can passively talk with the control C, the running and then re execute it with him on mode. With this kind of option, so minus D with us to Podman to run it in background. And then we can inspect the running container with the Podman PS. As you can see, Podman report us that actually there is a running container on the online machine that has this kind of ID and this kind of image source. Okay. From this, we can again, of course, terminate or stop our container. And again, check your running containers in background. There is no running containers. As you can see, we just stopped it specifying the ID of the containers. Of course, we can access also to the previous run container. We have a list of terminated one that actually we may and we can remove from the history. Precifying, of course, the ID. Of course, we have multiple help and option that we may invoke in our command line. As you can see, there are a lot of options and value we can define for better running and personalizing the execution of our container. In our case, we just try this one. We give a name to our container to better identifying it during the next example. And so we run Podman run minus one's name, my HTTP service, minus D. So we want to execute it the ground. And then again, that image name, we just downloaded it as I show you the HTTP one. Okay. And as you can see here, we have this image running in background with the name of my HTTP service. We can then, going forward and inspecting not only the container image, but also the running container. So we can specify the name. So we launch the command Podman inspect my HTTP service. And we have a set of course of environment metadata that is the same of the image, but then we have also some information about the running container because we say that actually the kernel and also the container runtime will try to virtualize some data structure and some namespaces. In this case, we have a full network namespace isolated that actually assigned an IP address to our containers. So we have <IP_ADDRESS> has IP address for our container. We can so check if our container is running properly, basically contacting this IP address, then use cool. This is just a command line tool for grabbing web pages. We specify the part as we saw actually the exposed part in the image was 8080. Okay. And then we just run it. As you can see, this is an HTTP HTML page. It's just the hello page that the web server show when you connect with no index uploaded. Going going forward. And so jumping back for a moment on the slides, we will also run another another example where we show basically that a container by default is ephemeral. It means that actually it tells no data at all. We can of course put text and data on a file, on a file system on our container. But of course if we kill, if we stop the container, a start a new container from the same image, the content of that container will not appear anymore, will not be there anymore. So jumping back to the console, we have already a container running. Okay, and this is my HTTP service.  We remove it. So we clean up our environment, start from a fresh one. Okay, we have no container running. So we run just a container in the ground. Okay, we have our running container here. Then we use a special command called exact. They actually let us to go inside our container specifying a process to run. In our case, we want to run bin bash process. It's just a terminal in our container. And then create some data. My secret data, for example, and I want to place it in a file called my dot data. As you can see, now we have a file called my dot data, we can look out to see through that, through it. Okay, we exit from our container. We have our container running, of course, still running. We stop it. We then remove it has to be sure.  We launched it before. So we run a new container from the same image, HTTP. Again, we connect the running container opening a terminal. We are using the option minus T, why I because actually we want a terminal and we want it in an interactive mode. So we instruct our container engine to do this. We get the ID of the running container. And again, as you can see, there is no data anymore is for showing you that actually a container is a completely isolated and portable environment. But for image, of course, if we move it to runtime, and so actually we launch a new container, this container has to be ephemeral. So there is no way to save the data inside that container instead of, apart from mounting a new persistent storage to it. And we will see how to do this in the next sample. So for the moment, keep in mind that actually all the data and the edits and the modification personalization also the adds to the additional software you install to the container will not be saved if you actually stop or kill or remove the running containers because the container image is still the same is immutable, could not be edited. Of course, you can create new containers. And so you can define what are the base content that your container will have. So imagine you want to create an HTTP server with default web page on it, you can do it, you can build a new container starting from the one that we saw. And there is another tool that is called build data that is the main companion of Podman for building new containers. Again, it's OCI compliant so it respects the format specification from the open container initiative. It not requires a daemon and either a Docker socket and of course could generate and create new containers starting from a Docker file. Unfortunately, we will not go through build data in this session. I invite you to look through the classroom that should be scheduled next week for completely dedicated to this tool, to build up for knowing more. Going to the next sample, so going into isolation, we will go through another sample looking at the basic or simple modification after installation we can do on our container to see that actually we can destroy or make changes to our containers without affecting the main operating system. In this case I will run again the example on my laptop and I will show you that actually the various editing and personalization I will do in the container will not be reported or replicated in the operating system on my federal laptop. So moving back to the console, we can look through the running images. As you can see we have already an HTTBD running container. Again we use the common exec for executing a new terminal inside the container. We use another option, a new option that we never told before that this name minus U stands for a user and we specify the root user for having the rights to access to the container. If we didn't execute the command without the minus U root, you will see that actually we have a standard user that also has been defined in the image metadata and as you can see this is the ID 1001. So in our case we want to force Podman to get us access as root. We are inside the container as root so as a system administrator and then we can run for example software installation. We can install from Prepo Fedora IP mutils and PROC ESNG software. We are looking through the running processes and the IP address of course. As you can see we can just run the system package manager inside our container. It's just updating the repository available inside our container and this will not affect at all our running operating system. So in my case my Fedora 29 running on my laptop. The process should complete in a few seconds. Basically it will download the needed packages and let them run. After that we'll try also to make some crash and delete some stuff from the container and so broke things and seeing that actually this will not affect at all my Fedora 29 on my laptop. First of all try to ping for example Google.com. As you can see the ping is working properly and so we can reach from our container the outside network. This is done through the container runtime of course that will allow our containers to talk with the external networking. In our case we want to for example, remove the name server. And so we can ping again Google.com. Actually there is no DNS anymore so we cannot contact anymore any external address. There is no more name resolution service on this container. Again we can for example also look over the date and then for example move the ATC local time, ATC local time backup for example and then link a new time zone. User share zone info. America, New York, in ATC local time. As you can see we just changed the time zone in our running container. We exit from the container itself. We try to ping Google.com and as you can see all the DNS stuff and so names resolution is working properly and also for example the date showing the previous value. So basically the container itself is just an isolated environment that you can use and test your stuff, your application without affecting the container host. In our case the container host is a Fedora 29 my laptop and the container itself is again a Fedora 29 but an isolated environment. Moving back to the slides we can jump to the network inside. On the network inside we will see how to expose our services to be reachable basically by the word. We saw previously that we have metadata called the exposed port while inspecting our container image. This metadata actually and we will see a few moments again jumping back in the terminal. Inspecting the image called HTTP we have a set of values explaining the exposed port that could be used by the container runtime for exposing the service included in this container image to the outside. This means that actually as we saw before and as we can see again here on the running container there is we run again the podman inspector. There is a networking environment with an IP address. This IP address could be contacted directly from the inside of my machine but if I want to expose this service to the outside I have to map basically the port to my local system so to my local IP address for example to local host. Again so we can clean up the environments so we kill and move the running containers. We can then run again the HTTP server. Again check if it's running and if it's running correctly starting five seconds ago. Then we can inspect the running containers for the IP address. Here we go the IP address and again I can check it's working calling it through code but I can for example run it with a special option that is podman run minus d for putting in background minus p for mapping the port 8080 to the the port of my system 8080. So we map the same port of the container on my system 2 and we then specify the image so basically we are adding this option minus p with the with the port. We run it we can check that it's running okay and as you can see it appeared here that actually there is a port mapping this means that actually I can run or on local host and getting the same output. This means that actually this same port and IP address could be mapped to a port and IP address of my system of my laptop running Fedora 29 and letting for example friends colleagues or for example if I enable routing on my my home router also exposing this service outside on the okay. Then moving forward and go to the log inside we can of course go and troubleshoot our container so going through for example logs of our container we can leverage an option for a command for podman for showing logs. We will see for example that for the running container we can blocks and as you can see we are displaying all the output that the the process itself is pushing through our container engine so there are the standard messages of starting the web server where actually it's opening the port it's running to a system system service initialization then the command line option that was used and finally the various requests that are coming as you can see it just logged the the option and the command came from from core that actually we will run through. Of course this output could be the standard output that the process is printing and also the standard there so we also we can also go through any error that the process may encounter during the startup and during also the runtime itself. Going going in deep in the I'm seeing that actually there are some questions in the in the chat we will go through at the end of the of the presentation we are most almost there. Going through one of the last arguments so persistent storage we say that actually any modification any personalization we make to our container could be lost if we stop and run again another container from the same container image of course we can mount we can configure new running mount point for our container using persistent storage we will see during this example that we've created a directory on the on our container host in my case my laptop running fedora 29 and I then download the index page for example we try to to clone the fedora registry only in the main page not the wall registry of course we then set the right permission and we instruct podman to mount the correct directory inside the container. Of course we will monitor and we'll check the successful mount running again or maybe opening the page through our web browser. Moving back to the the console so we can of course clean up the environment you can see there is a running container again so here this container okay then we remove okay we have so a clean environment again we have our htpd image already downloaded we can then inspect again our container image so htpd and then grab my user as we saw before we have the user 1001 and we will use this information for setting the right ownership to the directory we will create later so we can then go through a podman run again htpd we run the container directly on with the console for accessing the terminal okay and we will look through the htpd configuration file looking for basically the document route that is the main directory where the web server will display your pages so we do grab for the document route and as you can see it's the standard one so par www html we can then go out check that the container is not running anymore we just terminated it with the control c and then we create a new par www html directory in my case I already created it that's it's okay and then go inside this directory I already downloaded the registry dot fedora project dot org but in our case we want to clean up so we delete it okay just nothing so we download the web page you pass some option for letting converting links and so on we take the web page directly from the registry it's just downloading as you can see it recreated the directory that I prepared before then set the right ownership for our container we'll set it irreversibly for all the sub directory of our just created one and so finally we can execute the main command we so we created the directory that will be serving the pages that our container will run through so we just run potman run again minus d take a name for example may my htp service times p 80 80 we expose the port and then we map a volume we map the source volume in opv bar www html into bar www html then we set the option double points upper z where actually we define and we instruct podman to set the right selenux leveling for the for the container otherwise the selenux that is the security labeling system for fedora sentons and red dot enterprise linux otherwise selenux will not allow the container to read and write site this directory and finally we specify the name of the container we can run it as you can see podman has executed container okay we can for example go through simple cure local cost 80 80 see if everything is working properly okay we can then connect to local cost 80 80 registry it's another project and as you can see we just replicated the main page with all the the basic stuff and we are serving it through our container exposing it actually on local host so directly on my machine moving forward we are almost there with the time we have also an example of containerized system services this is because for showing you that actually running new containers has the true podman could be also integrated directly in system d system d is the main system manager of fedora and central seven well seven and of course you what you are watching in this slide is just an example of the unit file that you can place in 80 c system d system with the name of your service and instruct system d to interact with podman and start and stop your container this basically will allow you to run something like this my htdp service i'm not wrong as you can see the service is not active just clean up the environment before going and testing it so podman here and remove container okay and so again the service is that we can start it and then watch over the status as you can see the container and the service is running we can then move back to the web page that we are just cloned we are cloned and as you can see it's working properly so it's continuous working of course you can explore and get in get more information looking through this url i will send to fedora magazine and into fedora guys all all these stuff so the slide will be accessible in this link you will find a real example showing how to set up a lamp stack so a linux apache my my sql and php for hosting for example wordpress to to container as system services so you will have a system service for htdpd and a system service for maria db my sql database then we have links and documentation something useful before going to uh question i want to thanks the open shift view team trodman karty and tomas cameron and william harry that give me permission for reusing their stuff and and slides and all the fedora team of course so thank you


The COVID-19 pandemic has provided an opportunity to examine the resiliency of various social systems. This includes government responses to uncertainty, the interplay between health and other crises, and the interrelationship between individual, group, and system levels of resilience. Understanding these factors can provide insight into how to best manage future crises. This article was authored by K. Van Bozorgmer, Andreas Sick, and Tobias Hecker.