What's going on, everyone? Sam here with late in sports cards. Rippin' 22, Panini Phoenix football hobby, four box break, number 25. Pick your team style. We have a list of our names and teams. Adam E. Lyons, Ben S. Chiefs, Charles A. Saints, Dan M. Dolphins, David H. Giants, Edward P. Broncos, Greg E. Patriots, James B. Packers, Jason O. Bears, Jeremy T. Rams, John L. Steelers, Jorge M. Cardinals-Browns, Joseph H. Cowboys, Joshua V. Bucks, Kyle M. Niners, Mark A. Raiders-Coltz, Michael C. with the Falcons, Mitch M. Ravens, Mitch D. Panthers, Nathan A.B. with the Vikings, Nathan A.D. with the Seahawks, Nicholas S. Football Team, Pack-A-Pong V with the Titans, Robert R. Jets, Robert D. Eagles, Todd C., Bangles Chargers, Tony B. Bills, William H. Texans, and Jags. So good luck here, everybody. So they got only the Browns left in 26. Just one group break spot remaining on the day. Just the Browns is James Cook to 75. Silver County picket, Rigorink, will do. Yeah, Prism's releasing next week. Can't realize that, yeah. 22, that's gonna be a big time. Davis Mills, T.O. to 150, Silver Jared Goff. So he's an imaginary friend. There's Chyre Alexander to 175. Silver, Tyke-1, Thornton, Rookie. Oh yeah, yeah, we'll have a lot. Yeah. All right, we'll have a lot next week, Jennings. Oh yeah, not technically, unfortunately. Manny, we've got points. Just wanna make sure we don't show up. Wildcard ran for all at the end. Marquis, Brown, Silver. Teal, Jalen Waddell to 150, Silver Skymore. Five of 25, Belish Jones Jr., three color patch. Nice one there for the Bears. And Damien Pierce, color burst. Very nice, I'd say that's pretty average. At least starting price. Pierce Strong Jr., 250. I mean, I think they were higher at one point last year than that. They've calmed down a little bit, but. Yellow, Arnold Obakite to 75. Kenny Pickett, Flamethrower, Silver. Carson Wentz, Pink. And Silver, Chris Godwin. There's Garrett Wilson to 149. Nice, on the rookie jersey auto, going to the Jets. Congrats on that, New York. James Robinson, Silver. Red, Keontae Ingram to 250. Silver, Kyle Pitts. Purple, Ryan Tannehill. And Roger Stovak. One second, guys, let me check one thing. Do you see what your name it, what your adjective was on the Tonight Cheat? Fearless Forrest. I'm full of fear. That's what, oh, what was it? What did Shane say? That's Kyle Phillips to 250. Silver Corral. He said he's like, Forrest is scared of plenty of things. Then he said it was like. Oh yeah, I saw that. Yeah. I was like, what do you mean? Dallas Goddard to 99. And Alvin Kamara contours pink. I guess I'm not as good as you. And Drew Brees. And a Jamar Chicks. Four inserts. Four inserts. So that means we're going to have none in one. Two packs, two cards in the next bag. I'm not a good illegal, though. Crystal Lava. Brian Asamoa. Keele. Dave. Kyle Hamilton, nice one there for the Ravens. For 175, Lava, Tyler Algiers, Silver. That's another guy in the trash list right there. Forrest. Santa Hill, there was our missing insert pack. Reg, Jamar Chicks to 199. Silver Traylon Birx. Felix Jones Jr. to 99. Three color patch. For the Bears. And the Browns are gone. Thank you there, William. Alvin Kamara, color burst. Appreciate you, buddy. Sold out on the morning shift. Thank you all. Pink, James Conner to 199. Silver, Malik Willis, Rising Rookies. Red, James Conner to 250. Silver, Barack Lesnar. Joe Namath, Fire Forge Orange. Yes, to 99. Silver, Kirk Cousins. Oh, you know what we pulled on release though? That was really sick. It was a patch auto of Zach Thomas. Oh, yeah. Desmond Ritter to 299. There you go, man. Breakers Anonymous picking that one up. Silver, Mike Gough to Derrick Henry to 250. And Silver, Derrick Carr. Where's he gonna go? What are you thinking? I don't know, man. Gonna miss out on it, and then we're gonna pull it back up right now because we're gonna stick with it. Yep. And then he's gonna have his flames and then we're gonna do it next year. And then what are we gonna do? Or two? Yep. Go Dolphins. Zach Wilson to 175. Silver, Dalton Schultz. Pink, Rashad Bateman to 199. Yep, 199. Silver, Derrick Carr again. 400 points, random to all at the end. Kyron Williams, Silver. There's Hasan Haskins, 18 out of 149 on the Jersey card for the Titans. Hullaburst, Alan Robinson. George Kittle to 199 on the red. Silver Jamar Chase. Prepare for the answer. Oh yeah, Ritter, Inc. There was some Ritter, Inc. Take it. Red, Cam Taylor Britt, 250, Drew Brees, Firefork. Pulled it to a gold vinyl too. Oh yeah? Yeah, Justin Herbert, Purple, nice one there. 14 out of 35. Can I pick it, Teal, for the Steelers to 150. Silver, Terry McLaurin, scary Terry. Cams, Robinson, Orange, Silver, Brees, Hull. I can't wait to see when the move started to happen and what happens, it's gonna be really interesting. It is, Purple Jamar Chase to 125. I've been Silver at Garrett Wilson, contours. Might even want to think about it. Yeah, they're definitely gonna tag him. Pink, Steve Young to 175. Silver, Justin Fields. They're absolutely gonna tag him. And then we can trade on wherever we want, if he doesn't want us to play, because he's not gonna play under the tag. Bailey Zappy to 299. You can recappy this Zappy. There are some scratches on this one. We'll send an empty box and wrap it with the pads. Silver, Devon to Smith. Still one more box here, John. La va, Jalen Hertz to 175. Bailey's happy, 54 out of 75. Nice one there on the glove patch auto. You can recappy this Zappy. High channeler, Silver. Gets better every time. I always pull so much Zappy when you're here too. There's a Zach Wilson to 250. Silver, Aaron Rodgers. Wild. There's a CD lamb, orange to 99. What's up? Oh yeah, yeah, yeah. Tuck everybody's money. Tuck their lunch money. There's Red, Matt, Corral. Silver, Russell Wilson. Purple, Rashad White for the Buccaneers. Silver, DK. Pink is Tom Brady. Nice one there for the Bucks to 175 contours and a Silver, Tom Brady. Jalen Tolbert, 82 out of 99 on the rookie memorabilia. Red, Cowboys, Kway Walker on the color burst. Seal, Rashad White for the Bucks again. Bucks doing well here, Christian Watson, Silver. Hot routes. There's Hasan Haskins. Nice lava for the Titans to 175. Silver, Rising Rookie is Desmond Ritter. Pink, Luis Sine. Or Luis Sine, I should say. Silver, Pat Tillman contours. Cole Strange, Rookie Auto for the Patriots. Don't see a lot of Cole Strange stuff, that's awesome. Silver, TJ Hawkinson, some whole line love. Let me do this random really quick guys. So again, we got points, Wildcard and 400. Gonna copy all the teams in. Whatever team is on top, we'll get Wildcard. Whatever team is second, we'll get 400. So let me get this team list. Of course I closed my random windows, why wouldn't I? All right guys, gonna roll the dice. Nine times, good luck. One, two, three, four, five, six, seven, eight and nine. The Broncos will get Wildcard and then the Packers will get 400. Still a quick recap. Jalen Tolbert, Asana Haskins, Vilesh Jones. Vilesh Jones, Cole Strange, Bailey Zappie. Bailey Zappie, Desmond Ritter and Garrett Wilson. I'll do it for the break guys. Thanks again for the fill. Next up we've got number 26.


Narcissists act differently when you're not there. Narcissists have at least two personalities. Two different sides to them. They're like Dr Jekyll and Mr Hyde. They have two different ways of acting and behaving. They don't always express their genuine feelings. Instead, they deceive and mislead other people. They give them the wrong impression. They hide who they really are. They hide what they're really about. Because they're fake people, they're not real or genuine. They just pretend to have a feeling, emotion, illness or injury so that they can get what they want. The narcissist will show you whatever they think you want to see. They will display their selfless character who is concerned more with the needs and wishes of other people rather than with their own because they're using it to manipulate people into doing what they want. They will pretend to care about you. They will pretend to respect you. They will pretend to have their own values and morals. Because they have secretly studied you. They have studied your likes and dislikes. They have learned what you want to see. They have learned what you want to hear. And then they reflect it back to you. They present themselves as something that you might like or be interested in so that you're willing to invest your time, energy or money into them. And at first it may seem like a good investment until a few months go by and then cracks begin to appear. Things start to go wrong and you realize that it wasn't worth investing in after all.  You've been led to believe something that isn't true because the narcissist has to lie to you. They have to make up stories. They have to hide important information. Because otherwise you wouldn't want anything to do with them. You would never stick around. So instead, they show you everything you desire. Everything you want to see, but as time goes by you realize that there is another side to them. This side that is very different to everything you thought they were. Everything that they displayed to you in the beginning. From what they had showed to you in the beginning. You never would have expected them to end up this way. But they were this way all along. They just hid that from you. They didn't reveal all of their problems and issues in the beginning. They withhold that information from you. Until you're logged in. Many narcissists have anger issues. Many of them are alcoholics or they have drug addictions. But these are things that they never revealed to you in the beginning. They did everything they could to hide that from you. Because they know that's not something desirable. They know that's not something to be proud of. They are very reckless. They are very foolish and careless. They don't consider the consequences of their actions. Which is how they're able to excessively indulge in alcohol, drugs and sex. Because they're not happy with their lives. So they engage in escapism. They seek distraction. Because they don't want to deal with reality. So how could they care about what is right or wrong? They will do anything to get what they want. Narcissists act differently when you're not there.  Everything you were led to believe is not real or genuine. It's an illusion. It's a facade. And they constructed a false character. Just to manipulate you. They don't really have any values or morals. They don't have any principles or standards of behavior. They don't have any judgement of what is important in life. And they haven't learned any lessons to write from stories or experiences. Because they never take accountability for anything anyway. It's always someone else's fault. Or it just happened by chance. Or they act like nothing is wrong. Because the truth is they don't really care about anyone or anything. That was just a false character that they used to lure you in. It wasn't real. You may think that you've gotten to know them. You've learned all of these things about them. And you know who they are and what they're about. But how can you be so sure? They displayed this character to you at the beginning. But that wasn't who they really are. So even this character you're seeing now. May not be who they really are. There could be so much more to them that no one even knows. What you're seeing could only be at the tip of the iceberg. There could be a much larger part that you are not seeing. Things that you do not know about. Things that you may never know. Because just remember what happened in the beginning. You got to know this character.  But then you soon discovered that it's not who they really are. You were just getting to know the false character. That was who you believed in. That was who you trusted. And you believed that you had this connection. You believed that you were in love with them. You developed expectations. From a character that wasn't even real. A person who didn't even exist. But then you wonder. Why they're not capable of meeting those expectations. When that character was never real in the first place. It was just constructed to deceive you. You don't know who they really are. And you may never know. You don't know what they're doing when you're not there. Maybe they're giving that same character to someone else. But one thing is for sure. When the narcissist is not around you, they're up to no good. They're doing something bad. They're doing something that is not good for you. Because they don't care about you. They never did. And they never will. This kind, caring person you thought you knew. Doesn't even exist. They just reflected your qualities and ideals back to you. They knew who you wanted them to be. But they were never about any of that. It was just a trap. So that they could get what they want from you. Which is why once they've gotten what they wanted. That kind, caring character you saw at the beginning. Is now no way to be found.  You feel like you want to be with them. But you need to accept that this character doesn't even exist. You fell for something that wasn't even real. It was an act. They behaved in the way that you desired and expected. So that you kept them around. But they act differently when you're not there. They will give people whatever they want to see. Whatever will get them attention. Because that's all they really care about. That's where they created the false character. It wasn't to share anything with you. It was designed to trick you into giving your attention to them.  Which is why they knew they had to create a false character. They knew they had to lie to you. They knew they had to hide important information from you.  Because that was the only way that they could get in. If they were upfront about who they are. And what they're really about. You never would have kept them around. And they know that. They created the false character. Because they knew that you would never accept who they really are.


So first thing we are going to understand is structural isomerism and first part to write down chain isomerism in a structure. Two or more isomers, definition of chain isomers right now, two or more isomers which has different number of carbon atom, which has different number of carbon atom in the parent chain. Different number of carbon atom in the parent chain are said to be chain isomers of each other. Two or more isomers which has different number of carbon atom present in the parent chain are said to be chain isomers of each other. Molecular formula must be same that is the condition right. We can define isomers with same molecular formula. For example, you see if I write down N-pentane, N-pentane is what? CS3, CS2, CS2, CS3. If I write down this compound, CS3, CS2, CS3, CS3, CS3, CS3, CS3 and CS3. Can you tell me the IOPSE name of this one? This is normal-pentane, N-pentane. I will take the name of this one, two methyl butane right. How many carbon atoms are there in the parent chain? One, two, three, four. How many carbon atoms are here? How many carbon atoms are here? This is two methyl butane. And this is two comma two. Thyme-ethyl-propane. Part new-pentane. You see all these three compounds, the number of carbon atom in the parent chain is different. What is the molecular formula for this one? C5S2L. The molecular formula of this one? You see all these molecules have same molecular formula but their structure is different. One has five carbons in the parent chain, four and three. All these are chain isomers of each other. We can say one and two are chain isomers, two and three are chain isomers, one and three are chain isomers. All these are chain isomers of each other. Why? Because they have different number of carbon atoms in the parent chain. Similarly, butane and isoputane also chain isomers of each other. Number of carbon atoms in the parent chain is one, two and three. Here we have one, two, three and four. So the number of carbon atoms in the parent chain is different. With the same molecular formula, the molecules are said to be chain isomers of each other. Let's write down position isomers. Two or more isomers which has different position of functional group, different position of functional group, locates or multiple bonds are said to be position isomers of each other. In all position isomers, the number of carbon atoms in the parent chain must be same. In all position isomers, the number of carbon atoms in the parent chain must be same. What is the name of this compound? We made two all. What is the difference here? The position of functional group is the first carbon. Here we have a second carbon. Number of carbon atoms in the parent chain is four. Number of carbon atoms in the parent chain is four. So we have four carbon atoms, butane one all, butane two all. The position of functional group is different. These two are position isomers of each other. See this example. These two are position isomers of each other. Beauty and beauty one in double bond composition is different, locates the position you can see here. If you write down chlorine at this carbon and chlorine at this carbon. These two are also position isomers of each other. What about this one? They are not isomers because molecule formula itself is not same. But when you place this CS3 here, then the earth is just a position isomers. So all these are position isomers. Number of carbon atoms in the parent chain must be same. One more point to write down here. The monobelant functional group. Write down monobelant functional group like COOH, carboxylic acid. Monobelant functional group like COOH, nitride, CN, aldehyde, acid halide. Does not show position isomerism. Monobelant functional group like carboxylic acid, nitride, aldehyde, nitride, aldehyde, acid halide. In all these functional groups, we always start numbering from the carbon atom of the functional group. So these functional groups will always get first position. Positioning always is the first thing. That position won't change. That's why they don't show position isomers. What about this two compound isomers? What kind of isomers we have? Suppose we have CH3, CH2, CH2, CN, CH3, CH, CH3, CN. What kind of isomers? Chain isomers. What is the name of this compound? No, they say it's a compound. The carbon inside it won't count, right? CN, CN won't count. No, we count in the polyfunctional group that we don't count. Monobelant functional group will count. Butane nitrile it is. First question here. Nitrile if it is there, we are bound to start the numbering from this carbon atom. So here also we have to start from this carbon atom. That's why you see the position is not possible because the position of the functional group is what? It's always one, right? But the number of carbon atom in the principal chain is what different? These are what? These are chain isomers. If the number of carbon atom in the parent chain is different, then that won't be the position like this. Similarly, this example you see. What about this one? What is the name of the second one? This has the chain name. It's 2-carboxic acid. No, why would he say that? The carboxic acid is the same type of adenuoy gas. What is the name of that? From the carbon gas. So I see it's a two carboxic acid. One percent group will count in the parent chain, no? Also I thought you see one percent group will count in the parent chain, no? No, I see it's a carboxic acid. Two carboxic acid is the same type of adenuoy gas. That's why you have more than one chain. One condition is better. Not only that, if you don't visit them they'll get you the adenuoy gas. that condition is, if the COH present on the ring, common glitches are all bruised, if it is not bruised, then it will not work, we have to count in the parent chain, we have to start numbering from this carbon, 1, 2, 3, so propanoic acid, second position we have methyl, 2 methyl propanoic acid, what about this one, 1, 2, 3, propanoic acid, so obviously the number of carbon and the parent chain is different, can't be position isomers, so these two are chain isomers. So, all these functional groups you see, we are bound to give first position to these functional groups, hence they want to show position isomers. So, what about 2 COH groups on a ring? So, tag are also equal. So, but then you have to specify, right? 1, 2. No sir, what is its 5 ring? 5 ring, position is the numbering you have to do accordingly, so that you will get the least possible you know. Sir, but then you can get different numbers for their different positions, right? Like what if there are 2 carbons apart or only 1 carbon apart or on the same carbon. No, no, no, you see, what you are talking about, when this carboxylic acid, we are talking about acyclic compound, ring, that's why ring will consider in ring chain isomers, for that we have one different criteria, okay? Sir, but here we consider the C L ring. Where? Now, in this one spine you see here, if you write down COH here, right? Or COH here? These two are position isomers of ring, why? Because this is not present in the ring, we have to give first position to the carbonyl atom, here also since the parent chain is 6 5 member carbonyl atom, 5 member carbonyl atom, that's why it is position isomers. But in this thing, we have to start from this carbonyl, we have to start from this carbonyl, but they won't super visualize, okay? No, sir, but Sir, I thought you said that COH can never form a positional isomer, but where it is? No, that means, that means if COH discarbonates them, if you consider in the parent chain, and that we have to do if it is acyclic, no, not acyclic. Okay, third type you write on functional isomers, functional isomers. Two or more isomers, two or more isomers, two or more isomers, which has different functional group are called functional isomers, are called functional isomers, okay? For example, alcohol and ether, we'll write down the example of alcohol and ether, alcohol and ether can show functional isomers. The example is ethanol and dimethyl ether, the first one that you took, CS3, CS2, OH, and CS3, OCS3, alcohol and ether, functional isomers, okay? Again you write down alcohol and phenol, alcohol and phenol functional isomers of each other. Alcohol, you see it is, we have a ring, CS2, OH, this compound and OH here, CS3. What is the name of this compound? The first one, it's 1, ethylene methanol, because this is the functional group attached with it, so this becomes the variant chain, right? And this is substituent, phenyl and this is methanol, so one phenyl or simply phenyl methanol, okay? This one is methyl phenol, right? Methyl phenol, you see the molecular formula is same. This one is the derivative of alkyl derivative of phenol and this one is the, what we can say, alcohol, right? OH on the ring is phenol, OH with alkyl group is alcohol, right? So this is alcohol, this phenol, derivative of phenol can show functional isomers of each other. It is methyl phenol or we can say 1, 2, 3, 4 methyl phenol, paramethyl phenol also we can say, okay? But ortho-paramethane, we don't write it in, aldehyde and ketone, for example, you see CS3, CS2, C double bond OH and aldehyde and ketone, CS3, C double bond OH, CS3. Again, functional isomers, functional group is different. Amines are also functional isomers of each other. Amines, CS3, CS2, CS2, NH2, it is 1 degree of mine, right? RNH2. What about this one? CS3, CS2, N, CS3, H, it is 1 degree or primary amine, it is 2 degree or secondary amine, you can check the molecular formula is same. Or if I write CS3, N, CS3, CS3, tertiary amine, all these three compounds are functional isomers of each other, okay? So, primary, secondary, tertiary, amines are functional isomers of each other.


Thank you for taking your time to join this session. Today, I will talk to you about the extra boot configuration and boot time tracing. So let me introduce myself at first. I'm Masami Hiramatsu. I work for Renaro as a tech lead for Lena members' landing team. In the Linux kernel of the document, I'm responsible for the K-Probes boot config and its related tracing features and the tools. Okay, so let's start today's talk. So first of all, I want to make a notice. Actually, this session is not explaining F-Trace itself. So if you are not familiar with F-Trace, please check Steven's session. So why do we need the kernel boot time tracing? Because we sometimes need to be debugging and analyzing boot time errors and performance issues. For example, the major performance statistics and analyzing the driver initialization failure or debugging the boot time process and continuously tracing from boot time. So what we can do for those requests? So we actually have kernel command line options for tracing. There are the options for tracing and F-Trace. So let's see what we have now. So here are the command line options for the boot time event tracing. So TP-PrintK, for example, will show that the trace event data on the console. This is important if the kernel boot process has a bug and cannot reach login because you cannot dump the trace buffer in that case. So also, you can enable each event via trace event option. And you can add K-Probes of events also. It's like a breakpoint from the debugger. So you can add new events dynamically. You also can use the function and function call graph and other various traces like IRQs off, wake up, or preempt off or something like that by using the F-Trace option. Note that you can specify only one tracer at the time. And optionally, you can filter the trace function by its name. F-Trace filter and F-Trace no trace for the function tracer. And F-Trace graph filter and F-Trace no trace for function call graph tracer. You can specify which function you want to trace or not trace by its name. There are also some other options. For example, trace options will set the options for F-Trace. So you can pass some more options to that. For example, the stack trace option if you pass, that will add a stack trace for each event. And there are some other options too. Yeah. To check that those are options, you can see that the documentation admin guide, the kernel parameters, text. So here is an example of the good time tracing via the kernel command line. In that graph configuration, you can write the options like below. Yeah. It's nice to, it's not nice to read, but it works. So with these options, if you boot up the kernel, you will see that this, let's say, example output, let's say, this kind of output. This one needs a part of the boot log and of the kernel. And yeah, it shows that there are some more init call, start and init call, finish events, page force, are logged on the console. However, there are some problems over the kernel command lines. We have a size and coding limitations. And actually, that are the most of their architecture supports four kilobyte command line or more. But that must be a single line option. So four kilobyte single line, that will be hard to read and also hide. There are some boot rather rocker can allow us to write it in several lines, but it's still hard to read or write. And also, we cannot use the power event filters and actions instances and histograms with the legacy kernel command line. So what solution we have here? Oh, the first solution is we can use that are in it long way face. For example, embed the summer script chair script inside that are in it long way face, but it too late for the kernel boot time pressing dinner expanding the kernel command line. No, it's not so easy to write down their complex tracing options. So finally, I decided to introduce a new boot time data, which is the extra boot configuration. So what is the extra boot configuration? It's a new kernel command line extension. I call it as a boot config for short. This boot config is a plain ascii text of tree structured key value risk. So that are something like sis control dot com file, but more structured. So you can see that are the example. The boot config will actually that are loaded with the unit of the image when boot. And there is an incarnate APIs for flexible option parsing. So here is the extra boot configuration syntax. It's comfy. It actually consists of the simple key value set. You can set that values or sorry, you can set that value or array of values as a comma separated risk. And you can merge our same keywords with brace like this. So that if you have a key that word one equal value one and key that word two equal value two. This can be written as a key brace words one and a word one equal value one and what the two equal value two and close the brace. And here they are here are the value assignment operators. We have three assignment operators. The equal defined that value of the key and con equal override the previous assignment. Yeah, if you like that there are the equal was either assignment to assignment continuously on the same keys, you will be a was a error. So that's a you need to use that are colon equal. And there is a was a their plus equal assignment. It actually adds their value to their existing key as an array element. So that's a if you have a key equal full and key plus equal bar. This is the same as a key equal full comma power. And here is the latest update of the root config syntax. We can mix the keys and the values on the same key. So our parent key can hover a value and sub keys. Note that you can not match their values and the sub keys by brace, because it cannot identify a value or a sub key. Yeah, because of their value will be here. Yeah, in their, the was a their in this case we their value can be about sub key, not a value. Well, this is an important syntax. The comment. This is a comment. So you can add a comment in the root config. So if you put the comment, you can remember why that is said. Yeah. So that's all of the syntax of the root config. So here is. Yeah. So how the root config expand that the kernel command line. If the key. So that are in the boot config file. If the key start from the kernel keyword. Those are passed to the kernel command line. For example, kernel dot root equal, you ID equal, blah, blah, blah, it will be will set that there's a root option for the kernel command line. And also, if you set that there are the keys start with the unit. So pass to the kernel one line, but after double dash. So this means that these are the options are passed to their unit process, like a system day. So how we can now pass their boot config to the kernel. As I said before, I said before, boot config file will be loaded with unit Audi. So these are tools boot config boot config. Yeah, actually that are in a kernel source code. The, it's a cut as a common to handle. Was a hundred eight. So that's our. For example, hyphen a option will append your boot config file to the in the Audi image. The hyphen D option will delete it. So this figures how the root config file is appended to the unit Audi. The appended to the, yeah, I'll say, or the root file is appended to the unit Audi with a footer. The kernel will check that the footer to decode it. So if you are not that you need to set that are boot config kernel command line option to enable it. Or if you omit that this boot config option on the kernel command line. It is ignored. What, even if there is a boot config in the tail of the Intel D. Actually, that's all about the boot config. Would you have any questions with their contents so far? Oh, okay. Allison. Did you have questions? There does boot config works with flooded image three. So that are if you mean that there was a device tree. So are. Yes. So that are. If if you have a unit Audi image, it works. Yeah, even with or without their device tree. So. Okay. What's the kernel version, the root config, sorry, they're available. Is the next question actually that are, I think, kernel of 5.9 from the 5.9 or 5.0. I think the 5.9 will support that are the initial boot config. Yeah. Okay. Then we'll move on to the next slide. So there are how we can expand that the boot time tracing with this config. The boot time tracing has two types of the configuration in the boot config. So one need, yeah, actually that are. One needs are the kernel command line and one needs are good time tracing in F trace. And the boot time tracing in F trace will be here. We have our dedicated top level key. It's our F trace in the boot config. And another keys start from the kernel, which is there will use that are existing the kernel command line option for tracing. So. To support that are the power event, power event and power instance settings, we will use that the F trace keys. And also the K-pros synthetic events actions histograms available, available with the boot config. So let me show you that are how it works. So here is the example, which I showed you before. If you use that boot config, these options will be written like this. So compared with the command line version, you can easily understand what is set and why. So, so for example, you can see that the find that the buffer size is set to the one gigabyte, one megabyte. And also there is a two K-pros events defined and also in it go and exceptions are traced or something like that. Okay, so let's see more examples. So here is an example of the power instance settings. You can see that there are three different different tracers set at the same time in their different instances. The function call graph is in the default one default instance. And IRQs off tracer is set in the IRQs off instance. And wake up tracer is set in the wake up instance. And each tracer has a different buffer size. So here is the result. So you can see that the instance are automatically created. Yeah, for example, the IRQs off and wake up instances are created. And the each instance set that different different kind tracer. Yeah, you can see that the default kind tracer set to the function graph.  And also the buffer size is set in a different way size. And if you cut the trace file in each instance, you can see that the result of the tracer. For example, IRQs off instance, if you cut it, you can see that the tracer shows that the maximum latency of the interrupt off period. Like this, this shows that three million, yeah, about the almost four millisecond someone stopped the interrupt off. Anyway, here is another example. This tracer traces all function call graph in a specific function. Yeah, as I said that the function call graph tracer is the powerful tracer. We can see that the precise information to filter the result we had a function name filter. But that is sometimes doesn't work because we don't know what function is called inside that function. So combined with the power event actions, we can limit the function call graph between one event and another. This example uses the K-prox event to put that a pair of the event on PCIe proc init function start and exit. And trace on function at start action actually to start and trace off action at exit. And also we stop the tracing by default. You can see that the first line said that are the tracing on call zero. This means that the disabled tracing by default. So this mean I'm in total we start to call graph tracer at the start of the PCIe proc init function and stop it at the end of the PCIe proc init. There is a question in the question box. Do you like to answer that now? Okay. So how much overhead is there with a very minimum trace with this trace? Yeah, it's a good question. Actually, this depends on how much trace function you are was enabled. For example, the function call graph tracer will get more overhead. And if you enable that several different tracers, it will make more overhead. Yeah. Something like without actually that are in my QMU case, I saw that are if we I just enable that some events, it will just, I think it's just a 10% or something like that. But if you enable that function call graph tracer, you think that the more than five times slower than normal case. So it's totally depends on what tracer you enabled. Okay, and another question from Leo. Was there configurations for ftrace and kprose to start off from boot config. These two enabled after the kind of booting? Yes. That's a good question. Yes. The setting will be continued to the other was after the kind of route, because we cannot decide when we will say clear that we can clear that the settings. Currently, it will continue to set the same configuration after booting. So you need to clear that was something like that. So I recommend you to set up the summer event which was a trace of action. Then all the tracers will stop at that point. And also another question is after the kind of booting, how it handle the multiple instance. Oh, yeah, it actually that you can say you can usually use that there are multiple instance after kind of boot. So if you after the kind of boot, you can get the trace data from the each instance. And if you don't need any more, you can delete that instance. Yeah. Okay, there are another one needs are from Mikhail. Do we have a similar functionality for K probe K exit case. Sorry, I don't know about that the K exit cases. Maybe we can. I think that are if they're cake, the other was a Unitality can handle that the Unitality image, I think it's okay. Yeah. But not sure I didn't test it yet. So I will try to test it. Thank you for the question. Okay. So the next one. Here it's there. Okay. The result of the partial function code graph. Here is the result of the function so that you can see that the trace start from their PCI proc in it and stop at the exit. And here is the more complex example of the histogram. Yeah, actually that are event histogram can make a histogram of their event parameters, usually, but if you use it with a synthetic event, you can expand it to their histogram of their like it up to time between several events. Here is an example of the search histogram. It major that the time of the each unit to call functions. And make histogram on their unit call latency event, their new synthetic event. So you can see that are there in it calls that actions will set that are TS0 with their timestamp. And in a finish event there, you can see that are there. It will make a latency, the lot variable by using that are the elapsed time from their TS0 to the current common timestamp. And if they're the master to the start event, it will call that it call latency new event with the function name and latency. And in to call latency make a histogram of their given function name and other the latencies. So here is the here is the result of the histogram. You can see that are the function name and ERAPS time under those are sorted by the ERAPS time. So you can find that are what kind, what in it call function takes how long time to do that. Yeah, in this case that are the late six set algorithm will be take a long time. This is because that are this in equal will run a say benchmark function. Okay, let me explain the options which you can use in the boot config for the boot time tracing. So here is the other options which start from the kernel. These are the some options borrowed from the kernel monline. So I call it Grover options. So you can use that the TP print K and other options. Yeah, one question coming from Sarah. Is this initial initial function tracing same as a unit call debug? Yes. Yeah, good question. Yeah, actually that are this one is almost same as a unit code debug. But you don't need to enable that are the unit code debug with this feature and also we can filter it on the online actually with a good time tracing. So good time tracing is including that are such kind of features. Thank you. Okay, and here is the instance options. Those are started from the after race. So that are those options are setting that the instance rated parameters. If you specify any instance name, the instance is created automatically.  Yeah, so that are you can set up that are some options tracing on press clock and buffer size. And there are more instance options. Like Alex snapshot or city masks, event tracers after a stress filters after a notice is or something like that. Most options are similar to the options in the current one line, but extended to support multiple instances. And here are the power event options. Since their event is disabled by default, you need to specify the enable without any values. So also you can configure the filters and actions. As you saw in the examples. And also, there are K probes events and synthetic events. So, please focus on the group name. So if you put the group name, sorry, if you put the Cape Robes as a group name, if their event will be the Cape Robes events. And if you put the synthetic as a group name. This one will be your synthetic events. So that's our Cape Robes is kind of their dynamic event and kind of breakpoint. And the synthetic event is a kind of a stuff event, which is used for storing the histograms, usually. Okay. Anyway, if you look at the three of their boot time trace options, most of their F trace started options are actually that are corresponding to their trace surface interface. Of course, some sub kits changes their work changed for the simplifying the name. For example, if trace.instance.full.options, this will set the value to the trace surface thrash instances thrash who thrash trace options. And some other options, which which is that a trace surface does not expose user kernel command line option with the kernel keys. So for example, you can set that the tp print k or dump on oops. Those are not exposed by your trace surface. So I will use that reuse their actually that the kernel command line option. So that's our syntax for their boot time tracing. Would you have any questions about boot time tracing. I have one question. Yep. If you were to recommend. This is a super set of in it called debug also right because it includes in it called debug. So when would we, when would you recommend using boot time tracing versus in it called debug. Do you have recommendation. Obviously, if you see early boot problems, you want to use boot time, but I just wanted to see what kind of debugging or tracing would be appropriate in situations, which one would be better. Yeah, that's a good question. I think that are if you have some suspicious functions for the, yeah, for the debugging target. You can use that are there was a the second example technique. So you can start with their function call graph, the partial function call graph on their function and understand what their other was a was a function execution pass is done in a in that function. And yeah, you can put that summer cable of the events on that and get that summer or say some local variables, values, how it changed or something like that. But if you just focus on our unit call was a her debug. Of course, you can use that are the unit call debug option. Yeah. But I actually that I if you was a one filter out and focus on our summer. The result. You can in that case you can use that are this good time tracing. Because it's it can harbor the filters.  Is that good for you, sure. Yes, thank you. Yeah. Okay. Okay, the next question is a song a song and which it's a we don't use any to our MFS. Is there any other way to use that the boot country. Actually, that's a good question. Yeah. Currently, we don't have any way other way to use that the boot config without intram MFS. So, sorry, you, sorry, you need to use that intram MFS for using that boot boot config. I'm, I'm planning to, to add some more. That's a was a feature to add a boot config. Was a what appended the boot config to the kernel image. But it's not was a finished. So, if you are interested in please help me to do that. Thank you. Okay. Was a or these are the additional question was a informations. Oh, questions is coming and the cows question. Why are you or try type was a type to any term a face. Yeah, actually that there is no was a no good space for their. Any drum. Other than any term a face. Actually, at first. I tried to use that load other boot config without me to MFS. But in that case, I need to say other was a change their boot loader. Like a changing that grab or something like that. And also the kernel need to be changed to say identify that they're the boot config area. So it depends on their. Except was a outside of the kernel. So at this point.  All the code is in the kernel. So I'm decided to use that. Okay, that's a question from their. From the adrenaline. This new kernel boot config type with these tracing options is ideal for monitoring micro services at startup, or maybe more focused on their monitoring systems security at boot. Oh, yeah. Yeah, I'm, as I said that are in the first order of this session. I think that are the boot time tracing is. Yeah, if you are saying, you know, there are many ways to use that. Sorry, there are many reasons to use that. So I don't think I can say focus on that. There, those are the usage is. Yeah, if you, you know, want to use that for the system security. Yeah, you can use that. And of course, expand the boot config to support that. Like, making a secure secure security. Was a top level case, and you can add some more options. For that. Is that the question. Okay, the next one is the room. In the case of boot failure. Will there a crash file, or the kernel be stored in the kernel dump on variable. Oh, kind of sudden. You mean that are there the boot on kernel dump on variables. No, I'm not so sure about that. Sorry. I think that are if you are usually use the K dump or something like that. You can get the summer or say boot. I'm tracing. Was a trace buffer in the dump file. Yeah, I, I saw some script to get the F trace. Trace buffer retrieving from the crushed. Was a kernel image. So maybe you can use that. Okay. So this one needs additional information for their good time tracing. So for, for the purpose event. I think, do you think that are you need some more assistance to to set it up. If so, yes, we have a path probe, which is a part of the kernel path to it now support that are good, good config format. So you can define that the new K probes event by your source level information at below. So this example, actually that are put their probes on their 55 fifth line of their C groups in it function with SSID local variable. So as you can see that are that's that's boot config and that's that define will will show that are the definition of their capers events in a book boot config format. So now you can. Yeah, easily to get that they're they're capable of definition. Okay, our next slide is there. So, and also, if you feel that it's not easy to write down their boot config. There are two script to help you to make it. Yeah, one needs our efforts to be gone. This is a combat current after settings into boot config file. So that if you set up that the address, the trace service, then our runner after is to be gone script. You can get the boot from your file. And also, there is a beacon to after this SH is vice versa. It's, it read their given boot config file and make a share script, make a share script to set up that after this. So that's a apply option, which tries to apply that those, those commands to, to after this or check. And here is another information. I'd like to touch that the start timing of the boot time tracing. Yeah, actually, that I since they're a boot time tracing depends on the basic traces and also summer trace events was capable of the event. So we need to wait for those initialization. So there are the boot time tracing is actually started with their started at the last of their core unit call. Anyway, most of the corner initialization has been done after the quiet call the quiet call usually used for the initializing that the core functionality, very quiet functionality. So that's our, for example, the subsystems fire systems, or device. The servers will be initialized after that. So those are the traceable. And here is the initial, say initialization order. Sorry, internal initialization order of the, the boot time tracing. Also, note that the boot time tracing is initialized in this order. So not what you write. So, for example, even if you are enable the was an event. At first, if you are you are good to come to the right that the event enable at first and settings buffer size. It will be your was the event was, sorry, the buffer size is set at first. And afterwards there is an event is enabled. Always. So here is the summary of the usage of their boot time tracing. In the following steps, you can learn the boot time tracing on your kernel. So, at first, build and install your kernel with the config boot config and config boot time tracing. And build the tools boot config boot config. Actually, that you can learn make tools boot config will make a boot command. So, set up the F trace as you like. And generate the boot config file using that this F trace to become share script. Yeah, here. And applying the config file to the unit of the image as well as boot config high from a and in it out the end reboot machine with the boot config option on the kernel command line. Then you can get the other good time tracing is working on your kernel. Okay, that's all. All of their my talk today. Would you have any additional questions. You can use your voice or question and Q&A box. Okay. Okay. That's great. Thank you so much. Just want to do one last call for questions. Yeah. If anyone has a question from a Sami, please go ahead and type it in the Q&A box or the chat. Or feel free to unmute yourself and and use your voice. I'm sure do you want to talk through the different resources available. Of course. Okay. Okay. Yeah, thank you very much for joining this session. Yes. Thank you. I'm sorry. Oh, there we go. Perfect. Yeah. She will we'll just give a quick run. Oh, we have a question. There you go. Okay. I think that the last question will. Yeah. If any term is error happened, then we will. Not able to run this. It's right. You mean that's right. If they're in it from a face other summer. Was it their format errors or something like that. In that even in that case, actually, the boot config can work. Because that's our, we will get the boot config before was a passing or was a. Decoding that the image. So that's our, even if they're the image is broken. The boot. Unless that's a boot config isn't broken. Yeah. The boot config and the boot time dressing is work that can work. Okay. And please, how do I get there more resources to help me because I'm. Junior in the world. Yeah. Okay. I actually that are in this slide. I showed that the summer. There was a documentations. What was the year actually that the documentations are in there. The kind of source code. Sorry. Kind of documentations. There is some more. Documentations about the boot config. In there. The documentations under the. Admin guide. And also the boot time for the boot time tracing. You can find that the documentation. Was it find it under the documentations. Slash tracing slash that the boot time tracing. The RST. So you can find that those are. The resources under the. The kind of source code. Sure. Thank you very much. Yeah, sure. Yeah. What they are shared. They're eating their chat. Yes. I put the link to. In the chat for you to see everybody. Yeah. Okay. Thank you very much. Is there one more question there? Okay. One more for you. Yeah. At the bottom there. Is device three or ACPI very. Alternatives to the interim. Is that true? Consider. Yeah, actually. At first I tried to. Change the device three. To support that the boot time tracing. But it was great or rejected. Because that the device three is only for the hardware. And not for the software. So we cannot use that. And the ACPI ACPI is actually. Was a made by the hardware vendor. So I cannot use that. So, so that's the, that is why I introduced. There are extra boot configuration file. Okay. Thank you. Thank you. I'm sure. Also. Yes. Actually the reason you would want to not tie to ACPI. It would be that it would be. Sorry. I cannot hear you. It doesn't depend on the firmware. If we were to. Not to tie it to device three or ACPR. The. I was wondering if that's another reason. To not have a tie with the format. Yes. That's right. So that's our current three. Some protons to use that the device three. From the file. But the recent three more modern. The device three from the family. So we cannot change it. Yeah. Correct. There seemed to be another question for you. Oh, yeah. Okay. We have time. So don't worry. Okay. Okay. The question is. Those are tracing option. Straight to go. Or permanently in. There's some new kind of version. Very. I hope so. Actually, I hope so. I will. Expanding. There was either. The options. Because that's a trace. Introducing that there are new features. So that's a. Actually that depends on the trace. API's. So unless there are trace. Fs. I hope so. I hope so. I hope so. I hope so. I hope so. I hope so. Okay. But one thing is for you guys. So unless there are trace. Fs. Does not change. This. These are parameters will not change. In a new corner version. Thank you. Okay. Okay. Sure. Would you or try to. explain that there this material. Yeah, go right ahead Shua, thank you. Thank you Masami for doing this. Thanks everybody for attending joining us and asking great questions. We hope it will be helpful in your journey to learning more about effective and productive participation in the open source projects. This is why we do this. We offer this as a self-study for not only new developers but also people wanting to know a different area in the Cardinal or about open source. We have various, we have webinars ranging from open source to software engineering and Cardinal specific. And we also leave you with the other resources, the next one Foundation Mentorship Program and outreach internships and training opportunities on the slide. These are all links, you can go and learn more about them. And we also have Linux Foundation events to attend a range of, we have educational content that you can learn from attending these events. And thanks again for joining us today. Thank you so much everyone. Thank you Masami, that was wonderful and hope everyone has a great day. Thank you. Yeah, thank you very much for joining us and I hope you have a great day and great good time tracing. Thank you. Thank you Masami. Thank you.


This fascinating figure comes from the IPCC. It shows 10,000 years of history, 10,000 years ago on your left, up to today, in the big panels, and then just since 1750 in the little panels, in each case. And it shows it for carbon dioxide on the top, for methane in the middle, and for nitrous oxide on the bottom. These are the main greenhouse gases. They're shown on the left in concentrations. This would be parts per million for CO2 and parts per billion for the methane and nitrous oxide. And over on the other side, it shows radiative forcing. So this is a measure of how much the sun would have to get brighter to have as much warming effect as the greenhouse gas is having. And you'll find that the radiative forcing is biggest for the CO2. That's a 1 up there, 1 watt per square meter versus 240 from the sun. Smaller values for the other two. These plots show ice core data from many different ice cores measured in different places by different labs and drilled in different places and so on. And then overlapping with the measurements that have been made in the atmosphere by modern instruments. You'll see because there's so much agreement among the different cores and different labs and so much agreement with the instrumental record, these are highly reliable. And what they show with very, very high confidence is that the greenhouse gas forcing, the greenhouse gases are rising. Other information shows that that rises very clearly from us.


Hello everyone and welcome to my can't hurt me master your mind and defy the odds audio summary by David Goggins This book is bonkers I'm just gonna tell you straight up David Goggins I'm gonna do a brief summary of the book and then we're gonna go through a chapter by chapter But if you could sum this up in like a couple sentences like man up grow a pair Don't be a b-word And do what you need to do and if you think you're tired or you think you're over trained or you can't handle anymore You can you can it's crazy. Anyways, let's do a quick summary that we're going to go through a chapter by chapter So can't hurt me master your mind and defy the odds is a thought-provoking and inspiring read that provides Valuable insights into the power of the mind and emotions The author David Goggins is a former navy seal a green beret ranger or something crazy like that He's an ultra marathon runner. He's an accomplished athlete and he shares his experience in the lessons He's learned from overcoming significant challenges and adversity The book emphasized the importance of having a growth mindset Which involves embracing failure as an opportunity for growth and improvement and pushing oneself beyond one's comfort zone I'm going to state right now. That is an understatement and that is a massive understatement the comfort zone Yeah, we'll get into that. But yeah, just keep that in the back of your head It also highlights the power of thoughts and emotions and the need to take control of them to achieve success Goggins argues that mastering one's mind and emotions is key to reaching one's full potential and achieving greatness He encourages the reader to develop emotional intelligence Cultivate a positive outlook and use their emotions to your advantage or their advantage Through self-reflection and introspection the reader is encouraged to take control of their thoughts and emotions and to use them To achieve their goal and aspirations or goals and aspirations Overall, this book provides valuable insights into the role that the mind and emotions play in shaping our lives And achieving success It is an excellent resource for anyone looking to overcome personal and professional challenges Pursue their passions and reach their full potential If you're looking to take your life to the next level can't hurt me is a must read and again When you say next level and I say next level, it really is next level. All right, that's summary now done Let's go into it chapter by chapter. I'm going to go through it one by one And we're going to go and do a quick analysis of all of them. So here we go chapter one All right This is entitled the american dream in this chapter The introduces his story and he sets the stage for the rest of the book He provides an overview of his childhood and early life growing up in a disadvantage and abuse of household And he goes to great lengths to discuss the abuse that goes on there and it was pretty bad And how he struggled with poverty poor grades and behavioral issues But was determined to escape his circumstances and pursue the american dream eventually The author recounts his experience going joining the air force and going through basic training Which he describes as physically and mentally grueling grueling part of me despite facing Numerous challenges and setbacks gogans persevered and he eventually became a member of the elite special forces unit or the navy seals The chapter ends with goggles with goggles not goggles Gogans reflecting on his journey Thus far and emphasizing the importance of perseverance mental toughness and a growth mindset He sets the tone for the rest of the book by demonstrating that success is not determined by one's background or circumstances But is instead determined by your determination and willpower This chapter serves as an introduction to the author's life and lays the foundation for the lessons And insights that are coming up in the forthcoming chapters. Okay. Let's go into chapter two Chapter two. Well, this one's entitled the pain cave. And if any And he goes to a cave. It's filled with pain. Let me tell you this again understatement Uh, we'll get into that the chapter focuses on the author's experience of pushing himself to his limits And learning to embrace pain and suffering. I'm going to add in here that when he goes to his limits I don't mean like, oh, I feel tired or that's enough for the day I'm talking like literally physical limits like you can't physically do anymore That's the level that he goes to Gogans starts by describing his introduction to ultramarathon running and his initial struggles with the sport Yeah, you know running a hundred miles or something like that. I could see it being a problem But whatever he goes for it Despite being in physical excellent physical shape and having a strong will he struggled to complete even the shortest of races He soon realized that the physical limitations were a result were a result of his mental limitations The author then shares his journey of learning to overcome these mental limitations and embracing the pain and suffering that comes with ultramarathon running He explains how he developed a technique. He calls the pain cave Which involves pushing himself beyond his physical limits and embracing the pain as a means of growth and self discovery Yes, crazy town. He goes to crazy town Um Gogans also touches on the concept of positive suffering Which involves seeking out and embracing challenging experiences in order to improve one's mental and physical strength He shares several examples of his own experiences with positive suffering Including his experience of breaking multiple world records and completing some of the most grueling ultramarathons in the world The chapter ends with Gogans emphasizing the importance of learning to embrace pain and suffering as a means of growth and self discovery He argues that it is through facing and overcoming challenges that one can truly test and improve their mental and physical limits This chapter serves as a powerful testament to the benefits of positive suffering and the author's philosophy of embracing pain and challenge Excuse me as a means of growth and self discovery my boys crack there Chapter three is titled the 40 percent rule in this chapter He introduces the concept and one of the key principles he used to push himself beyond his limits The 40 percent rule the 40 percent rule in a nutshell It basically states that when one feels like they can no longer continue They are actually only at 40 percent of their true physical and mental capacity That's right when you feel you are at your limit You are less than halfway at your actual limit. Let that sink in for a second Gogans argues that it is but only by pushing beyond this perceived limit That one can unlock their full potential and achieve their greatest accomplishments The author shares several examples of his own experiences with the 40 percent rule Including his experience of completing 100 mile ultramarathons and breaking multiple world records He emphasizes the importance of learning to recognize and overcome the mental barriers that prevent one from reaching their full potential Gogans also explains how the 40 percent rule to apply is to all aspects of life Not just physical endurance. He argues that it is through pushing beyond our perceived limits And embracing the discomfort and challenge of new experiences that we can grow and achieve our goals This chapter ends with gog with goggins and our goggles goggins Emphasizing the importance of cultivating a growth mindset and again a willingness to embrace discomfort and challenge He argues that it is only by applying the 40 percent rule to all areas of our lives That we can truly master our minds and defy the odds I want to state right now that it is one thing to write a book in theory and say this is what you should do And this is what a rule is it is another thing to actually live the rules And that's what makes gogins so spectacular is he talks about it But he lives it he lives it first and then he sort of just writes down what he does So this isn't some you know ivory tower theory stuff He lives this and he is all about this. So that's what I that's what makes this book great in my opinion Anyways, let's get on to the next chapter The next chapter is called the power of the mind in this chapter He delves into the concept of the power of the mind and how it affects our ability to overcome obstacles and achieve our goals He starts by discussing the limitations of the body and how the mind is the only true Unlimited aspect of our being which makes some sense He argues that it is only by harnessing the power of the mind that we can push beyond our physical limitations And achieve real greatness He shares several examples of individuals who have harnessed the power of their minds to overcome incredible odds and achieve Accredible feats. He also touches on the concept of visualization Explaining how this technique can help individuals tap into their full potential and reach their goals He also explains how limiting beliefs and negative self-talk can hold us back and prevent us from reaching our full potential He argues that it is only by recognizing and overcoming these limiting beliefs That we can truly tap into the power of our minds and reach our goals The chapter ends with Goggins basically saying the importance of developing a strong and positive mindset And the roles this plays in overcoming obstacles and achieving success He argues that it is only by recognizing and harnessing the power of the mind That we can truly overcome our limitations and achieve actual greatness All right in the next chapter it's titled the harsh realities of life That's right reality check time in this chapter He discusses and reflects on the harsh realities of life and how they can be used to spur Personal growth and development He starts by discussing his own experiences with poverty and hardship And how those experience shaped his perspectives on life and helped him develop a strong work ethic and determination He argues that it is often the most difficult experiences in life that can lead to the greatest personal growth and development He also discusses the importance of embracing failure and learning from our mistakes He argues that it is only by recognizing and accepting our failures that we can truly grow and improve He also touches on the importance of perseverance and the role that this plays in overcoming obstacles and achieving success Goggins also shares his own experiences with the overcoming setbacks and failures And the lessons he learned from these experiences He import he emphasizes the importance of resilience and the role it plays in helping individuals Bounce back from setbacks and reach their goals The chapter ends with Goggins reflecting on the harsh realities of life And the lessons that can be learned from these experiences He argues that it is only by embracing the difficulties and challenges of life that we can truly grow and develop both personally and professionally All right, let's get into chapter six. This one is the lessons learned from pain. Yes, that's the name of the chapter Boy, oh boy In this one, he discusses the lessons that can be learned from pain and how they can be used to spur Personal growth and development He starts by discussing his own experiences with pain both physical and emotional And the lessons he learned he argues that pain is a necessary part of growth And that is only by embracing and learning from pain that we can truly improve and reach your goals He also then discusses the importance of mental toughness and how this trait can help individuals overcome obstacles and achieve their goals And let me tell you Goggins is mentally very tough and physically very tough He argues that it is only by developing mental toughness and a strong will that we can truly overcome the pain And discomfort associated with growth and improvement He also touches on the importance of self-reflection and introspection And how this can help individuals gain a deeper understanding of them of themselves And their motivations He argues that it is only by understanding ourselves that we can overcome our limitations and reach our full potential This chapter ends with Goggins emphasizing the importance of embracing pain and using pain as an opportunity for growth and development Yeah, and let me tell you when you look at the examples He goes into the pain cave. This guy is mentally tough All right in chapter seven this one is entitled the importance of mindset And in this chapter he delves into the concept of mindset and his role in determining success and happiness He starts by discussing the difference between a fixed mindset and a growth mindset He argues that individuals with a fixed mindset Believe that their abilities and traits are set in stone pretty much from birth While individuals with a growth mindset believe that they can improve and grow through effort and hard work This also touches on other authors out there that cover this in more detail But he goes there and he discusses it how it applies to him He also explains how a growth mindset is essential for success and happiness As it allows individuals to embrace challenges and see them as opportunities for growth and improvement He argues that it is only by developing a growth mindset that we can truly overcome obstacles and reach our goals Goggins also touches on the on the importance of having a positive attitude and avoiding negativity He argues that it is only by maintaining a positive outlook and avoiding negative self-talk that we can truly tap Into our full potential and reach our goals The next chapter is entitled the power of habits In this chapter he explores the role that habits play in shaping our lives And the steps we can take to develop positive habits and overcome negative ones He discusses the power of habits and how they can either support or sabotage our goals and aspirations He argues that it is only by understanding the role that habits play in our lives that we can truly take control And make the changes we want to see He explains the importance of developing positive habits such as regular exercise and healthy eating and how these habits can help us Achieve our goals and improve our overall well-being He also touches on the role that discipline and consistency play in developing positive habits and overcoming negative ones Goggins also shares his own experiences with developing positive habits and overcoming negative ones and the lessons he learned from these experiences He emphasizes the importance of being intentional and purposeful in the habits We develop and the role that self-reflection and introspection play in the process Positive habits and overcoming negative ones is the gist of the chapter and it is required for you to achieve greatness and full potential In the next chapter David Goggins goes into the benefits of self-discipline In this chapter he discusses the concept of self-discipline and its role in helping individuals achieve their goals and live fulfilling lives Goggins start by discussing the importance of self-discipline and how it can help individuals overcome obstacles And again reach their goals. He argues that the self-discipline is essential for success And that it is only by developing this trait that we can truly tap into our full potential and achieve the greatness The greatness within us all He discusses the role that self-discipline played in his life and how it helped him overcome temptations and avoid distractions He argues also that it is only by being self-discipline and avoiding distractions that we can stay focused on our goals And again achieve those results He shares his experiences with self-discipline and the lessons he personally Personally learned part of me And he and he emphasizes the importance of setting goals and being intentional In the actions we take and the role that self-reflection and introspection played in the process All right in the next chapter This one is the power of pain and you'll see here that pain is a recurring theme in this book And boy does he go there In this chapter he explores the role that pain played in shaping our lives And the steps we can take to turn it into a powerful tool for growth and transformation He discusses the role that pain plays in our lives and it can either hold us back or propel us forward He argues that it is only by embracing pain and using it to our advantage that we can truly grow and transform The author explains the importance of developing a high tolerance for pain And I think in the whole world nobody can handle pain better than this guy And it's a high tolerance for pain and discomfort and how it can help us again overcome obstacles and achieve the goals We're looking to achieve He touches on the role that persistence and determination play in this process As well as how much you can in terms of how much pain you can take on And how these traits can help us push through even when we are facing the most difficult challenge challenge is part of me The chapter ends with Goggins emphasizing the power of pain and the role it plays in shaping our lives He argues again that it is only by embracing pain and using it to our advantage That we can truly grow and transform and achieve greatness in all areas of our lives All right Chapter 11 is titled the laws of the mind In this one he discusses the role that our thoughts play in shaping our lives And the steps we can take to control our minds and harness their power He goes and discusses the power of our thoughts and how they can either hold us back or again propel us forward He argues that it is only by taking control of our thoughts and using them to our advantage That we can truly tap into our full potential and achieve actual greatness He goes into the importance again of developing a positive mindset and how this can help us overcome obstacles and achieve our goals The power of things like visual Visualization which was discussed earlier and the power of self-talk You know what these are all discussed and how techniques specific techniques like this can help us maintain a positive and outlook An optimistic outlook part of me even in the face of adversity In the final chapter this one isn't called the laws of the heart And in this chapter he explores the role that our emotions play in shaping our lives And the steps we can take to harness their power Goggin starts by discussing the power of our emotions and how they can either hold us back Or move us forward. He argues that it is only by taking control of our emotions And using them to our advantage that we can truly tap into our full potential and achieve greatness The author explains the importance of developing emotional intelligence and how this can help us overcome obstacles and achieve our goals He also touches on the role that empathy compassion and resilience Play in this process and how these traits can help us maintain a positive outlook A positive and optimistic outlook part of me even in the face of adversity The chapter and the book ends with Goggins emphasizing the power of our emotions And they roll the role they play in shaping our lives Again, he says you got to take control of our emotions and use them to your advantage Maintain your positivity and you can actually reach your full potential in all areas of our lives This book is is just absolutely unbelievable. It is You know 12 chapters long, but it is full Of examples ideas things that he does in his real life and he lives it I again, I repeat what I said earlier. He doesn't talk about this like an academic. He is an actual practitioner Unbelievable book. You got to read it to believe it Check out. I've got a ton more summaries coming up guys. Thank you for listening. I'll be back soon with some more stuff


Azerbaijan sent new batch of energy aid to Ukraine. The second batch of humanitarian aid consisting of electrical equipment has been sent from Azerbaijan to Ukraine. The humanitarian cargo includes more than 900,000 meters of electrical cables and wires as well as 18 transformers and transformer substations. A convoy of 23 trucks with humanitarian aid provided by the Ministry of Energy of Azerbaijan left the Sungayit Technologies Park on November 21st. According to an order by the country's President Ilham Aliyev, another batch of electrical equipment valued at $7.6 million is to be sent to Ukraine in the near future as part of humanitarian aid. Azerbaijan sent the first batch of humanitarian aid to Ukraine in late October. Ukraine appreciates great help from Azerbaijan and the Azerbaijani people, Ukrainian Ambassador to Azerbaijan Vladislav Kalevsky told. History confirms Ukraine and Azerbaijani's affinity. Countries assisted one another at the most difficult time in our history. And today, we are overwhelmed by Azerbaijan and the Azerbaijani people's generosity. This includes both humanitarian help and support in reconstructing damaged infrastructure. The Azerbaijani government has already set aside more than $30 million for this purpose, he said. Vladislav Kalevsky stated that Ukraine is delighted that an additional $7.6 million was just given by decree of Azerbaijan's President Ilham Aliyev. This sum will benefit the energy industry first and foremost, and Ukraine is pleased that thousands of citizens were able to survive the winter owing to Azerbaijan's assistance last year.


Hey, what's going on guys? Ruthenelle here coming back at you with another Python tutorial Let's get idle fired up and let's see what we can do here. I'm going to create a new script file.python Save this as Obviously file.python, but type in your shebang line if you need to Create a new class because we like object-oriented programming or OOP Create our constructor and that will happen automatically when we create an object Let's test if this is the current script. We are running and if it is we can create an object Alright now let's get started. I'm gonna create a new string variable here self.string And I'm gonna say this is a string Okay now the function that I want to introduce you guys today is called the the string Replace function and what this will do is it will replace any occurrence that it finds of a Substring inside your string and you can replace it with whatever you'd like So we can run self.string and you can use our dot selector and we can type in replace and call that function So the first parameter is going to be what it is that you're looking for and you want to replace So we'll say is and then we can change it to whatever we like. So let's say at and let's run this that at a string So it changed the first is that it found inside the this and then it changed the next one that it find as the regular is so that at a string Now there's another parameter we could put on here And that is a count or a number of times that this function will run or at least the number of times It will replace that that thing in the string. So let's try that. Let's if we added if we added one It'll only do this once That is a string So it's going to disregard the second one that it finds But if we leave this blank just the way it would it does before it'll repeat it as many times It needs to and replace every occurrence of it if we change it to two obviously it'll do all of them because uh That add a string and that's all it'll find but if we change it to like an eye a AA that Though that's as a string and this eye is being disregarded because we're only changing it two times So if we remove this that has a string and then if we do three times it'll do it all So let's try and recreate this all on our own It's going to be a little tough to work with this This let's see this maximum count number But hey, you know we'll work with it and we'll see what we can do this one might this tutorial might be a little hefty And it's good. It's definitely gonna be a little bit complex, but let's start anyway. Let's get replaced Let's start our function name. Let's call this a replace. We're gonna need some variables here We'll call itself of course Working string and then I'll replace Let's spell working right first of all replace with And then we'll do count and count is since it's a default parameter. It's an optional. We're just gonna change that to none I'm gonna make this a little bit bigger so you can see everything that we're gonna do here And we'll check it out. So the first thing we're gonna need is the length of the things that we're working with So we need working string length working String length we can just get the length with the len function of the working string that we passed to it and Then we need the replace length This is going to be the length of replace Now since we can't add Anything or we can't change things inside of a string We have to create a new string and this new string will start off being blank or an empty string And then we're gonna be able to add to it while we loop and now we're gonna create a new Incrementor variable and this is going to be I so I can be zero and Now let's get started First we're gonna try it without worrying about the count variable and then we're gonna add that in later So let's create a while loop now now We're gonna use a while loop rather than a for loop because the for loop when we're using it in conjunction with the operator If we did a for I in range Working string length if we did this because range has that static call if we change it to like Maybe 20 or something. It's going through every single one of these inside For a value of I we can't really change I and have it become whatever we want It's static it has to be any one of these every time it iterates So instead we're gonna use a while loop so we can control the flow and how our I variable is going to operate So if we change this while loop now while I is less than working string length So it's the same as if we were going through a That for loop there we can we can test if the working string with the index of I And then we can slice here I plus the replace length So we're testing if the current thing is is what we're going to be replacing or at least Something that we would want to replace what we would do Is we would set that new string and we would add on what we're replacing with And Then we can increment I will at least add it to the current Replace length so we can skip over all the characters that are inside what we were replacing now if not We still want to add to to our new string So we get the the original string and we can add on working string and then index with that I variable So every character that isn't something that we're replacing will be added to that string and now we're gonna want to At least increment I So now we can run this and let's see is there anything else we had to do here. I Think when we're done that while loop we can just return new string and Let's see if it'll work the way we want it to let's go ahead and put it up in our constructor First of all, let's print the original one. We can print out self-dot string And I'm gonna you can catnate on here a couple new lines. So it's a little clean We're gonna use your rid the the real function real built-in one and Then we can print with our function self dot replace And we're gonna pass in self dot string We want to remove the at least replace the eyes with a's and we run this That's as a strang and that's as a strang Now if we reply and we put it in the original built-in function that we wanted a maximum number We change it to like to We get that as as a string now if we did this with ours though Nothing would happen because we haven't added support for that. Yeah, just yet So we're gonna try and do that now. This is gonna be a little bit more dirty or a way to fix it It was what we should do is we should change this while loop process into a function But for the time being we don't have to worry about that. We're just gonna see what we can do But a fault so let's test If if count is equal to none first of all Then we can run our original function or at least what we have here This this while loop and copy and paste that in and we can select all of it And if you're an idol you can use the control and then the the ending brace key the ending bracket key So now we have that all set and if count is not equal to none You can add an L statement in here else We can do something else first you want to test that for the type of count. So if the type of count is Not an Integer We're gonna want to change that so we can set counts to the integer form of count So now let's get to work. Let's gonna set a counter Counter is going to be the number that we're going to keep repeating up until we get to the the specified count or the specified number of times they want this done so we can set counter to be zero and then we can Create our while loop that we had right up at the top here I'm just gonna paste that in and now if we check all through that We're gonna what we're gonna want to do is replace Or at least down here when we if we find something that we're replacing We're gonna want to increase the counter variable obviously because we're only gonna do it so many times And if not we're still gonna want this and then we can break out of here But first we need to test if counter is actually less than count if it is We can test for this other if statement here Along with the else so let's copy and cut those in Okay, and now we're gonna want to include this l statement Alongside the top most if statement here too because even if we're finished replacing things We still want to get the entire string. So we're gonna want to copy and paste this and Put one right at the end of Our top if statements so we can cut this here and that should be okay And now when we're done we've broken out of everything we can return that new string So we're sort of repeating this process again But making up for the fact that we do have a count variable now or at least we're limiting how many times we can add Onto this really out. We're limiting how many times we can replace something. So let's try and call our function now That's as a string and that's as a string it works in both cases now because we've added for the fact for that count variable We're going to keep increasing the counter variable every time we replace something and only if it's less than count will replace something But we're still going to want to add on the rest of the string no matter what so This is why we need all these l statements inside here It's a little bit complex and a little bit hard to follow But you do have to keep track of all the variables that you're looking at We still have to keep track of count you have to keep track of your your looping variable Whether it's I and the incrementer is working with you have counter whether that's less than count and that sort of thing So it's easy to get lost in this code But it still solves that same problem as a replace function and we've created it and turned it into our own So thank you guys for watching. I hope you enjoyed this I know this one is a little bit more in-depth and crazy, but you know there's a lot we can do with it Let's let's experiment just a little bit more but let's a little bit more before I let you guys go Let's turn this into See we replace as many times as we want that as as a string we can change the is to an at If we run this it changes that at a string We can only do this once if we want to We can even to put in something that isn't found in there it it It'll replace it with the they're the same old regular string So look what you've done guys. This is a pretty pretty handy function And this is how it works on the back end. So I hope you guys enjoyed this I know it was a bit more lengthy and there's a lot to it, but hey the replace function is definitely helpful So thank you guys for watching and be cool if you could like the video maybe leave me a comment Let me know what you think and maybe subscribe. I don't know it's whatever you'd like to do But hey, thanks again guys, and I'll see you in the next tutorial. Bye