I found the 19 best fully remote jobs that are hiring right now and many of these are going to be available worldwide. And my team and I took dozens of hours painstakingly looking through countless job boards to find these types of jobs that are often hiring fully remote and also many of them are available worldwide. So if you appreciate all the hard work and me doing this type of video go ahead and let me know by gently tapping that like button and let's jump into the video right now. The first one on the list is going to be a security control assessor. And this is kind of like being a lifeguard at a digital beach. And this is basically a position where you proactively evaluate the policies, procedures and technical systems in place to ensure they effectively guard against potential threats. And this is kind of like a combination of operations management, cybersecurity analyst and then sprinkle on top of that a little bit of legal and regulatory compliance. And this is important because according to studies hackers attack about once every thirty nine seconds and it affects one in three Americans every year and security control assessors make about seventy five thousand dollars a year. Now this is one of those roles that you can get into without a college degree. Some companies do prefer people who have degrees, but you don't need one to get this job. Instead, you can self study and get certifications such as the security plus from CompTIA. Now here are some job openings available. I'll put them up on the screen so you can check them out if you'd like to. And yeah, I really like this one. I'll give it a nine out of 10 opportunity score. Next is going to be similar and that's going to be a cyber threat intel analyst. And again, these are the types of jobs that are often available fully remote and you can get them worldwide. And rather than waiting for a threat to happen, CTI analysts basically strategize to make sure that when those threats happen, nothing goes wrong. And there's lots of jobs out there for businesses in the technology industry, business contractors, and basically any business that uses the Internet, which is basically all of them. So this role is all about being proactive and you really have to know your stuff in order to do that. And that's why they make about $170,000 a year. So this would not be an entry level job. This would be one that you get down the line, maybe two or three jobs in. So the way to get into this one would be to first of all have some experience working in cybersecurity and then get the proper certifications and some good places you would start is of course taking CompTIA certificates. Coursera also has a cyber threat intelligence course, which is highly rated. And there are many other courses online that you could take. So yeah, I really like this one. Lots of opportunity when it comes to cybersecurity roles. I'll give this one a 9.5 out of 10 opportunity score. Next is going to be a sales engineer. Now, typically in this role, you'd be doing what's known as B2B sales. And that's where you sell products and services to other businesses. And in many cases, you're going to be selling contracts that are hundreds of thousands, maybe even millions of dollars. No pressure. So what you're going to be doing is explaining these complex products, which in many cases are going to be technology related to potential clients. It's truly amazing. A portable television studio. So an example of this would be a cybersecurity firm doing a major contract with a giant tech company such as Amazon or Facebook. So you not only have to have sales skills, but you also have to understand the technical aspects of the product. So that, as you can imagine, is a pretty rare skill set. But with that being said, this type of sales is a lot less salesy, for lack of a better word, than most types of sales out there. Because it's more about just making sure that your product fits the customer's needs. And you're going to be spending most of your time understanding the customer's problems and then showing them how your product can solve them. So sales engineers make about $125,000 a year. And this can also lead to some much higher paying jobs as well. So for instance, I interviewed Antoine on this channel who makes over $500,000 a year in tech sales. And by the way, if you're interested in tech sales, the entry level job is going to be what's known as a business development representative or BDR. That's how you get your foot in the door in tech sales. And even at the lower level, they make on average about $70,000 a year. And my friend Troy actually specializes in getting people BDR jobs.  And he does have a free training, which you can check out and I'll put that down in the description as well as the pinned comment below. And by the way, here's some job openings if you're interested in this position. And overall, I'll give this one an opportunity score of 10 out of 10. Next on the list, we're going to be talking about penetration testers. And this is a very interesting position because you basically pretend like you're the hacker and you try to hack companies. But you do it in an ethical way. So when people ask you what you do at a party, you can literally tell them that you hack into computer systems for a living. But don't worry, it's legal. At least mostly. But all joking aside, there is a ton of opportunity for people who are really good at this. And that's why penetration testers make about $114,000 a year. I'm going to be rich. Now, you definitely do not need a college degree to get started with this. I mean, think about it. Most hackers out there probably don't have college degrees, but you definitely do need to know your stuff. And you kind of need to come at it from the mindset of a hacker. So some things you could look into for this one would be the IBM Cybersecurity Analyst Professional Certificate. You could also look into becoming a certified ethical hacker. You can also look into the CompTIA PIN Test Plus exam. You can get a Certified Penetration Tester Credential or a GAC Penetration Tester Certificate. Here's some job openings up on the screen in case you want to check them out. And overall, I'll give this one an opportunity score of nine out of 10. Next on the list, we're going to talk about desktop support technicians. So this is another entry level job. So you don't need a college degree or previous experience to get into this role. And basically, you're going to be helping people to fix their desktop or laptop issues within a company. So it's very similar to IT help desk. It's just a little more specific. So you're dedicated to fixing only desktop or laptop related issues, whereas IT help desk can be more broad when it comes to the technical stuff that you fix. And in this role, you'd make about $54,000 a year. And that's great considering it's an entry level job that doesn't require a college degree or previous experience. Now, a great way to get started with this one would also be course careers, which is the company I mentioned earlier. And they help you get into IT help desk roles, but this one is extremely similar to the same sort of thing would apply. And again, you can check that out. I'll put it down in the description as well as the pinned comment below. But yeah, this one is phenomenal. I think it's great, especially if you're just trying to get started with your career. When it comes to the tech industry, you kind of just want to get your foot in the door. And once you've got your foot in the door, it's going to be much easier for you to network or get other jobs. So I'll give this one a 9.5 out of 10 opportunity score. Next is going to be a system administrator. And this is a very similar role, but you're going to be focusing more on the technology infrastructure of a company. Now, this typically is not an entry level job. This might be like the second job that you go to, for instance. And you might start off as a desktop support technician or IT help desk, something along those lines, do that for a year or two and then move into this role. And they pay about $85,000 a year. So here are some job openings. I'll put them up on the screen in case you want to check them out. But yeah, this is another great one. I'll give it a 9.5 out of 10 opportunity score. And since I mentioned it before, might as well bring it up in the video, IT help desk. You're going to be answering the phone and helping either customers or your fellow employees with technical related issues.  And then you're also going to spend a significant amount of time resetting people's passwords when they forget them. And they make about $53,000 a year. So there's some job openings right here. I'll put them up on the screen so you can check them out if you want to.  It's also entry level, very easy to get into, does not require a college degree, etc. Next, let's talk about security analysts. And in this role, you're basically going to be like a digital detective, sniffing out vulnerabilities and making sure that cyber fortresses remain impenetrable. And you're going to have a little bit more of a focus on data and protecting it. And security analysts make about $99,000 a year. Now, there's many different ways of getting into this. It's usually not going to be an entry level role. So a lot of the time you'll start off in IT, some sort of IT related job. Then you'll do some certifications and move into security. So you might take the CompTIA SEC plus certification, for instance, and then probably a lot of self-study as well. Now I'll put up some job openings in case you're interested in this one on the screen. And overall, I'm going to give this one an opportunity score of 9.5 out of 10. And I know I'm getting a lot of really high scores here, but that's because these are honestly some of the best jobs out there. Next on the list is going to be a manual tester. And this is basically where you use technology, for instance, a piece of software that your company is creating. And you test it in every which way imaginable to see if there's any bugs or problems. And this is kind of like being a book editor for a writer. So you definitely do need to know a little bit about software development here. You need to have a little bit of programming knowledge. But the biggest thing is you need to have great attention to detail. And manual testers make about $78,000 a year. Here are some job openings. I'll put them up on the screen.   So go ahead and subscribe and hit the notification bell so you don't miss out on that.  And that is software developer. Obviously, one of the best careers you can go into. Lots of opportunity here used to be much easier to get into. Now it's getting a little tougher, but still a really good one. I'll still give it a 9.5 out of 10 opportunity score. Yeah, star card. And I'm kind of going to go through the rest of these pretty quickly because I realized this video is going on a little too long. But information security analysts very similar to security analysts, but with more of an emphasis on data. This is another really good one to get into. So I'll put some job opportunities up on the screen right now. You can check them out if you'd like. This one gets a 9 out of 10 opportunity score. Web developer is another really good one. It's kind of the most basic version of software development. Again, a lot harder to get into than it was in the past. So lots of opportunities here. I'll put some of the jobs up on the screens. You can check them out. And I'll give this one a 9 out of 10 opportunity score. Next on the list is a computer system analyst. Another really good one that's focused on the IT infrastructure of a company. So I'll put some job opportunities up on the screen right now. You can check them out if you'd like. This one gets an 8.5 out of 10 opportunity score. Next is going to be data scientist. This is definitely not an entry level job. And this is one of the rare ones where I would recommend for most people to have a degree. Oh man. But it still pays really well. So lots of opportunities here. I'll put some of the jobs up on the screens. You can check them out. And anything data related is going to be super valuable. Because of the fact that it's harder to get into this one, I'll give it an 8.5 out of 10 opportunity score. But if you have the right qualifications, this one is amazing. Next is going to be a database administrator. Another data related career, really good. So I'll go ahead and put up some opportunities on the screen. You can check them out if you'd like. This one gets a 9 out of 10 opportunity score. Next is going to be a computer network architect. This is focused on the architecture of the IT infrastructure. And usually they're going to have a focus on the data side of things as well. So lots of opportunities here. I'll put some of the jobs up on the screens. You can check them out. This is another really good one. I'll give it a 9 out of 10 opportunity score. Also this one tends to be relatively chill. I've known some computer network architects and database architects. And they usually do not work that much. So yeah, really good one to get into. Next is going to be a mobile applications developer. This is also one of the easier types of software development to get into. And I think it's a bit easier to get a job than a web developer. So I'll go ahead and put up some opportunities on the screen. You can check them out if you'd like. This is another really good one. I'll give it a 9.5 out of 10 opportunity score. Next is going to be an artificial intelligence engineer. This is one where you typically are going to need a college degree to get into it. It's also really big brain. This is not like something that you can easily learn on your own. But if you have the skills there's going to be a massive amount of opportunity especially in the next 10 years. And this is just my opinion but I think this is going to be huge. Okay, I'm convinced. So lots of opportunities here. I'll put some of the jobs up on the screen so you can check them out. And yeah, I'll give this one a 9 out of 10 just because it's harder to get into but still a really good one. And then finally a full stack developer. This is someone who understands the front end web development as well as the back end development side of things. And front end is basically what you see.  And then the back end is the more complicated stuff that goes on behind the scenes. And if you have front end skills plus back end skills you're typically deemed to be more valuable to a company because there is of course a lot of interaction between the two. So here are some jobs. I'll put them up on the screen. You can check them out if you'd like. This one is harder to learn than front end development but there's also more job stability and probably more opportunity. So this one I'll give a 9.5 out of 10 opportunity score as well. Now by the way, if you haven't checked it out already I did a video where I did a ton of research on the 17 work from home job companies that are almost always hiring and you can check that out by clicking right here.


through the creaking door into the innocent. You'll have to be very quiet tonight because one of our guests is asleep in the deep. Ha ha ha, poor chap. He was a sailor by trade, an old salt named Peter. I had a corpse in every port, but I'm afraid he went overboard.  There had never been one brand new large alone. On the third day of my vacation, I was sitting on the lakefront dock when I heard my name called. Turned and saw Al Hendricks coming quickly down the hill. Ken, I'm afraid you'll have to interrupt your vacation. Why? You've got to come back to town. Come back to town? This is a very special case. Why? What's so special about this case? Dead in her house at 11 this morning. There doesn't seem to be any visible reason for that. Well, we can't find one. You'll have to find it for us, Ken. Me? Why must it be me? When you get there, you'll understand why. What do you mean, why? Al Hendricks pulled back the sheet. And for the first time, I saw my wife, Ellen, in death. Her face was twisted into a strange smile. And her eyes seemed to stare at me through half-open lids. But somehow the aura of the dead wasn't about her. It was as if she were only asleep. Dr. Vincent and I stayed there for three hours, testing, analyzing, checking back over every bit of evidence which might give us an inkling of the cause of death. And when we were finished, I asked Dr. Vincent to send Al in. Well, Ken, what's the verdict? There is no verdict. What? It doesn't seem possible, Al. I can't believe it. It's true. What are you talking about? Ellen's death. There's absolutely no cause, Al. There's no reason for her to be dead. Now, wait a minute, Ken. You set yourself on the way down from the lake. If somebody dies, there's got to be a reason for it. Some cause that makes them stop living. Yes, that's what I said, but this is different. Death is death. How can this be different from any other? I don't know, but it is. You mean she just stopped living? Only you can't explain it. Oh, that's not what I mean. I have a feeling that Ellen didn't stop living. She didn't stop living at all. Official certificate. The cause of death was listed as unknown. Two days later, Ellen was buried. That night, I sat in the half-dark living room, outside a howling wind slashed at the French windows that led to the lawn. I couldn't sleep. Couldn't get the thought out of my mind. I thought that I should never have allowed them to bury Ellen. I just sat there. The idea is searing deeper and deeper into my mind. And suddenly, one of the French windows was flung open, and the cold wind ripped into the dim-lit room. I come back here. At first, I thought it was just the echoing wind playing tricks. Then I heard it again, stronger. I'm here again. It was her voice. Ellen. You're not afraid, are you, King? She stepped out of the shadows and stood there before me in the yellow light of the lamp. She was dressed just the way she was when they put her in the coffin. The gold bracelet I had given her glistened on her wrist. Why do you look at me that way? It's not you, Ellen. Oh, yeah. It can't be. You're dead. Am I? Really? You were buried this morning. You died two days ago. Don't you remember, Ken?  Ellen didn't stop living. Oh, this is just a dream. You know why I didn't stop living, Ken? It's because you can't make a wish like that come true. What wish? Don't you remember? You said to me, Ellen, I wish you were dead. No, no, Ellen, I always loved you. You didn't. You never did. When Carl was nice to me, you hated us both for it. You thought I was going to Carl, and so you made your wish.  I didn't mean it, Ellen. I swear it was just something I said in anger.  You can see now that I've lived on. This isn't real. You're only in my mind.  No, Ken. Yes, it is, it is.  I'm as real as you are. I'm flesh and blood and bone, the same as you here. I moved back, but she kept coming closer and closer. And then I turned and ran across the room. I saw her follow up to me. I got to the bedroom door at seven o'clock. I turned the key in the lock. I stood there in the dark. My heart hammering a tattoo of fear that shook my old body. My fingers around my throat to hold back the scream that cried silently for release. And then it came. I heard you scream. What the deuce has been going on here? She came back, Ellen. I told you she wasn't dead. Oh, now look. No, I'm not crazy. You've got to believe me. She was here. She tried to get into this room, and that's why I locked myself in. Now you listen to me. The last couple of days have been rough. No, no, wait a minute. I know what I'm talking about. Ellen's come back. I said you listen. Your wife was buried this morning. I was at the funeral with you. She was buried, and it's all over. Had a nightmare, just a nightmare. Things like that happened to all of us. She wasn't here. She couldn't have been. It wasn't a dream, now. What are you talking about? That bracelet. The bracelet was on Ellen when she was buried this morning. She dropped a pearl gray blanket over your time, Ken. She's in there, and I bent down and snapped open the coffin here. Pulled up the lid just as he jumped down beside me. You've got to listen to me now. I can explain everything. I know what happened to Ellen. I'm saying a trick on us. The dead don't rise from that grave. See, in this room. That was a dream. No, she spoke to me. She was alive.  I know it. I can feel it back. She's going to be back soon. Stop talking like that. I can't face her. I just wanted to get some of your things out of this closet. Who want to come toward me? This time I knew she was really dead. The knife in her back told me that Ellen would never return.  We found Ellen's body in that closet. I knew I had to get away from that house forever. I wanted to run out into the night. Some force held me stationary in its grip. The room began to swim crazily. Howdy, hospital. You banked on. Ellen, she was murdered. Now, you've got to take it easy. We won't talk about that now. I have to talk about it. Don't you see, Al? I was right. Ellen had lived on. No, she was already dead. Put that knife in her back.  What I said before still goes. Somebody's playing tricks and sleeping. Then he pulled down the shades and walked out of the room. A little later, the door of my room opened. In the semi-dark, I could see that it was a woman dressed in white. She stood at the foot of my bed. Who are you? Well, I'm your nurse, sir. Here, drink this. My name isn't Ellen. I'm just the nurse. You're Ellen. You've come back again.  Just just, please, drink this. No, no. You're sleeping. No, don't. You'll feel much better after. You've come to take me with you. I know what's in that glass. You can trust me. It won't hurt you. It won't die. Take it away. Take it away. Oh, no, no. She just stood there, looking down at me, that same twisted smile on her face, slid out of the bed. Now, you mustn't get up, sir. You're not well. She came towards me, her hand outstretched, just like the other time. She came closer and closer. Let me help you back. I won't hurt you. I got to the door and opened it. I decided to run down the corridor and something got my heart. I'll be tight on the spot. Now, then go, please. To stay in bed. Now, let me go. I've got to get out of here. They're going back to your room. No, I can't go back there. Don't make me. She's there. What? Ellen, she's coming back again. Now, look. You've got to believe that she's in there waiting for you. No, Ken, it's just your nerves. I was outside the door. Her voice and her face weren't the same, but I knew who she was. I could tell by that smile of hers. She's posing as my nurse. That's how she got in. But that can't be, Ken. You don't have a nurse. She will. It was all in your mind. I think I can make you see that now. What do you mean? You felt responsible for Ellen's death because of that fight you had with her. That's why your imagination ran wild. Oh, that bracelet, her body in the closet. Like I told you, she was dead all the time. Somebody was playing tricks. The man who murdered your wife, we've got a lead on him. What are you talking about? What man? One of your neighbors gave us the tip. 2 o'clock in the morning on that day, your wife was found dead. A man was seen leaving your house. He was tall and wore a black hat and coat. The murderer must have known that you were at Grandview Lake. But it couldn't have been murder. The autopsy would have shown that. We couldn't find any cause for Ellen's death. There's always a cause. We'll find Ellen's murderous somehow. When I left, I thought back over everything he'd told me. Someone was playing tricks, a tall man and a black hat and coat. I kept searching my mind, probing. And then the idea struck, something Ellen had said. And Carl was nice to me. Carl Denson. They wouldn't allow me to leave, but I found a way of getting out of that hospital. And I went to see Dr. Carl Denson. Yes, what is? Hello, Denson. Why, Ken Griswold. I want to talk to you. Yes, of course. Come here, come here. I heard you were in the hospital. I got out of there tonight. The way you say that. Call it escape, if you want to. Look, Griswold, you're not well. That's what you want them to believe, that I am crazy. I don't know what you're talking about. I'm talking about Ellen. You killed her, Denson. What? You murdered my wife. You couldn't have her for yourself, so you killed her. You're mad. I read the report. Ellen died of causes unknown. You killed her. And now I know how you did it.  You know about things like that. There's an artery in the neck, the carotid. If you apply pressure on it the right way, the victim dies. And there's no evidence of murder. You can't bluff me, Griswold.  Then I'm here to choke this wife out of you, like this.   Get out of here. Yes, Denson. I changed my mind.  I told you to get out.  You can't, because I didn't. A man was seen leaving the house on the morning Ellen was murdered. You were that man, Denson. You knew I was up at Grandview Lake. You waited until I was away. You forgot something, Griswold. It couldn't have been me. I'll prove it. You forget. At the same time, you were up at Grandview Lake. I was there, too. I went back in my mind, and I remembered that Carl Denson had been at Grandview Lake while I was there. But I knew Denson was the murderer. He was the man in the black hat and coat. He had found some way to come back to town and kill Ellen, but I had to prove it. I started out to retrace his steps on the night of the murder. The train let me off at the Grandview Lake station at four in the morning. I phoned for the village taxi and ordered the sleepy driver to take me out to the lounge. I don't like to make trips this time of the night, mister. Don't worry. I'll pay you extra for it. Only hurry. I can't go much faster. Trouble with your city folks always hurrying to get nowhere. Reminds me, the fella I drove last week. City fella, too.  Says he's in a hurry. Wait a minute. Yes? You said he got off that same train? Yep. That's what I said. Same train as you. What day was that? Well, let's see. Was it Tuesday? Tuesday? Yes, yes. It was Tuesday that. What did he look like? Very much what I know from that. Tell me, what did he look like? Well, he was a tall fella. Didn't talk much tall. Couldn't see much of his face at the scope car, but nothing about that. Wasn't cold either. Was he wearing a black hat? Nothing, but kissy was. Yeah. Not getting cold. Where did you drive him to? Same place you're going, mister. Grandview Lake Blanche. That proved it. I was right.  Then, when he finished, he returned on the early morning train. I had him now. With just one more step left. When I walked into the lodge, George, the night clerk, was behind the door. Good morning, Dr. Griswold. Hello, Griswold. George. We weren't expecting you, but we have a room. I'm not staying. Oh. George, I need your help. Yes, of course. What is it? It's important. You must remember something. Remember? About Dr. Denson. You know him? Yes, certainly. Well, this happened just one week ago, last Tuesday morning at the same time. You were on duty then? Yes. And you would have seen anyone walk through the lobby here? Yes, I would. Dr. Denson returned to the lodge last Tuesday morning. He was wearing a black hat and coat. He came in here at this same time. You saw him? No. But you must have. I didn't. He came in here. I have proof. The cab driver who brought him here from the station saw him enter the lobby. I didn't see Dr. Denson that morning. You're lying. You did. No, sir. The only person who came in early last Tuesday was you. What? You came in, Dr. Griswold.  Me? That's right, Ken. With you all the time. How? I'll be good, Ken. Don't make me use this gun. How did you hear what he said? Yeah. That means I killed her. I was waiting for you, Ken. I knew you'd come. Now, let you find out for yourself. I don't remember.  You know about those things, but personalities and stuff like that?  But her body and the closet. That was you, too. I followed you out to the cemetery. You thought you were still alive. That's why you put the knife in her back. I'm no expert on those things, Ken, but that's the way it looks to me. Couldn't go back with him, not that way. I ran across the lobby. Stop, Ken. Stop right out the door. I got to the door, and then... burned in my chest. Al turned me over on my back. I'm sorry, Ken. It's all right, Al. This is just the way I wanted it. Al's gone for a doctor. I haven't got much longer. And no, I won't be here when Al comes back. I won't give them any trouble with this one. The cause of death, this one's easy to determine. Wives are bad enough alive, but imagine being hand-picked by a cork. That's the trouble with folks you meet around here. They're dead, but they just... you're thinking of doing away... This is the United States Armed Forces Radio Service, The Voice of Information and Education.


Ni kamburu taza Karibia, karibia, kumkulosa Just a second, just a second So lewa tuna prob smingi sana, we just have a few things And I think time is not on our side as well So we have some Wali sema when you want to speak English On me to the tea in everything Okay So we have some biscuits Sindio Biscuits Biscuits We have biscuits So the concept is Wali, kumkulosa Wali, kumkulosa So we have biscuits, cookies Whatever you want to call them So you place one on your forehead Na usyongi And then you try to move it down On me move down Your face So this is a makeup Siniyongu I know you can adjust But it's fine Nini mumekula mo Than mimi If you get it If you don't get it, forget about it You eat my cookie If you lose, I eat your cookie Nene pita kumusa amtu We live that one alone But Andakupatemi na extra Anza, ladies first 30s What do you think we should do it together See if we can do it together Okay 30s Okay Let me get this What do you call this We need another consequence now That is to easy kula Pili pili Pili pili What do you call it 30s 30s What is that Nishanzakutere mka 30s 30s I am sorry Smartwatch is 30s 30s So Nosteli I don't know what to do I don't know what to do I don't know what to do Nosteli kwekele apu alam Juki dog Isma me nga lamu Nga lamu na nga nga Nga za Simi when you look In 3,2,1 Nga Are you cheated Saaw That was on you This is hard This is hard Because my face is Ayah On to the next one I was 2k Ayah Saaw Apu Yes apu ni betu Ayu jeka chayma Una practice So jia Aapa Between the I hope you mihanda That's kwa say I will email It's this close At least to kulekwa close I think there is a way Ufa ikusonga sana You supposed to use your Sindhiyosasa sinen Waja It's a loss for the both of us So can we eat the Can you zikulekuki Mabuzo sayangu Kwa ni Sayatu jashitu Okay fine This game is just I work Okay let's just Sample some of the comments we have over here Umekula So it is my face Allah That's also any make up It's alright Umekula mo Let's forget it Dominic


The question is that amendment 4580.3, in the name of Douglas Lumsden, which seeks to amend motion 4580, in the name of Tom Arthur on community wealth building, delivering transformation in Scotland's local and regional economies, be agreed. Members should now cast their votes and the vote is now closed. I would have voted no if my polar system wasn't connecting. I would have voted no otherwise. I would have voted no otherwise. The result on the vote on amendment number 4580.3, in the name of Douglas Lumsden, is yes. 31. No. Eighty-seven. The amendment is therefore not agreed. The next question is that amendment 4580.1 in the name of Daniel Johnson, which seeks to amend motion 4580 in the name of Tom Arthur on community wealth building delivering transformation in Scotland's local and regional economies, be agreed? Are we all agreed? Are we all agreed? That is agreed. The next question is that motion 4580 in the name of Tom Arthur on community wealth building delivering transformation in Scotland's local and regional economies, be agreed? Are we all agreed? That is agreed. The fourth question I propose to ask a single question on two parliamentary bureau motions. Does anybody object to the question being put? Nope. Final question is that motions 4615 on approval of SSI and 4616 on parliamentary recess dates be agreed? Are we all agreed? That is agreed. That concludes decision time. There'll be a short suspension before we move to members' business. Short pause before we move to members' business. Could I ask members who are leaving the chamber to do so as quickly and as quietly as possible?


Okay, we might as well get into it. One, two, three, go. My name is Jimmy, his name is Jake, and this is the Weekly Dumb Baseball is happening on the internet. J.M. Gaming, a double, and I'm gonna dance and then I'm up. It's the baseball everyone's talking about. Go check that out, I suppose. How you doing, Jim? Ah-ha-ha-ha-ha. All right, okay. Ain't a lot of ice cream earlier. You think that's gonna affect the show? You think you're gonna have a Jake situation from last week? No, it's not coming out as air. How are you doing? Was good. I think we got to talk about it.  I think we just gotta get into the sports because it's baseball season, Jim. The championship series are underway. The American League won one. Asher's won the first game, Red Sox win the second. Tell them about the offense. That's fair. Tell them about the offense. Everyone brought a piece of wood to the plate. Literally, in figuratively. So that was fun. They're heading back to Boston. Whoa! Love Motley Crow. So that's fun. Lot of hitting. Girls, girls, girls, that's Motley Crow. Lot of hitting, not a lot of pitching. And meanwhile, in Atlanta, where the players play. Braves are up to on the Dodgers. Two walk offs Dodgers. I was thinking on this game too that we just watched. A lot of real bad decisions. It's not the prettiest baseball, but it's been a fun brand of baseball. Fun brand of baseball. Braves are fun. Not Dodgers, game two. Not a lot of good decisions. I was just thinking about it. Very half-hearted. Yeah. Very half-hearted. Felt like the Dodgers thought they had it. They were like, we can win even if we make a couple bad decisions. Enough with the sports. I think the rest of the series will be fun though. What's next? Jim, next is almost a breakdown. And this is sports. Because this is an elephant squashing giant pumpkins. You have this as sports. Sports. Sport. Sport.  The thinking man's game. Yeah, sports. I play sport. Anyway, these elephants are just smashing these squashes. Look at it right up here. Ah! And all I can think is if they can smash a squash like that, my head stands no chance.  Zach's gonna get way too dark with that. It's gonna be my head smashed. My mom hates when Zach kills me in the edit. Anyway, at one point the elephant smashes this really tiny little part of a pumpkin and it's super cute. And then I saw that they were eating the insides of the pumpkin.  Probably tastes so bad. But this is a fun thing. Whoever thought of this knows what fun is. I was reading something. And what do they do with the giant pumpkins after the contest? They want you to feed animals with pumpkins.  Who's they? I have a lot of conversations. A lot of people that are crazy. I think it was an article. You didn't read an article. It's another lie. That was an Uber driver listening to an interview and you heard half of it. Let's go back to sports. More sports, Jake. More sports. Anyone throw anything? Jim, before we get to more sports, how about us looking good today in our Mizanin main shirts? You have the classy. The shirt under looks a little better than the blazer. Me, we're going toe to toe. I've got my Jacktober pearls. Mizanin main.  These are nice shirts. Go back. Gorgeous. All right. Tell me about the more sports. Jim and more sports this weekend. Everyone was talking about it in Rocky Top, Knoxville. We had a big game. Tennessee versus Ole Miss. Lane Kiffin's coming back town. We're throwing stuff on the field. Lane Kiffin gets it with a golf ball. There goes the cheerleader, the band. Chaos. Don't throw stuff on the field. Especially not a golf ball at someone. It's weird. That kid aimed at him.  Man, we're going to need you to leave. Where do you want us to go? Well, walk in front of, you know. I'm drunk in the crowd. Should I throw something at those people wearing the funny looking hats? Every time the answer is yes. Golf ball goes in the tuba. Tuba. Section leader of the low brass. Jim, more importantly, the not sports. We might have, when we do the end of the year awards for the weekly dump. This might be a top not sports option. One of the better not sports we've had in a long time. It's a serious story. Zach, you might not even know about this. A UK bakery got investigated for using illegal sprinkles. Drives me nuts. Get baked. Someone ratted on them. And now they're doomed. Jim, again, British bakery, their sprinkles got called illegal, which none of us can fathom that. And then, as you noted, things get really good. I'll give you some of the highlights from the Facebook post. Sprinkle gate update. It's not good news. We have heard back from trading standards and have been told that we must cease use of our sprinkles with immediate effect. Says, well, this might not seem like a big deal.  A lot of people ask for birthday verses. And raspberry glaze donut cookies are not only our best selling cookies, but they're utterly sensational. So no more birthday verses. No more raspberry glaze donut cookies. The line that gets me is there's a paragraph, paragraph, paragraph. One of the paragraphs is I am extremely passionate about sprinkles. Yeah, we know Hank. Living in the wrong country for being fair. It's in Jim, I know you're a heart strings guy and what he does at the end here. Yep, yep. I also like that it says British sprinkles just aren't the same.  It's a personal thing, Grim. At the end, he calls out the person, he thinks rat it on him. Dan, question mark?   Now I understand if the, if the- It's the other option. You are the employee, employee of the week. Congratulations. Work so hard forgot how to vacation. Are we doing this? Yes. BBD, moon, moon, moon, moon, moon, moon, moon. Here's a picture of BBD's butt. Play of the week, putting in the hours. BBD's lives in a new place just so he can be closer to the office because we're working so damn much. We're debating letting a stranger cook in his kitchen to get us food for tomorrow. Well, BBD will get to eat some of it as well. Yeah. I need some burnish sprinkles. Wouldn't you want the American sprinkles? I've had them. That was the Weekly Dumb. Today's episode of the Weekly Dumb was brought to you by Miz and Mane. Skip the dry cleaner because their dress shirts are machine washable. They provide comfort and flexibility. The feeling of your favorite athletic wear in the style of a dress shirt, lightweight, breathable, and moisture wicking. Jake will wear some on his well-dressed Wednesday. They may have gotten famous for their dress shirts, but Miz and Mane now makes incredibly comfortable flannels, no tuck shirts, performance polos, chinos, and so much more. All in performance fabrics with modern tailoring. And they've got over 30,000 five-star reviews so you know they make a great product. Right now, if you go to Miz and Mane.com and use promo code DUM, you'll receive $35 off any regular price order of 125 or more. That's $35 off when you go to Miz and Mane.com and use promo code DUM. You know, if I do, if I did a game, if I owned a game, not a team, that's just one game. When you play your sport, yes. I think it'd be cool if you gave everyone in the upper deck those little parachute men and everyone through those at the same time. Where have those been? Maybe like an army game? I think we're not kids anymore. Those were like the number one invention of the 90s but I think technology and stuff failed. Kids don't play with those anymore because they kind of sucked. They never worked. You gotta be like four stories up. So that's a good solution.


Men of the police elite squads operation Zenda in Benway state on Monday rescued the wife of the commissioner for lands and survey Mrs Anne O'Nenge. During the rescue operation three kidnappers were killed by the police. Mrs O'Nenge was kidnapped on Saturday. The state governor, Samuel Autumn, confirmed the incident to journalists in Makodi where he called on the federal government to clamp down on the bandits and kidnappers. He expressed concerns over the growing cases of kidnapping and other organized crimes across the country asking the federal government to tackle them heads on.


Alright, hello everyone. My name is David Faw. I work for a company called KDAB. What we do is Qt OpenGL and C++. For instance, I've been doing Qt for 20 years in the KDA project. And one of the things we ended up doing as a company when working on customer code on Linux is we felt the need to have better tools for profiling. So we ended up writing two open source tools, which basically make it easier to profile CPU and memory. So I'm going to present these two tools to you. So they are GPL and available for free.  So there are the two tools are called HipTrack and Hotspot. HipTrack is about memory profiling and Hotspot is about CPU and off-CPU profiling based on Perf. We'll talk about that one next. So even if you don't like the first one, don't run away. The second one is even better. Let's start with HipTrack. So this is about profiling memory allocations. If you think of, you know, my application uses a lot of memory, how can I fix that? If you're lucky enough, you don't delete anything and you can use a leak checker at the end of your program to find out, you know, what memory you have allocated. That is kind of the easy case. There are many, many tools to do leak checking. This is not what this is about. This is more about the case where your application grows and grows in terms of memory over time. It creates many objects. But then when you quit the application, everything gets nicely deleted. And then leak checkers wouldn't find anything. So you need a tool that can tell you you've been allocating memory from this part of the code. And this is where most of the allocations come from. And so you want to see stack traces of where the allocations come from. So that's a tool that, you know, we thought, that should be easy enough to write, right? How hard can it be? We just need to hook into Muller Can Free and record every allocation. Easy, right? So hooking, that's easy. You just write an LD preload library which hooks into Muller Can Free and you get all of the allocations. That's easy. Collecting backtraces. That's a little bit more involved. There are ways to do that. So then you, you know, resolve debug symbols, get the Dwarf information to do that.  And then the next step is to actually collect these backtraces together and present them to the user in a nice way. So that's what we did with Hiptrack. It is comparable to the massive tool of Valgrind except that Valgrind is very, very slow. On the other hand, Hiptrack doesn't have that problem because the code runs as usual. It's only Muller Can Free that have a little bit of overhead. Even better, we can attach to a running process which is, you know, that's easy to do. You just open GDB on the process, force it to load the library and then quit again. Except, of course, this gives kind of a partial view of your application because you're missing all of the allocations that happened before that. So it can be a little bit strange. You have free without a malloc. So that could be a little bit confusing. So in general, you want to run this on the entire program or a benchmark or a unit test that you wrote for that, for that problem. Of course, because we resolve all of the debug symbols to get the stack traces during recording, that generates a lot of data that has to be processed afterwards. So the GUI is a little bit slow when loading traces because there is a lot of data to process. We have ideas of how to improve that in the future. But for now, that's one of the small problems with it. So it's better if you do that on a small application or kind of a test case or a benchmark rather than a very, very large application. Or at least if you do it on a very large application, do it for a short amount of time, not for one hour, that's just impossible. So the tool you can get on GitHub is actually part of the KDE project. So I have two hats, right? The KDE open source project and the KDAB company. So the code is on the KDE project, whereas what we did as KDAB is to provide continuous integration for it and generating an app image so that you can install it without having to compile it at all. So the URL is up there so that you can get it from there. So that's really easy to install because all you have to do is, you know, download, make it executable and run, and it contains all of the required dependencies. Right. So let's have a look at what it looks like. Actually, I'll do that as a demo. That's always more fun, especially when things go wrong. So we have this little application here. I'm a KDE and Qt developers. Obviously, this is going to be a Qt application, and the application works, right? I can run it and take some time, and at the end it says, I found a thousand matches. Now, if I want to run this in HipTrack, all I have to do is HipTrack my application, and then it runs it again, but this time it records all of the memory allocations and the allocations. At the end, it tells me a few stats. You have done, I don't know, a million allocations, and then a lot of them were temporary allocations. What we mean by temporary allocation is if you look at all of these events, all of the malloc and all of the free, if we spot a malloc and a free on the same area of memory next to each other, so there was no other malloc and free in between, this is a temporary allocation. It's an object or some bit of memory that was allocated, used, and destroyed right away. Sometimes you have to, but sometimes you can maybe avoid that. Right, so the nice thing about HipTrack is that it actually tells us what we need to do next. You just copy paste the end of the output, which says you run HipTrack again in analyze mode with this recording file that was just generated, and if I do that, I get this GUI application, which is too big for this monitor. There we are. I don't know if you can see the bottom like this, right? So the first tab is kind of a summary where we can see where the largest memory leaks came from, most of the memory allocations came from, and so on. This is not the most useful view. What you want to do in these kind of tools is to switch to the frame graph. We all love frame graphs. They are a very easy way to see where the biggest offenders are. So basically in this view here, the wider a rectangle is, the most memory was allocated from that piece of code. If I want to look at, so I'll come back to this, but overall if I look at the amount of memory that was consumed by this application over time, well, okay, the graph here is not very interesting because it's very linear, but yeah, the allocations went up and up and up, right? And what we do in the frame graph is to take the peak of that graph. So basically at the point where we used most memory, where did it come from? So that's what the frame graph shows, because right now I'm looking at memory peak. So I can see that at the time where this application was using most memory, the memory came from Q string number over here and some appending over there. And I'll show you the code so that we can relate that to the code. The other thing I'm interested in is if you go back here and the summary as well, it said there is really a large number of temporary allocations. So I want to see where they come from. I can go here and switch the thing I'm looking at to be temporary allocations. And then I can see that all of them, the 10 million of them came from Q string constructor in main. And if I want to see where exactly I can actually go, it will switch to that other time. And I can see that the temporary allocations here come from, and I can even get line numbers somewhere in there if the window was big enough, which is not. Temporary allocations, that's the bottom row. So that actually comes from line 23. Okay. Let's have a look at this code. It's in here. Line 23 is where all of my temporary allocations come from. And I know probably not all of you do Qt, but think of it as STD string, right? Basically the same. What we do on line 23 is we create a string just to compare with it. And that is, of course, temporary object that shows up as allocation and the allocation right away of that object. So that's obviously where all of this temporary allocations come from. We can fix that. There are Qt APIs for that. Right now I could do Qt at in one string. I will rebuild. And now I run hip track again. Temporary allocations zero. That looks good already, right? And even if those numbers here were, you know, mixing up a lot of other things, then I wouldn't see anything. What I can do now is run hip track analyze. It has a diff mode where I can actually do dash D. And then I have my two files, the old recording and the new recording. And now what it will show is the difference between the two. So if I come here, I can see minus 10 million temporary allocations. This is good, right? It's red because it's the biggest number, but it's actually good. I want a minus in there. My new recording has a lot less temporary allocations than the old recording, which also means a lot less allocations at all, right? Not just temporary, but of course the overall number of memory allocations went down. Right. So that's basically it for hip track. I need to move on to hotspot. But as you can see, it makes it very convenient to find memory allocations in your code. So this I showed. It is only available on Linux, but this is a Linux conference, so that's fine. It does not have support for recording on one machine and looking at it on another machine that still needs to be implemented. We could imagine more great features, but at least it's very useful already. All right. Now hotspot. So the other thing we want to do here is profile applications that use too much CPU, run for too long, or even wait for too long. So basically that is something you can do on Linux with Perf, but the problem of Perf is that it was written by canal developers. These are really fine people, but in terms of making user interfaces, that's not really what they do. So what they did is Perf report, which is a common line tool, which we looked into. It's really hard to interpret. We thought we are cute programmers, how about we do a nice GUI for this, which is a lot easier to interpret. So that is called hotspot, and you can find it on GitHub as well. It depends on a large number of dependencies, but again, we provide an app image. You can install it in one click, so that's really easy. So the idea is doing, of course, just a subset of what Perf can do, because Perf can do many, many things. What we want to do is sampling profiling, and of two kinds. The first kind is what is my application doing when it's actually running, when it's on CPU and the threads are calculating stuff? Where do I spend my time? And the other thing that hotspot can do is profiling the off-CPU time. My application is waiting on a mutex, network, file, whatever, and then I want to see that and see what are the biggest offenders in terms of waiting for something. So let me do a demo of that. I will start hotspot somewhere, and then if I start hotspot, it shows me, yeah, good enough. I can do record data. I have some application, oh yeah, let me show you the application first. It's an application that draws a fractal image, and when I resize the window, it is really slow. I'm resizing, and it takes forever to compute the new size, right? So that's the bug report. How do we figure out why is my application slow? The first thing you need to do is a benchmark, so that you can reproduce the results. So we did that in that application with dash B1, so that the application itself provides a benchmark mode where it doesn't do any user interaction. It will simply do one calculation and exit, and that is a benchmark we can use then. Right, so that's what I can do the recording on. I pass the benchmark here. I enable off-CPU profiling so that I actually do both on and off-CPU at the same time. Start recording. Now perf is actually running the application and recording samples, and when it's done, I can view the results, and again, some summary in the first tab we don't really care. Well, there is one thing we always want to look at is how many samples did I get? 10,000, that's good. Sometimes perf messes up, and we get eight samples that is statistically not relevant at all, and you need to rerun or configure perf in a better way. So yes, I have 10,000 samples, which is like 5,000 per second. That's fine. Now I can go to the frame graph, and if I'm looking for cycles, so actual CPU cycles, then I can see where is my application taking time, and I can see, okay, it is taking quite some time in fast norm. I can look at what that thing is doing and whether I can make it faster. It's also spending some time in square and also some time in that first pass method itself, right? There is no calls being made here because that is the code of that file itself. Okay. Now the thing about that program is that it's supposed to be multi-threaded and do all of that in separate threads. So let's have a look at how well it managed to actually run in many threads. So I can use that view at the bottom, which shows me, so the first, the stuff at the top is the CPUs, so I can see the CPUs have been doing stuff, right? I have multiple CPUs running, though it's not orange everywhere, so there is sometimes some CPU don't do anything like CPU one over here. More interesting, I can scroll down and see my threads. So I have the main thread, I have two from Qt, and then I have a whole bunch of threads in my thread pool, and what do I see? Far too many threads, and they keep waiting, right? For most of them, they run a little bit, and then nothing, and then they wait for a long time. And if I want to see what they're waiting for, I can go back to the frame graph and say, show me the off CPU time, which is really the time where a thread is waiting. Sometimes a thread is waiting for a good reason, right? It waits for work to do. In this application, they were supposed to go ahead and crunch numbers. So if I look at what they've been waiting for, ooh, there is this mutex lock in here, that takes 80% of the waiting time. Now I can go into the code, look at what that mutex is actually locking, and figure out, okay, it's far too big a scope, and actually in this example, it can be reduced and so on. There are a number of things we can do to this code. I don't have the time to show that. To make this application run much better, reduce the number of threads, of course. I have eight cores. There should be eight threads, not 20, or I don't know how many. And do the locking in the right way. But that's the whole idea of this, is to be able to see where is my application doing some work and spending time doing it, and where is my application just waiting for things, and what is it waiting for? So mostly on the mutex. Here, it's waiting on a wait condition. That's probably just waiting for work to do. That is probably fine. But you can look into that. In hotspot, obviously, because this is sampling, right? Perference regularly, like, you know, 5,000 times per second and collects backtraces. So the whole idea is that if you do that often enough, the data you're looking at is what's relevant. It's not a problem that maybe I missed a little bit of code somewhere. It will not show in any backtrace. If it's that small, then it doesn't matter. What matters is what actually takes time. So statistically, I want to see what's over there. But because it's sampling, there is no way to do diffing in this case. Because two runs of the same code would still be a little bit different. So we can't do a diff because we would get noise in there. It would be nice, but it's just not possible. And again, here, if I didn't know the source code, I could go to FirstPass Mandelbrot, do color coli, and over here, I could see the actual lines of code. So I can see where most of the waiting comes from. I can order on of CPU time, including colors. So this one, it usually works better on a bigger screen. So now I sort it here, and I would go to this line here, one, two, four. And if I open that, somehow, it's supposed to run. It must have done it here. Okay. The low of demos. Normally, you can jump to the line here. Something's broken. Oh, well. Then you can see the line of code, and that's where the locking happens, obviously. Okay. Right. So that's what I had on hotspot. So basically, what I would like you to do is download, compile, or use the app image for Hiptrack and hotspot. If all of this was way above your head, you can buy a training from us. So the tool is free, but of course we have to eat. So what we do is sell trainings and consulting. And yeah, if you have any questions that don't fit here, this is my email, and you can email me. But yeah, for now, any questions? Hi, thanks for your talk. I have a question about cross tools. Do you have a plan to add, you say what first tool was not able to be able to run in cross environment, for example, we collected some data in on some small embedded device and penalized it on our regular machine. Do you have any plans to implement this cross functionality? Do you know if it will be implemented or it won't? Actually, you make me realize that what I said was a bit of a simplification. If you have an embedded device, you can use Hiptrack on it as long as you have the debug symbols on the device, which I know is a problem in some cases, but there are cases where you can do that, right? If you have a large enough embedded device, you can copy the debug symbols onto the device and then Hiptrack will work. What doesn't work is to try and do like you can do with Perf where you run it on the embedded device without debug symbols, you get a trace that is basically just instruction addresses, but not resolved to actual function names. So that trace, you then move away to a developer machine and there you can resolve with the debug symbols and get stack traces. That is something that Perf supports out of the box. So obviously for hotspots, it works, right? But it's not something that's done by Hiptrack. But if you have room enough to have the debug symbols, then you're fine. You can then move the actual recording onto the developer machine and use the GUI to look at it. Any other questions? You get to run over there. I think it's better for the recording if we have it on the mic. Can you do it pretty much the same thing in the batch mode? Like for instance, if you run something completely non-interactive, we get some XML file and download it for the later analysis. I'm sorry, the sound isn't very good. I didn't hear all of it. Did you say some XML file? Yeah. Can you do it in the batch mode in non-interactive completely? So for instance, you run it somewhere on the cluster, your application, you get some output in XML and then download it for the analysis. Yes. To make it easy, I showed you recording from hotspot, but actually what I do most of the time is to record from the command line. You can do perf record and then the same command line and then, well, yeah, you need, that's why it's annoying and that's why you like GUI. You need to ask for backtraces to be in there with call graph dwarf and then you can do the recording on the command line, which means you can actually script this and automate it as much as you want. That part is kind of the standard perf part. You can do perf record just like you would do normally. What hotspot provides is the GUI for it. At least for the cycles and similar recording, for the on CPU recording, that's all there is to it. For the off CPU filing, that is a little bit more tricky. Hotspot does use perf for that, but there isn't a single event for this in perf. So there is a bit of post-processing happening in hotspots to be able to understand this. So actually, it is possible to do that on the command line. I have an alias for this. I have a perf of CPU record, but if you look at what it says, it's a whole bunch of things that you actually need to put in there. What you can do is you use hotspots initially once on your machine and then you go to the summary tab and you check out the actual command that it has run, which is here, and that you can copy, paste, and run again in the future outside of the GUI. Okay. Yeah, at the back over there. Can you bring the mic here? Sure. Thanks. So for hotspot, is there any limitation that would prevent it from working for data directly sampled from the kernel instead of user space programs? Or can I just feed my perf recordings for kernel events into that GUI and it will give me something useful? Oh yeah. As long as you can do a perf recording, it will work in there. I have proof. I see kernel symbols at the top of there. It's all the same to perf, so it's all the same to hotspot. Okay, that's great. And all you have to do, because that's the little missing link I didn't show, if you start hotspot in a directory where there is a perf.data file as recorded by perf, then hotspot will just pick it up. And the thing it does on startup is to load the file from the current directory. So that's it, right? Now it's showing the recording I just did. Does this work for all architectures? Intel, ARM, PowerPC, bibs? If perf works, hotspot works, right? Because it's just a GUI. So as far as I know, perf does work on all of the architecture. It is part of the Linux kernel, so it is as possible as the Linux kernel. Okay, thanks. And for those of you who want a bit more advanced usage, when you record with perf, you can actually choose which events you're interested in. I've been showing only cycles, but it could be anything else, and it will actually show up here in the dropbox here. If I do perf record with my own alias, that one enables a few more things. So let me do that. All right. I have enabled more like instructions and memory load or cache misses and these kind of things. So it's loading all of that. We need to profile this thing. Right. And now I can see instructions and cache misses and stores because this is what I've recorded. So hotspot will pick up whatever you have chosen to record in the perf.data file. Any other questions? Yeah. With a hiptrack tool, what happens if the application is quit or killed before the report is written? Do you mean for perf or hiptrack? Hiptracker. With hiptrack. Yeah, the writing will happen at the end. I'm wondering if we have, you know, all we need is signal handler to kind of catch the termination of the application. I'm not sure if we have that. Let's try. I think you said it attaches to the program? It can attach to the program. It has both modes, just like gdb. What I'm doing here is to just start the application in hiptrack, which basically sets ld preload to a .so file. That's kind of the easy setup if you can do ld preload. It also has support for attaching to a running app with dash p and the pid. But it's kind of two different modes, right? So I think if you can attach, you can detach as well. But this one runs too fast now. I can't quit it before. Okay, let's do something much bigger. Yeah, I think that worked. Yeah, it works. I did control C to just, you know, kill it. It's not exactly as if it died, but close enough and the signal handler cut it and output the file so that works. Because I think that's an important feature for embedded systems. Many of them are developed to be safe when switched off. And so there is no effort put in a clear shutdown. Right. That is true. Sometimes you just can't quit the application, right?  And you don't spend any effort on a real clean shutdown. And that's the point where many of the memory heap trackers fail. That is true. That is true. That's another advantage of doing it this way. So yeah, you can just interrupt the app or kill it and then it will catch that. I guess I can do the same with the kill dash nine and then maybe not all of them because I might have a few lagging around. But yeah, let's kill it. And then, yeah, there you go. It did say I just generated a file here and then I can open the file.  I have a question. If track is like, it's like what a respect warground, what does the limitation respect massive or their memory leak profiler? The limitations over massive, the reason massive is really slow, right? But probably it's able to detect leak with kernel memory or something like that. Kernel memory. Oh. Track low level location that track cannot. As far as I know, massive hooks into model can free using val grain, which gives you the same result as hip track, except much slower. If you're interested in kernel memory, then of course you need to go with, you know, lower level tools like peripheral TTNG, which can look at these things. But that is kind of a different level. I realize I may be talking to the wrong audience, right? These are tools we made for application developers and here there are lots of kernel developers. So it's good to figure out that Perf can be used with kernel tracing. But in terms of hip track, that is meant to be application applications, not anything lower level than that. So just a last question. Is it track? Track directed a look page, main map or a look page she's called to kernel or is it like a per other library that look to malloc call something like that? It is a dynamically loadable library that hooks into model can free. So I don't think it hooks into M map because from an application developer point of view, M map does not advocate memory. I know it kind of does, but right? It's not the same kind of memory. Okay, thank you. But that could be added if we wanted to, right? All right, thanks everyone. Have a nice conference.