So the girlfriend of Bobby Burns, Jordan Lee. She has her own YouTube channel. Don't know if you knew about that. But anyway, she just released a video called The Truth About Anxiety. But how real were her facts? What is up, everybody? This is Chris from the Rewired Soul, where we talk about the problem, but focus on the solution. And if you are new to my channel, my channel is all about mental health.  But I also pull different things from the news or social media or YouTube or movies or TVs and talk about how it might be able to help you out with your mental health. So if you're into that kind of stuff, be sure to subscribe. Ring that little notification bell. I have over 400 mental health videos on here. I'm always making content. You don't want to miss any. So I just hit 10,000 subscribers and I just did a little live stream. Thank you. I love all of you so much. And in my live stream, I talked about like I had so many reasons why I started this channel, but I still struggle like anybody else does with like second guessing myself. Like one of the reasons I started this channel was to kind of call people out but not in a negative way like when we're talking about mental health and we're talking about the stigma, we're talking about awareness. There's a lot of people will where even though their motives are good, they might be perpetuating the stigma of mental illness and things like that without even knowing it. So I talk about how like I think most of you who know me by now, you know that I'm well intentioned. You know that I come from a good place. You know that I'm not doing anything malicious while I might make these videos to get new viewers and get views and all that kind of stuff. Like I don't try to be malicious in any way. So this video, when I talk about Jordan, like I want to start out by saying like I'm truly grateful that she's using her platform for this like she, you know, she's the girlfriend of Bobby Burns and they know Shane Dawson. And Shane recently did a video with her, got a million views. So she's almost at like 40,000 subscribers. And I really appreciate the fact that with her new following, one of her very first videos since she kind of, you know, got bigger was about mental illness. Like I really appreciate that. The more people talking about this thing, amazing. But there's a few things in the video that I just want to kind of point out and maybe she'll see this, maybe she won't. But at the end of the day, you're the one watching this. I want you to kind of learn from it because you might be doing some of these things and you don't even realize it. All right. But anyways, I will link her video down in the description below. So you can check it out and give me your thoughts and all that kind of good stuff. So the first thing that I'll talk about with her video is like I was actually wrong. I was actually wrong. So in the video, Jordan talks about different statistics for anxiety. And she says like she's done a lot of research and, you know, the most recent studies she found were from like the early 2000s. I'm like texting my girlfriend. I'm like, there's no way that's correct. I'm like, there is absolutely no way that that is correct. I started Googling it and I saw more recent studies, but they weren't recent studies. I was tricked by Google. It was actually I wasn't really tricked, but they were posted in 2018, 2017 about anxiety statistics. But they were actually pulling data from the early 2000s studies. So like that's really interesting and really fascinating to me. Like, why are we not keeping this data? Like, why are we not keeping this data up to date? I know there's a lot of stuff there. They're keeping track of like addiction statistics and stuff. But we really need to start focusing on mental health. How many people are struggling with depression? How many people are struggling with anxiety and PTSD and all these other things, especially because those are some of the main reasons people turn to drugs and alcohol. So that's really interesting to me that they haven't really done a thorough study in many, many years. Like it's been over 10 years since the United States has done like an in-depth study on how many people are struggling with anxiety. All right. But anyways, the next thing that I want to point out from her video is this. And I called her boyfriend out on this. Like, people need to be more accountable. They need to be more accountable. So the other day, I don't even remember how I stumbled across Jordan's channel. But like, she had a trailer for anxiety and something that I liked that she did was she, she took videos from her audience and they talk about their experiences with anxiety. That was awesome. But at the end of it, it says, coming tomorrow. Now, when I saw the video, it had already been up for four days and this new video wasn't up. So I'm like, why did you put tomorrow if you're not going to post a video tomorrow? Like, I talk about this in a video, I'll link up there about YouTubers being role models and stuff like you got to do what you say you're going to do. Now, Jordan did put in this video why she didn't upload it.  Here's a little clip of why she didn't post the video. I posted that trailer for the video you're watching right now about a week ago, and it said that the video is going to be coming out the next day. And I just wanted to let you guys know why it didn't come out the next day. Ironically, or I guess maybe not ironically, I got super anxious this week. There was a lot of stuff going on and there was a stuff I'm not going to talk about because that's not the point of what I'm doing right now. All right, understandable. Anxiety, it's a mother. It'll come out of nowhere. It can be debilitating. It can make it so you don't put stuff out. But here's the thing, this is for all of you out there. All of you, if you struggle with anxiety, there's a few things, OK, one of them is if like, I don't know Jordan's situation, but if things are coming up and fueling your anxiety, like, do not give yourself a strict deadline. Like Jordan doesn't work for anybody. She makes YouTube videos like nobody said you have to have this video out. So don't say I'm going to release it tomorrow. Like just don't do that. Like don't put that additional pressure because one of the things about anxiety is we put ourselves into this anxiety loop. So my guess is Jordan had anxiety, so she didn't finish editing her video. And then because she was late with her video, she then added more anxiety to herself. So like something she could have easily done at the end of that video rather than saying posted tomorrow, she could have said coming soon. That is it. Now, the other thing that I'll mention is something my girlfriend actually brought up. Like, don't say you're posting something tomorrow unless it's already done. Unless it's already done, like, don't say that because YouTube has a scheduling thing. You can put that right there. But if you're not even done with it yet, like, don't say when it's coming out. Like, don't hold yourself to these strict deadlines if you have the ability, right, to not post it on that day. The reason I say that is because some of you watching this, like, you do have strict deadlines with work and things like that. But for somebody like a YouTuber, like, don't do that to yourself. Like, I haven't talked about it much on this channel, but I post almost daily, OK? I've been on the platform for a little over a year. I have over 400 videos. So if you do the math, I've been posting pretty much daily since I started this channel. Now, I have never told all of you that I will post daily because here's the reason why I'm not going to hold myself to that strict schedule. What if I get sick? What if my anxiety acts up? What if I'm just not motivated to make a video and sometimes that's happened and there's just not a video? So I have never promised you guys anything. So I don't have to deal with the anxiety of living up to this expectation that I placed on myself. So I hope this is a lesson to all of you. Don't give yourself a deadline like that unless you absolutely have to. So the last thing I'm going to point out about Jordan's video, and this is one of the reasons I decided to make this video. This is my biggest gripe with it. And like I said, this isn't malicious. I know Jordan was well intentioned, but this part of the video is one of the reasons why there's such a stigma around mental illness. And I talk about it in my channel trailer, where I say you're not mentally ill. So basically, if you haven't watched Jordan's video, what she talks about is before she made this video, she took some polls on her Instagram. OK, so the first poll that she took asked how many people suffer from anxiety? OK, and like I think about 9000 people did it. You can see on the graphic right here. How many people say, yes, I do suffer from anxiety and how many people said, no, nothing wrong with that. But the first thing I asked myself is, is this self reported? Like are these people saying it even though they've never been diagnosed? And the second question is the one that made me want to make this video because the second question is, would you call it a disorder? And most of the people said, yes, like you can't do that. You cannot diagnose yourself with an anxiety disorder. You can't. You can't do that. And like, here's the thing, like how many people? This has been like a running joke on the Internet since WebMD. Came out like it's a running joke. Like people who go online and self diagnose themselves. That's not how it works. We have mental health professionals who are there to diagnose you with mental health disorders. Like you can't just put a poll and say, would you call it a disorder? Like what? Like that'd be like me saying, like I have a flu, but I'm going to go ahead and call it a disease. Like you just you can't do that. And that's something that perpetuates this stigma because everybody out there is like, hmm, I've been worried a few times. So yeah, I guess I have an anxiety disorder. Yes, like, please, please, please don't do that. Like you've got to get diagnosed by a professional. Her next question brings a little bit more light to this. Her last question says, have you seen a professional about this? Right. Two thousand seven hundred and eighty eight people said no. OK. And two thousand thirty five said yes. So of the of the second question, two thousand thirty five people have gone to a professional, whether or not they were diagnosed. I don't know, but an overwhelming majority of them, seven hundred more people, almost eight hundred more people said, no, I haven't seen a professional. So that means in the second question of would you call it a disorder? And all those people who said yes, they haven't even seen a professional.  But like I said, it perpetuates the stigma because what it does is it dilutes, it dilutes what mental illness really is. And like that is just terrible for people who are actually struggling with it. Like I'm not saying all the people who said yes, don't have it. But if you haven't been diagnosed, like please don't run around saying that you have a disorder, because what happens is is when somebody let's just let's just say this scenario. One of your friends comes up to me, comes up to you and says, my anxiety is really bad today. My PTSD, my anxiety is really bad today. And you say, yeah, I have an anxiety disorder too. Like I have to do a presentation at work and I'm like, I'm pretty nervous about it. Like, like think about how that person feels in that moment. Like you are basically trivializing this legitimate illness that they have. So that's the reason why I'm so passionate about it.  But like if you're going to talk about mental health, like you've got to be educated in this stuff and understand what is perpetuating the stigma. Like when I talk about mental health advocacy, like I got to talk about this stuff. And unfortunately, I got to call people out on some of these things because it's one of the reasons that people don't really understand mental illness is you've got a bunch of people running around with these self diagnoses going on. You know what I'm saying? But again, in this video, by saying like I appreciate what Jordan's doing. I do think all of you should check it out because she does have some very good information in there. She talks about various forms of anxiety. She talks about things that can help with anxiety. She does do a Q&A at the end. Some of her answers I'm kind of iffy about, but like she did a pretty good job. But anyways, go check it out. If you're into her content, feel free to subscribe to her channel and come on back. Come on back to this video. Let me know down in the comments below. If you struggle with a diagnosed anxiety disorder, what do you think about her video? All right, but that's all I got for you today. So if you like this video, please give it a thumbs up. If you're new here, I'm always making videos to help you out with your mental health. Make sure you subscribe. Ring that notification bell and a huge, huge, huge thank you to everybody supporting the channel over on Patreon. If you would like to help support the channel, go on over. Check that little Patreon link and help a brother out. All right, but thanks again so much for watching. I love all of you and I'll see you next time.


How narcissistic parents destroy their child Some children may grow without the narcissistic parent having too much effect on them It depends on how much influence and control the narcissist had on the child It tends to affect the scapegoat child and the golden child the most The golden child is regarded by the narcissistic parent as exceptional in some way They're expected to be extraordinary at everything Not make mistakes and be perfect While the scapegoat child is blamed and shamed for all of the issues that arise These roles can change from time to time depending on the narcissistic parents emotional state So not every child of the narcissistic parent is raised the same Even though they may have been raised in the same home and Some children may be more susceptible to abuse and manipulation They may be more open to suggestion They may be more sensitive to what they see and hear And to what they experience from the narcissistic parent a child is like a sponge They don't have much knowledge or experience of their own So they're constantly learning and observing They're constantly absorbing information from the people around them And they imitate what they see other people do They follow other people as a pattern model an example Because that is how they learn But unfortunately when they're being raised by a narcissistic parent they're experiencing the wrong things They're learning the wrong things Because narcissists have difficulty managing internal and external stressful situations And they have patterns and behaviors That they fall back on to try to deal with it They have coping and defense mechanisms that they get using around their child, which the child is observing They're witnessing these rapid and unpredictable situations Which causes them rest and instability in the child They no longer feel safe or secure Because they feel like they're constantly at risk of danger or harm so they're constantly in fight-or-flight mode They're constantly on edge Waiting for the next shoe to drop and they're trying to find some form of comfort and security So that they can feel like they're safe and in control Which they find by imitating the narcissistic parent because at this point They may not have even developed their own personality And they may not have any independence from the parents So the parent is causing the child to seem less important than they actually are and The child is constantly under the parents control While the parent is establishing these negative attitudes in the child So the child is learning this at a young age from the narcissistic parent It's already being fixed firmly and deeply into their minds. If the child is fortunate They may find other sources of influence Who may be more deserving of their respect and approval While most children are likely to imitate the parent Which means that they will take on the characteristics of the parent So they will become just like them These traits will be passed down and it's inevitable It can't be avoided or prevented unless the child is fortunate enough to be exposed to something outside of that environment But other than that If the child is under a narcissistic parents custody They are going to be influenced by that and those teachings are going to be passed down to the child Which will reduce the chances of the child learning the correct coping mechanisms and behaviors Because narcissists don't have boundaries They don't have any conceptual limits between themselves and other people. They don't know where they end and other people begin They don't know what's theirs or what's not So there's no physical comfort zone because everything is a meshed Which is exactly how narcissists like it to be Because they have an inability to regulate their own emotions So they can't survive emotionally if there are boundaries In their minds boundaries are just something that they impose on you so that they can control you and subject you to emotional harm But they don't believe that they should have to limit or restrict themselves because they lack discipline and self-control And if they're addicted to people as their sources of supply, they need people to regulate their emotions That is their main priority It comes before anything else So the child won't receive any appropriate guidance They won't receive the correct advice or information to resolve any problems or difficulties So instead the child is already preordained to have an unfortunate and inescapable outcome And when they grow up they may engage in behaviors and activities that have the opposite of their desired effect Things that are contrary to intuition or common sense and expectation Things that impair their own progression Because they have these firmly fixed habits beliefs and attitudes that are difficult to change Because they were establishing childhood. So it's all they've ever known They've never known anything different It's the result of the effect of everything that they experienced as a child Because they were raised in a dysfunctional environment every day for years So it's a very difficult thing for them to change Which means that when they grow up It will still have an effect on them And it will make it difficult for them to progress It will put them at a disadvantage And it may even result in them developing a mental illness or a personality disorder Which may even be irreversible It may not be possible for them to change it And the influence and effects of this disorder may spread widely throughout other groups of people It's like an infectious disease and for many of them there is no cure There is no possible way to relieve their symptoms Because there are millions of people who are being affected by it If you were exposed to a narcissist as a child It will leave some damaging effects on you It's not just going to resolve itself It's not going to go away on its own Because it's persistent and pervasive. It's designed to spread and keep going Thank you for watching If you found this video helpful, please give it a thumbs up Share your thoughts in the comment section Hit the subscribe button to receive the notifications If you would like to support the channel, you can donate at payble.me slash nark survivor You can book a one-on-one with me on my website. It's narksurvivor.co.uk Thank you for watching and I'll talk to you soon


The search to find two missing Red Lake fishermen continues. Dive teams have now searched underwater an area of approximately 30,000 square feet of Red Lake with no success. On November 6th, the Red Lake fisheries boat with three people on it capsized.  Dive teams from Northwestern Regional Water Rescue, Stutsman County and Water Valley Rescue spent two days this week deploying two ROVs under the water in search of the two fishermen. The teams consisting of 25 searchers traveled from great distances to assist Red Lake in hopes of recovering the fishermen. But poor weather conditions along with thin and unstable ice prevented the searchers from covering all areas identified in the search grid. The dive teams have shared their willingness to return to Red Lake when operations can take place on ice depths capable of holding heavier equipment. Red Lake and Leech Lake conservation officers will continue to search new areas possessing stabilized, not covered by the ROVs and will operate with a more scaled down search party. Eventually the plan is to remobilize into a full strength search group once the ice reaches a safe point where they can successfully perform cold weather dives and deploy additional sonar equipment. If you've enjoyed this segment of Lakeland News, please consider making a tax deductible contribution to Lakeland Public Television.


What is going on guys? It's your boy DPJ here today with another Destiny video and in today's video we have some good news for all us Destiny PvE players and lovers. The latest weekly update has dropped and they mention new things coming real soon. The full update will be linked in the video description if you guys want to read through all you can. Now reading straight from the update here is what they state worth mentioning. Prior to the holiday break we mentioned a second larger update slated for spring. That content release will feature a significant light increase, a bunch of new gear to earn and equip and new challenges for PvE players seeking more fun experiences and replayability. Now as great as that sounds it gets even better as they go on to say this in the weekly update. Beyond that the team is focused on delivering a large expansion later this year and a full Destiny sequel in 2017. To be honest this news to me needed to come. It might even be a little late for a few players but for me it's certainly great news that truly was needed. So we are basically getting what I believe with the next event or update or even update for an event which will come in spring.  They mention a significant light level increase which is epic and something that is needed. They also mention new gear meaning weapons and armor obviously to increase that light score with the addition of new PvE experiences which will offer that replayability which all us PvE players seek so desperately with Destiny at the moment which we are not getting. That in itself is amazing news and any new info that drops on this new update or event I will be sure to keep you guys posted on my channel. And to be honest the news from the update got even better from there. They mention that the team at Bungie is working on a new expansion aka a new DLC. Now this is truly amazing news and I said it in a video not long ago when we found out about Destiny 2 being delayed. I stated that if it had been delayed and the rumors were true a new expansion was indeed needed to keep us tied over until the release of Destiny 2. I'm amazed to see that this is the way they are going and super excited on any future news that comes.  There was just nothing to do for me at the moment but with this news it keeps my hopes up that eventually we will have reason to play Destiny again. I'm super excited to find out all the new shit on this that I can and we'll be sure to keep you guys posted on any new info I find. But guys tell me your opinion on this down below in that comment section. Do you think it's a little too late or are you excited by the news? Let me know down below. Hope you guys enjoyed the video. Do drop a like. I do appreciate the support. Subscribe for that Destiny and I'll catch you on the next one. Peace out until next time. Peace!


Okay. Welcome everyone to ELC 2022 and thank you for coming to this talk. Today I'll be talking about V4L to M2M framework and how you can use this to write your driver if you have a video processing IP. Let's start off with what is V4L to M2M, right? So it's a driver framework for memory-to-memory devices. So memory-to-memory devices are those that take data from memory, they do some processing in hardware, and then they write out the process data back into memory. So this is slightly different from the normal traditional V4L to devices which are either capture or output. Typically a V4L to M2M device would have both output and capture node. So think of that, right? And another additional thing that V4L to M2M does is that it has support for multiple contexts. So you can have multiple applications or even an application having multiple contexts and they could all share the same underlying hardware underneath. So this is technically possible even for capture and output devices, but as such the framework doesn't directly support it but the drivers can do it themselves. A few images showing what I just described. M2M meaning like you have some data in DDR, you send, read it. The M2M device reads it, does some processing with it, and then writes out the output to another piece of memory in the DDR. And how that differs from traditional V4L to output devices, you typically read the data and then send it out to an output device hardware. And if it was a capture device, your output hardware would generate some frames and then that would be written back into memory, right? Another thing to note here is this can be a bit confusing that the terminology of V4L to uses output and capture and output typically might look like input and capture might seem like output. So these terms might get interchangeable in this presentation and all across V4L to documentation as well. And here this is the M2M device which does both, you know, it has an output as well as a capture. So let's take a look at a typical V4L to application workflow. So you'd have, you know, you have the application layer, we have the V4L to kernel API layer and a driver typically interacts with, if it's a traditional V4L to it, it interacts with the V4L to core and the VB to core. VB to is the video buffer to and it is the buffer manager for V4L to. And I'm not going to full details, but a very brief explanation on this. So what would happen is this typically a setup stage where you'd set up formats for your device. You'll allocate some buffers and then you'll cause some sort of a state change. It begins streaming, right? And that's when the hardware starts producing data or if it's an output device, software provides data to the hardware which then goes out to the output device. And then once that streaming state begins, then you probably have already queued some buffers into the stack beforehand. And then as and when data is available, you dequeue the buffer back from the kernel to the application. And then that process keeps continuing as long as you are streaming. So that's the typical workflow for any V4L to whether output or capture. In M2M, you just do that twice. So you'd have one for an output, there'd be an output queue as well as capture queue. And you keep cycling those buffers. So there's output buffers going to the output queue and capture buffers to the capture queue. And there's an additional core component that you deal with, which is the V4L to M2M core. So driver not only interacts with V4L to core, VB to core, but also the V4L to M2M core, which is basically a set of helpers that let you do all of this easily. So this slide shows the overall architecture of the V4L to M2M architecture. So I mentioned earlier it's multi-context. So what we mean by multi-context is that and the way multi-context is implemented is very simple. Every time you open the file descriptor, you get a context. And so that's something to take care of sometimes as application developers, you'll open a file multiple times, but you've got to remember with M2M, you're going to get a new context if you do so. And so that basically allows multiple applications to open multiple contexts or even a single application to open multiple contexts. And each context can be thought of as a combination of a different job for that particular hardware, a different set of output and capture buffers. So the way it works here is the application does maintain a set of buffers that it allocates with the help of the driver. It'll maintain it around in its application space. And at some point when it's ready, it's done all the format negotiations, it would push those buffers to the kernel, through the kernel API. And VB2 is the component that receives it. So now once VB2 has these buffers, it's going to start making calls into the driver to queue those buffers. So those buffers are now intercepted by helper function in V4L to M2M. And those queues move into something known as a ready queue, which is shown here in this purple box. And then each context has its ready queue and there's a ready queue for both output buffers as well as capture buffers. And then from here, there is an evaluation that is done by the V4L to M2M framework, which determines the eligibility for running. So typically for a very simplistic device, you need at least one output buffer and one capture buffer to complete the job. But that's not necessarily true. There are some codecs, the hardware that might take two input buffers and produce one output buffer or vice versa. So that eligibility is determined via driver callback. And when that eligibility is met, you know, that context makes its way into a single job queue. And then the job queue, once it enters the job queue, then the framework issues this context one at a time to the driver. And the driver will take out the job from it, remove all the buffers, give it to hardware, do all the processing. And once it's done, it calls a bunch of finished calls, which then go back to VB2 and then also takes out the context from this queue. And then it's then ready to pick up the next context in that queue. So this is a lot of information that I've put in here. But to better explain this, I have an example. So I created an example, M2M scalar device. This is a good example of a video processing IP. So it's a video scaler. So you can scale up or scale down, either one of them. And it is a virtual device. And it's built with KEMU. So it's emulated using KEMU. The actual core logic for it is an open source project on its STB image resize library. And this effort here uses Yocto Linux kernel 5.15. And it also builds a device driver for this virtual device. And finally, there's also going to be an application which uses lib camera C++ library, which has really good M2M helpers. And then we'll demonstrate a simple downscaling example why this process. So let's start off with the actual M2M device. Every hardware has a data sheet. And there's a data sheet here as well. So that's for the virtual device. It is virtual with respect to KEMU, but to the driver it looks real. So it has a register map. It has an interrupt. It also can do DMA. So that's what this data sheet is explaining. So the way you configure it is, you know, there's a couple of input and output configuration registers. That's where you would go and program the input width, height, stride, output width, height, and stride. And then there are two DMA registers. One is for the input buffer itself. So this basically signals the, tells the hardware where to go and read the input buffer from the actual physical address. And the output buffer DMA address tells the hardware where to go and write the finished output too. So that's the output buffer DMA address. And then there's one register like at offset 18, which is for control and status. So, and there's a programming model described here. So typically what you do is you reset the IP and you do all this configuration beforehand, right? And set up all the weights and heights and everything you need. And then you basically toggle that start bit. That would cause the device to start doing the processing. So in KMO, what happens is it takes it and gives the job to a thread that's STB, which calls STB and gets the image scaling done. And then after which it will be soon interrupt. And then the interrupt status bits are also inside that same register. So you, and while the KMO device model is doing all of its job, it will keep updating the status. When it's completely done, an interrupt would be issued. And it's either going to be done or done with error. And you want it to be done. That means the job is successful and you can pass it back to the application. Now let's take a look at the device driver that's been built for this device. So on the right side, I have the device tree. So like I said, there's a single IRQ line. There is a register resource range. It says 1,000 here, but we do not have 1,000. That's just a random number. Don't go into it too much. And this is a compatible string, which says this is a virtual device and the type is a M2M scalar. And on the left side, we have the platform, we have a platform driver built for this. So that's going to use the virtual M2M scalar compatible string as well. And it'll have a probe and a remove method. Let's look further into the driver. So in the probe method, one thing you do is you allocate a device private structure. So that's shown over there. You allocate it out of kernel memory. You get the platform resources for the IOMM, the MMIO. You get that in here. Then in this driver, we're also using RegMaps as a nice, because RegMaps is a very new and great API. We use that to program the hardware. It makes it very simpler. It particularly helps with those bit fields that we have, you know, single register that has 16 bits of width and height. So with Reg, Reg feels that that becomes very, very easy to read. And then we also get acquired the IRQ line and install handler here. So in this particular case, a threaded handler has been has been installed. This is because we didn't want to use another deferred function in the IRQ. And for this particular use case, a threaded IRQ handler is good. Then the remaining part of the probe function, we do have to call V4L2 device register. And then we set up the driver private data to both the video device as well as the platform device. And then there's a call to V4L2 M2M to which we give the M2M ops. We'll review that in the next slide. We also have to call video device register. And at the end, we also enable interrupts because this driver requires interrupts for it to function. We cannot do polling over here. It's not possible. Continuing with the probe method, we also have a media controller, what do you say, registration here. So media controller is supported by V4L M2M. And as far as my knowledge goes, it's mostly for the purposes of implementing media request API. But I think I don't want to go into media request API. That's out of scope for this presentation. But for those reasons, there is a media controller support. There may be more, but just I'm not aware of what the other reasons might be. And then let's go through the other ops. There are file ops because the driver must be aware of when application is opening and releasing the device node so that it can create a context. Rest of the calls like poll, unlock, type, tell, and map are all pointing to helper functions. We do have a scalar video dev over here. This is a video device data structure. And here we set up the caps and also a pointer to all the ioptil ops. And this is the core ops, like the main, the most important ops for this driver. There are actually three ops here. Only one has been implemented, which is the device run. There is another op to cancel or abort. Sorry, it's called abort. And the third one is called job ready, which is what I was mentioning earlier, that some hardware will require more than one input buffer and output and capture buffer to do the job. So in that case, if that is true for your hardware, you must implement the device ready callback. And then media controller callbacks, ops are just pointers to some helper functions. And these are needed for the request API, like I mentioned earlier. Let's look at the fops open. So this is where the context actually gets created. So every time an application opens it, you create a context and you store it into the file handle. That's what is shown here. So driver is very aware of this process, but it just makes use of the V4L2M2M helpers to help it, you know, make it a lot easier. And there's an important step here, which is the M2M context in it, to which you pass the Q in it data. It's actually a function pointer and a couple of initialization is done there. So and then the rest of it is boilerplate. All drivers would do this. So I would, I mean, I don't want to go into the details of that. The other steps that are done in open is this particular driver is caching the formats for both the output as well as the capture. And those formats are stored inside that of context data structure itself, right? So in the event the application doesn't set anything, you should have some defaults to start off with. So that's what's being done over here. You can also see the context data structure over here. So it has a pointer to the original device, the file handle, which is where the context is stored. And then the formats are stored in an array here and also sequence number because as the driver progresses frame after frame, a sequence number needs to be incremented. So this particular driver only supports one image pixel format. That's one shown here, which is RGB 24. And so that needs that is what has been set up here as the default format. In the release, what you do is you initialize and free up the context. So that's that's pretty standard. And most drivers do this again, mostly boilerplate code here. The queue in it. We spoke about this in one of the previous slides. It's done as a part of the context, the fops open right by right after creating your context, you have to initialize that context. And this is where you're doing most of the VB to related activity right here. So there's a source video queue and a destination video queue. The source is for the output cap cues and destinations for the capture. And over here, you need to set up and determine what kind of a device you have, right? So So here we have the telling is an output. And this is a capture IO modes. We say M map and DMA above. These are the most popular ones. And you have the driver private. We also do not need a special buffer structure so we can just go with the M to M standard buffer size here. And there's a few queue ops here. These are the VB to queue operations, right? And and this one is important. This is telling this depends on your hardware. So this particular emulated camera device can only do physically contiguous memory. So we'd use the VB to DMA contig mem ops. Again, this is coming from the VB to layer. This they have their helpers for that. And finally, you you make a call into VB to queue in it once you populated this data structures. So once VB to write before it starts allocating cues, it's going to make a call into the driver, which is known as the queue setup. What happens here is you need your as a driver developer, you need to tell it how many planes are there in the buffer and what's the size of each plane. So that's that's what this driver is doing. The additional things could be done, but this driver is only doing the minimalistic thing here. And buff repair this callback is again issued by VB to and it does it before queuing it. So we only do a single step here that is set the plane payload size for every buffer. So that's an initialization that's happening. And there's a buff queue. This is the VB to layer calling into the driver asking you to queue the buffer. Ma'am to M driver just calls the Ma'am to Ma'am helper function because it will queue it into the Ma'am to Ma'am layer and go into the ready queue, right? That's the only step this is done here. There is a start streaming for VB to we don't really need to do anything here, but we are maintaining a sequence number. So that's being reset at a start stream so that you get a incremental one once which starts streaming in the stop streaming. What's happening is we're kind of draining the cues and we're just returning all the buffers back to the VB to layer. So here are the iOctyl ops. Every V4L2 device has a V4L2 iOctyl. So that's what's being shown over here. And the most important ones here are the format related. That's the only one this driver implements, but depending on your driver, you might have more. You could even have controls and other sorts of things, but this driver is very simple. It doesn't do that. So we do have like format enum, G format, tri format and S format. And because this particular device has the same capability on both the output as well as the capture side, the same set of iOctyl calls are used. And since they operate on their specific data structures that we saw earlier, that can work. So let's take a very quick look at the tri format. So this is supposed to validate any format and make any corrections as possible. So it's basically doing a bounce check to see what's the maximum and minimum resolution so the driver can support. And if it exceeds it, it's trying to fix it. Any other device constraint, device specific constraint must go here, but because it's relying on the STB library, it's very flexible. So there's not much other than the max format. And that's also artificially introduced for the purposes of not having a very large buffer. Then the enum is basically telling there's only one format supported and it's going to report the one that is supported. The G format returns whatever is there and the S format would essentially call tri-format, fix the format and then set it. So that's what it would do. The most important callback here is device run. This is where the job actually comes. A set of buffers come and it is handed over to the actual driver. So here what's happening is you go through the driver programming sequences as we saw in the datasheet. We reset the scalar. We configure the input width, height, output width, height, stride. We program those registers over here. And for the input and output registers, addresses, right, the DMA addresses for that, we'd get what you say through the VB2 API. And then finally we do the start processing by hitting that start processing bit, which is shown over here. So once the job is complete, like we mentioned earlier, the device would issue an interrupt. So we have an IRQ handler, a credit IRQ handler that we saw earlier. So the first step here is to read the status bits from the statuses and control register and determine if this job has been successful or not. And accordingly the VB2 status variable is being updated. And once this happens, then this is really when we remove the buffer from the ready queues because now it has been processed. So we remove those out and we update the sequence number and we finally return these buffers back to the VB2 layer. And once that is done, we call V4L2M2M job finish. This would remove the context from the job queue and then the next eligible context is ready to run. So let's take a look at the application. So for the test application, I used Lib Camera API. One of the reasons for it is because it has a really good C++ API, not even for MEM2MEM devices. So it could have been done using other libraries, but I think the code looks very neat and clean and concise when doing it with the Lib Camera API. I was also familiar with it at that point and so I decided to just use Lib Camera here. So in this, you see a very simple class. It's called MEM2MEM Scalar and it has two public APIs, one being the constructor. So when you construct the object, you give it an input size and an output size. That's what is required. It only has one format, so all the configuration you do here is the size. And then there is a run API which would do the job and we'll look at the details of that later. Let's look at some of the private data structures. So there is a device enumerator structure here and there is also a media device and an M2M device. So these are all abstractions provided by Lib Camera. And you have a vector of capture buffers, output buffers. You have some integers here that are counting. These are like frame counters. This is just to determine when to stop the application. At some point it has to stop and stop streaming. These are cache size variables which we take from the constructor and set inside to use later on in the run API. And this application is also trying to test that the buffers and their contents are correct by comparing it against the test vector. Hence there's a need to map the memory map those buffers. So there's some data structures used to memory map them. This is what the application looks like in total. So you configure an input size which is 640 by 480. There's output size of 320 by 240. Those are the two sizes. And then you construct this object M2M scalar and give it the input and output.  There's an answer to make sure that the run has been successful. Let's take a look at the constructor itself. So in the constructor we reset the capture frame and output frame counters to zero as shown here. We take the size arguments for input and output. And we store cache them locally into the class variables input size underscore and output size underscore. Then we create a device, device enumerator object. And we start enumerating all the devices. And after it's enumerated, we'd search using this device match. This is again all the camera API. But there's a way to search for it. Because we added media controller support to our driver, so media controller has a discovery API. So that's kind of what is being used here to find your device data. There are other ways to do it maybe through sysfs of v4l2, but this is a better way to do it because it already has a better support for finding your device. So that's kind of what's happening here. That's probably the only reason why this driver is using media controller. It's not using the request API or anything else but mostly just to, for this application to be able to find it. Usually you call into the search API of the enumerator and to which you give the device match object. And if it's found well and good, otherwise we add search. Let's look at the run function. So over here, you can be using a buffer count of one, but you could use up to as many as you want. The driver also has a way to decide how many minimum buffers it requires. I don't think there's a way for it to tell maximum, but yeah, it can specify a minimum number for count. And so over here now we grab whole of the media entity by using the M2MS source. This is a string that you can actually see this if you type the media controller minus P and they give the name of your media device. It'll list this name. So that name you grab and put it over here. So that helps you to find the media entity and the entity has a device node. So you use that to get a pointer to the M2M Scalar. And now M2M Scalar has a capture node and an output node. So you get those two media devices out from that M2M Scalar data structure. And the next thing is to set up the formats, right? So like I said, this is a very simple device. It has only a single format. So what we do is we do a get format on it and then whatever size it returns, we just take that and what do you say, modify it to and assign the cached size variables that we had set up like yeah, club objects that we had cached earlier in the constructor. And once we have done that, we call a set format on the capture side as well as the output side. That's kind of what's happening over here. The next thing is to set up the callbacks. So we need to an in-leap camera that uses something like a QT style, signal slot kind of a thing. So this is basically like a slot that you're installing for that signal. So we give it some capture, there's a receive capture buffer and an output buffer completed. There's those are the two callbacks that you do. Then the next thing is to queue all the buffers. So we'll start off with the capture side and we queue all the buffers. There's an additional thing we do here. We set a buffer cookie. This is so that later on in the callback we'd reference this to find out what is the memory map address of that particular buffer. And it is, I'll come back to this later. And then over here, we map those buffers using again yet another lip camera helper class that helps you to map it and it creates a span object. So those span objects are then put onto its own vector over here. Now we do the same thing with the output buffers as well and make sure that everything is memory mapped as well. Additional thing we do with the output side is we now feed it our test vector. So for test vector, I use the big bug bunny, the open source movie like an image from there. I convert it into an RGB raw file and also changed it into a header using xxd and that array is basically getting copied here. So this is your input, known input test vector. And after doing a memory map, you mem copy the known input into it. And then right after that, you also queue the buffer, right? And after that, there's two things to do. You need to stream on the capture side as well as the output side. Both need to be done. Only after doing this will your application start to work. Other driver will reject if only one of them is turned on. It's eligibility is not met yet. The rest of the application you install like a kind of like a busy loop event loop, I should say actually. So you have some sort of a timer which is evaluating if you get an opportunity to exit. And if nothing, you just call the event loop of lip camera. That would start monitoring all those FDs on both the output and the capture side. And that's how your callback mechanism is working, right? And then finally, when there is a break, there is an exit criteria here. So as soon as we capture four frames, we break out. And then once you've done that, we stream off both the capture as well as the output side. Let's take a look at the callbacks itself. So the output buffer callback is pretty simple. So we just take whatever buffer is coming in and queue it back. There's nothing more to be done here. We already copied in the known input test vector. So this is simply needs to be queued. On the receive capture buffer side, we're doing an additional test here. We're trying to see that whatever scaled output, downscaled output, the driver or that hardware generated doesn't match with our known test vector. So that's a mem compare function here. And there's an assert added to it just to make sure that it all works fine. And then after that, it's that buffer is queued back into the capture queue. So yeah, if anybody is interesting in reproducing this system, all the code is on GitHub. I've used Yocto for building this specific Yocto distro is known as the YOE distros. I have a fork of it, a branch called ELC 2022. So this, if you run through this, it should be able to reproduce these results. And those are the references, kernel v4l2 documentation, scalar data sheet, the scalar driver itself, the test application. And if anybody's interested also how the device was emulated on KMO, there's links to all of it over here. Okay, so we have nine minutes. If any questions from the audiences? Okay, let me repeat the question he's asking, could GStreamer do some of these steps here and instead of v4l2m2m? Yeah, GStreamer, I'm not a big expert on GStreamer, but from the way I understand it, it's a plugin architecture, right? So it might have some software-based plugins which can do scaling, but it can also sit on top of driver framework like this. So that also could be done. So yeah, you could use GStreamer, I believe, yes, it's possible, it's possible, right? I have not tried it though, but yeah, yes, yes, yes. Okay, let's just repeat the question once. He's asking if there's, because this is using a two-to-one scaling ratio, but if you use something like a fraction 1.5, 1.6, would there be any performance application or quality degradations and things like that, right? Yeah, those things are valid questions. It is applicable to a real hardware scaler. Those things might have some implications, but this is an emulated device, so it ultimately calls inside the KEMU, I mean, to the driver and the application, it looks like it's true hardware, but under the hood in KEMU, it's making a call into the SDB image resize library, which is software. So I did not write that, I just passed it from somewhere, but I think it doesn't have those restrictions like the ones you're mentioning. Those are typically applicable to a real hardware scaler. Any other questions? Performance data, I do not actually, because this is not a real hardware, I have emulated it on KEMU, but I have some experience on working with this with real hardware, so the most of the latencies will be from the hardware itself. The V4L2 layer does have a few latencies, but those are very minimal, which is pretty efficient framework, actually. So if you have a video IP, and there are a lot of good features here, like the stability of V4L2, you also have the multi-context support. These are all pretty hard to develop by yourself, so I mean, when I looked at it, I was like, this is really good if you have an IP that kind of meets this criteria. So it's probably a very apt choice. Any other questions? We have five more minutes, if there's any other questions. Or is there anything I should go over once again in the slides, since we have five minutes? More, that's not clear? Or, yeah. Or in the application? Or in the application or the driver? Okay, back, okay. Oh yeah, that's right, that's right. You're right, actually. So this, in a way, it's like a mem-copy function if you didn't change the input and output size because they are the same, right, to start with. You're right, you're right about that. But typical, this is just so that, I mean, a knowledgeable application writer would go and change them, so but you have to provide some defaults just in case, right, so it doesn't crash. So if you were to implement it as is, it's like a giant mem-copy with lots of framework called, that was unnecessary. But it is going to call the stb function and try to do a resize of the same size which is essentially not required, but yeah. No, I do not have a demo, right? That would have been cool though, but yeah. Cool, thanks, thanks everyone. If there are no more questions, I guess we can probably end four minutes early. Thanks everyone.


Okay, so we're going to start the interview with Jennifer Hooper Today is the 25th of August 2015 and we are at the Fairmont in Toronto and the interviewer as usual will be William Great, we're just gonna start a simple question. Could you please state your full name? Jennifer Jean Hooper. Could you please state your age? I'm 50 And where were you born? I was born in Ottawa actually, but I didn't live there very long after that We kind of moved around a little bit and go back for a bit and then but mostly I grew up in a very small town in southwestern, Ontario. Okay, and what did your parents do? They were teachers. Okay, and they moved a lot as teachers In the first, yeah, in the first six years we moved a bit and then sort of settled in the southwestern, Ontario Okay, and as a child what were your interests or hobbies or pastimes? I probably Interestingly enough, I did like rocks As a kid, but probably liked cats and dogs and birds and animals and nature As a kid bicycling, being out in nature Small town, there's you know, not much else to do. So, yeah, that's how I come to you. So nature and rocks Right on And as a your early education, what classes did you seem to like or excel at? Yeah, I didn't really excel at very much until I sort of sparked up in grade 10 physics and then grade 12 math. Okay, those are the only two classes that sparked any imagination for me and then And then I went into engineering at Waterloo. Why engineering? I don't know if it was like this huge Brilliant career aspiration as much as it is. I like I was I like sciences and math. I was good at sciences and math Of the sciences, I preferred chemical chemistry. So I went into chemical engineering and So it just seemed like a logical Career to pursue as opposed to a passion to pursue. Okay. There's more practical thing. Yeah So you went into chemical engineering specifically and then I was interested in the environment. So in my Fourth year, I took the environment option and then And I started working at DuPont and then I did my masters at Queen's part-time in civil environmental studies Okay, and what would you consider your first job you just mentioned DuPont? Would that be that was my first post-graduate like post finishing my BSC job? But in it's interesting again because things seem to come full circle My first co-op jobs at Waterloo were with mining I had a job in Smelter in Timmins, Ontario, and then I had an outside environment job of Timmins, Ontario. How was that? Yeah, it was 1984 I guess You know, I mean it was Exciting enlightening My first experience inside the heavy industry. So first time inside a smelter. It's quite a awesome Experience just with molten metal going overhead and cauldrons and pouring out of You know slag pipes and all of that kind of stuff. So it's the first experience. It was was quite Awesome really And it was First time, you know an engineering textbook when you see a distillation column and you see the heat exchanger or the Reboilers located up at the top Well, it was great to get out in industry to understand. That's not exactly how it unfolds in on the ground because you don't put 20 tons of a heat exchanger High in the sky When you can just pipe things down to the ground. So I don't know. It was just like taking the unit operations from the textbook I should see how it's applied. It's laid out one way and then seeing it as applied. I mean, I love the co-op aspect. I Love the co-op aspect the work aspect of engineering much more than I liked the study Well, not that I didn't study, but I like yeah, the words on the hands on more than the textbooks agreed. I agree And when you first went to university including the co-op jobs Especially in engineering.  If you looked at chemical engineering even by then it was close to half-half Now if you look at engineering as a faculty, it was probably down at 15% Electrical Mechanical civil didn't have a high percentage chemical bit And especially environmental I bet I did my environment as a master's part time So in the early 80s the environment was just kind of finding its way into engineering wasn't it was a option in fourth-year Chemical engineering, but it Really wasn't a faculty on its own. I think a lot of schools now have environmental engineering as a faculty in the 1980s But that's even today. I think that's Much more popular For women. Yeah in general. Yeah from what I hear So so those were your first jobs and then you said you started working at DuPont What was your job there? I started as a process engineer and then Within a couple years I switched into the environmental department spent about Seven years I guess In the environment department and then I did an operations leadership job for two years and then took on a regional health safety and environment kind of corporate type of work and Yeah, and then just progressed from there until 2005 and that's when I left DuPont and Worked for the government of Ontario for almost two years and then came and joined the mining industry Tell me a bit about your your health and safety job for DuPont Yeah, I mean DuPont's a great company and very in a world-renowned in terms of its safety culture It's got a very strong safety culture In fact my time at DuPont because the safety health environments Typically structured together many companies to want included Most of my focus was on the environment in fact because safety was so I think tightly held and Really well managed within the business units within the operations that You know we did some things in health and safety in DuPont at the corporate level But a lot of the standards and systems It was sort of continuous improvement as opposed to step change whereas on the environment file DuPont's a great company in that as well Kind of started in thinking the mid to late 80s getting really quite aggressive in that But so that work was sort of step change work whereas health and safety at that time was more continuous improvement Okay, and when you were in that position what improvements or changes did you Your part of our environment will go with health and safety first Yeah, I mean before I joined DuPont in sort of early to mid 80s the whole chemical industry really went through a huge transformation From a health safety and environment perspective, but perhaps driven From a process safety side of things after some explosions in the industry probably most notably Bhopal and so the chemical industry was really up against it in terms of Social and government licensed to operate and that really brought into Place this concept of responsible care and that I entered sort of just at the tail end of the first five years of that where sort of common principles common systems common Standards were being deployed across the industry worldwide. I mean each country had its sort of national flavor of that But I came in at the tail end of that and probably the biggest transformation was in the process safety side of things So not you know sort of task safety or rules safety, but those big type of Disasters that Thankfully don't happen very frequently, but when they do the consequences to human life are catastrophic. So So that really was a big focus in health and safety When I when I joined it was probably more focus on that than on the environment No from a safety perspective if I break it down into kind of Okay, behavioral safety or safety rules or task-based safety controls or those things that that happened frequently But low consequence. I mean this is sort of safety lingo lingo lingo now I Think you know people on as a company had has a good record in both actually postal safety and and then personal safety But there was a lot of work done on the process safety side for sure looking at the High hazard processes and what if analysis what could go wrong? What are our controls? Okay putting in processes to systemically review that every Certain period of time depending on the hazard of the process and that kind of thing so very Safety was very connected. It still is very connected to the technical Piece of the business And as for the environment, what was what kind of work did you do there and how did DuPont see? CD environment then I guess what what kind of Issues really facing or what I guess were their main goals. Yeah, so the big I mean in my early years of DuPont, I was located in one one operation and Kingston site Kingston, Ontario, so my work there was very much looking at the emissions and the baselines and and so not only meeting regulations but going well beyond and and What year but at early 90s there was a new VP of safety health and environment that came in and a new CEO and they They brought in the phrase the goal is zero and for health safety and environments So zero injuries zero illnesses zero incidents environmental incidents and zero waste and emissions. So You know tough goal. It's a it's a tough goal But what it did was sort of transform the mindset and so, you know businesses Started to look for Uses for their byproducts. So One, you know Cory and countertops really fine like really high-end material And so they you know, but it's all shaped and so as you cut a sink or you cut a counter There's always going to be excess and so instead of landfilling paying to landfill a really expensive material They found other uses for that. I mean something as simple as making a Korean pen beautiful decorative pen that can be given as a word So there was a real I guess mindset shift Looking at waste as a valuable commodity and then the other big focus Indipont in the kind of late 80s early 90s was in I'm sure still is this climate change And then the other focus back then was ozone depletion because the refrigerants were primary Like high ozone depletors and so transforming that business unit into we still needed refrigeration But how do you do that without using the flow products? that also caused ozone depletion and then in climate change There was one process emission associated with the nylon business that was high climate change Greenhouse gas factor and so the abatement system and so yeah, we got into Then it was not only Controlling the emissions and finding outlets for What used to be considered waste, but then you know bringing a business concept. So Japan was kind of an early Company to get into the emissions trading and try to figure that out and what is it and is it You know, is it the right approach and I mean that that was Back in late 90s early 2000s, so I don't know. I don't know where where DuPont is in that space anymore But so I would say kind of that paradigm shift of the world is zero Really did kind of turn people's minds around prevention and and finding Yeah, different outlets for their waste and recycling okay, and you'd also speaking of Global warming and the environment you you worked as a You worked with pollution probe. I'm not mistaken. Yeah, I'm on the board on the board Yeah, you tell me first of all, what is pollution probe and it's an NGO actually it's a national NGO and their focus is Really to enable constructive environmental sustainable development policy development So working with businesses working with governments working with First Nations working with other NGOs around how do we get progressive science-based Good public policy, so you know I like pollution probe because they have a Solutions focused willing to work with anybody that's wanting to focus on good science and good public policy and good outcomes They're not an adversarial Headline catcher type of NGO. Yeah, yeah, and So so you worked at DuPont and then you said you work for the government as What was your role? I was in policy development. I started with the Ministry of Labor Which for I didn't spend that long maybe six months. I worked in what was called the Inspections investigations enforcement secretariat and The primary job of that when I was there was to develop and enact Some new regular new legislation on enabling ministries to share information from department department, so with an inspection Turns up something in From an environment that is positive information from a health and safety that within limits There can be some information sharing between ministries. That was the main piece of work I did there and Then I joined the air policy and climate change branch Ministry of Environment and the primary focus there was working on the climate change plan for Ontario back in 2006 2007 And then you made the lead to the mining industry. Yeah, and so what do you do now or yeah? So I I joined the base metals business unit here based out of Toronto and mostly I think I joined as director of regulatory affairs, but a lot of the work was on You know hazard classification of our products You know being still involved if climate change consultations so it was more kind of the technical component of government affairs was a lot of the work I did in the first year or so And then after that it was Head of sustainability for base metals So then had safety health environment more of a closer to the operations when I first joined there was a bit more externally focused And then it was at the end of 2011 that I took on the Global role for Valley Group for health and safety okay, and I've interviewed lots of people who've worked for Valley or in Co. Yeah. Oh, yeah Yeah, I joined shortly after the acquisition. So actually never yeah 2006 and I joined in October 2007. Okay, so you don't you didn't witness any of the The major changes. Well, I mean, yeah, I mean I came post acquisition. So So now now that you do work in the in the mining business or mining and metallurgy Do you I often like to ask this question for people in the business in the industry Do you see a disconnect between the natural resource world and the general public? And especially when it comes to a lot of your experience which is comes in safety and especially the environment Yeah, so, I mean, I think the first comment I would make is I Think there's a Distance, I don't know if it's a disconnect or there's certainly a distance between What we do in the natural resource sector and what the public knows about what we do Or how we do things so I think there's been a And there's certainly a disconnect I think between Even the understanding of of mining is is kind of the base Foundation of industry and then the foundation of many of the consumer products that that we all enjoy and that That connection is not strong in the public mind. So you can't grow it. You have to mine it. That's what Someone else had told me that's a good It's a good line. I have to use that Yeah, so this so I don't think we've done a great job of Talking about the value add to the society that comes from mining and because you know often It's okay a number of jobs and amount taxes and honor royalties all that stuff I mean, I don't think the public has much of it. Unless you work in the mining industry or in a mining town like a Sudbury or whatever It's not enough right so, you know, Kella My spin poach who's a public school teacher Yeah, but we're We create so many jobs. Yeah, but that doesn't impact her the quality of life of her family But then talk about the car and the cell phone and the watch and All the other stuff and it starts to click a little better. Absolutely. Yeah, and I was actually doing a bit of reading on on how there's There's almost an ironic shift right now with the natural with renewable energy and how the big go-to renewable energies right now are Wind and solar both which need massive amounts of minerals both which need to be Sported greatly by mining Especially with your rare earth magnets and metals and things like that silicates and so So, yeah, there is definitely a gap. Yeah There's a gap a lack of education in in what really mining provides for for the entire planet But yes, you're not first also to mention that There could be a better job done as well from the mining industry to To make it the information a bit more available and yeah, and I mean, I think it's I mean like any industry the increase in transparency and public reporting and more quantitative reporting to try to Point paint the picture for folks. That's been increasing and will continue to increase which I think is fantastic But yeah, I mean that's a big difference between working for a Dupont versus working for the mining company, you know People can identify with the DuPont brand, right? So I don't know if it's still DuPont Lycra, but at the time I worked there DuPont Lycra DuPont Teflon DuPont I don't know what the Stainmaster So it's in their homes. It's on their fry pan. It's on their floors. It's on their workout gear so it's a It's a well-known brand and people can touch and feel yeah, whereas You know, yeah, everything mine is not stainless steel going into yeah building construction or a new railroad and I Don't know if you stain the steel in a railroad probably not but we use a lot of iron ore in it This doesn't touch the day-to-day of the general public. Yeah Yeah, the number of minerals mine for an iPhone They don't all go. Yeah, I found it's called an iPhone. Yes from Apple, but yeah, that's true and Now having also so having shifted in the mining industry how Present or absent our women in that business or and I guess you're fairly new to it But I guess have you seen a change or yeah, I don't know what the from an industry perspective, but I think Again, I'm guessing it's between 10 to 15 percent That's what it is in our company and that's probably representative of the industry So it's not not a high percentage of women Does that represent the entire company when you say that mm-hmm all yeah So all functions operations or corporate functions or so it's the whole that would be the whole company I don't offhand. I don't know what the split is between sort of operations roles versus more More corporate functions or support function rules or technical or engineering. Yeah, or other roles there There seems to be More and more now. There's there's more women who go to school in engineering basically in stamp But there still seems to be less women in the natural resource industry when it comes to actually Working so are you able to I don't know why that is Directly know why that is I mean certainly from a I mean certainly would there be no difference whether you from a lab Perspective say a laboratory technician or an engineering department. I don't think there's a difference in the work environment From one lab to the next lab or one engineering department to the next engineering department It's office work with some time in the field and all of that kind of stuff So I don't know why there would be a difference there You know certainly in terms of our operations, I think we're getting better But there's some basic things like you know, there's a company and I'll make a little plug for a company in Sudbury Called cover gals. So it's just a great example, right? So You have to wear certain coveralls Underground and they're not particularly well designed for women. Yeah, they're where they own dragons. Yeah. Yes Yeah, so there's lots of energy and real a lot of innovation and so that's just an example of you know, is it Is it an industry that that is? Unconsciously unwelcoming It certainly it's not a consciously unwel I've never experienced to be consciously unwelcoming But things basic things like does the safety equipment? Is it designed for women? Yeah Is the work underground You know, does it take into account? Women's like to use their bathroom other separate bathrooms or there's you know, just and so I mean that's an area that we focus on is so that just even the basic Work environment bathrooms Equipment all of that kind of stuff and and I think as an industry we could do a better job Okay Have you joined any Well, you're on a board. Have you joined any other boards or organizations? Yeah, I mean I have over the years. It's the only board I'm on right now. I was Well when I worked for just for base metals that was on the Board and technical committees at the nickel Institute. So that's the industry association With the nickel industry and then I Was on the board of directors for C lap it was another Canadian environmental law and policy NGO I was on that board for maybe a year. So so that's pretty much it and Looking back I Mean you're you're much younger than a lot of my my interviewees and you're still you still work full-time but Looking back so far What would be the the proudest or some of the proudest moments in your professional career? You know, I think So the only reason I'm pausing is because it's I'm not gonna answer this question in terms of moments, but I'm very proud of Our company and the industry is really Really trying to Make leaps in health and safety really looking at Everything from Innovation so how can we innovate new technology to remove people from the risk? right down to You know, how do we put in? How do we look at the work environment? How do we look at the human factors? And so the the industry is really I think Well, I can speak more directly for my company is really Facing the challenge head-on and with great passion and commitment in terms of Really improving the health and safety results And the other thing I You know, I the whole You know, I'm proud to work in the mining industry. I really am and You know my friends my family or some people that might say yeah, but you have so many impacts, you know, you're blowing up mountains and filling in lakes and You know, sometimes people in certain areas have to be relocated because of first sometimes for safety reasons other other because of there's going to be an operation there someday and Sort of the catch-22 in mining the way I've simplified it in my own mind is Some of the impacts are felt short-term and Local and that's true. We do have an impact in mining and there's no sense of saying we don't But when you look at the benefits to local infrastructure to the future to education to the future of Especially some of the countries that we're going and when you look at the benefits I in my mind, I'm proud to work in mining because you know There's a lot of countries in the world that need positive development and I think responsible mining and taking into consideration the the need to provide a social benefit and a positive social legacy legacy beyond the time that we're going to be there Is Jumping to be proud of and hard to communicate because the the local and short-term stories are always easy to communicate the longer term benefits are More difficult, but they're they're real and they're there and they're really and as for a lot, especially if you look at mining mines in other parts of the world Mines can last long you can have a I don't know Yeah, so we're under years exactly hundred could be 40 could be 20 and all depends But are there parts mines in parts of the world where? Because mining is cyclical where The development of a mind has helped develop an entire community But Is there is there a balance there between I guess relying too much on the mind itself and not enough on What's gonna happen or what were what what would happen if Yeah, exactly and so I think You know the trend for sure now is And this started predates me coming into mining But what is the post closure plan in terms of economic diversification so that the town is better Better when you leave right so that it is has got a sustainable economy. It's got Reclaimed environment where we've had some impacts, but there is a Drive to take in economic diversification of the community so that at the end of end of mine life You don't just pull up stakes and then because when when you open a new facility In especially in some regions of the world many people come they come for employment And so how can you as a company then not only focus on those direct jobs? But how can you build capacity for the? Sort of the ancillary jobs that will then form the basic economy post closure So that is part of the whole mind development mind closure planning cycle now Okay, and if you were to You were to address yourself to someone much younger like a student or someone like that What would be a a life lesson or a piece of advice you would give them? Hmm look into the future of their career profession. I don't know. I think it's Fine work that's and find the work and find the place where the values match your own and And the other thing I think I'd say is Don't put any artificial boundaries around your capabilities or your contributions like you know when you work in organizations sometimes You know there's structures as processes and all that but you know if you see some important and valuable work to do and It's consistent with the company direction and the company values and it sparks some values and some passion in you don't let False barriers will be back Good advice. Is there anything else you'd like to add or share? Well, thank you very much, okay, I appreciate it


So, what I have here is the recently released Guide to Japanese Role Playing Games published by Bitmap Books. It's the definitive guide to JRPGs that has been years in the making and many fans of the hidden side of gaming have been anticipating it quite a bit. They were kind enough to send me a copy of a review so we'll be taking a quick look at this today. You can get it on their website for about 35 pounds. Now, I've been following the development of this title very closely for a while now. It's basically a book promising to be the ultimate guide to JRPGs covering the entire history of the genre. There's over 600 articles in this book written by many contributors, some of whom I actually know. Now at first glance you might be thinking that this is going to be like one of those retro gamer special issues you find in the newsstand in Barge Noble where the whole time they're just like, hey guys, have you ever heard of Final Fantasy? It's a very underrated hidden gem I just discovered. No, no, it's not like that. This is much more thorough than that. First of all, this is published by Bitmap Books. As I said earlier, they are a very reputable company from the UK and they make great books. They mostly make full color visual guides for different errors in gaming. They have a Game Boy book, a book about CRPGs, a Super Famicom art book. They're very well known for their quality. And this book right here clearly had a lot of work going into it. Like I said, I've been following this development very closely for a few years and it is just a monster of a book. It has over 600 articles and is very thorough. It's a really good value for the price in my opinion and I wouldn't say this if I didn't like it. First, just talking about the quality of the printing really quickly. It has a high quality binding with a ribbon. The pages are all full color. And when you buy it, it comes with a PDF version for your ebook which I highly appreciated. This book covers the roots of the genre and goes over every aspect of CRPG history. It has sections discussing the origins of the genre and how it developed over the years as well as what defines a CRPG. There's sections on 8-bit, 16-bit, 32-bit and the HD era as well as individual franchises. Obviously, there's going to be big sections of the book dedicated to major franchises like Dragon Quest and Final Fantasy, but that's not why you're buying this. No, where the book really shines is in the articles covering all the forgotten games over the years. That's time sort of forgot. This book is amazing for discovering a bunch of weird games you've never heard of. You're not buying this for articles on the popular stuff, but on all the hidden sides of the gaming industry. When I say it's a thorough book, I really mean it. There's articles on every single obscure CRPG ever made. I legit would just try to think of the least popular CRPG series I know about and look and see if it was in the book and it almost always was. This book is so well researched that I think if you're looking for a thorough guide on new CRPGs to try out, it's a must buy because it has almost everything you want right here. The articles give you enough information to seek out each game from the developers, platforms, the gameplay, it shows you what the gameplay is like, the reception, the influences and the general history. To me, this is just a really good book for discovering new games to play. That's the biggest strength of the book, the fact that there's so much history to explore and no stone is really left unturned. Look at these games. Have you heard of any of these games? Maybe you have, but most people definitely have it and will learn about them by reading this book, which is why I really appreciate what they've done here. This is a book for CRPG enthusiasts who want a nearly complete look at the CRPG genre and how the industry has evolved over time. There's a lot of really cool articles on localizations and common tropes found in the CRPGs among others. A really cool section I enjoyed was a section on PC RPGs from the 1980s as this has some very obscure history that I might have become lost knowledge had nobody written about them like this. It's almost like a history textbook, but for video games. All the weird little games that slip through the cracks over the years are accounted for alongside the heavy hitters and when people write about CRPGs they usually forget about these games and it always bugs me. But here they really did their research and they made this a good guide on the genre. The big sections on the popular games are very thorough and informational. There's a big section on Falcom with articles on games like Dragon Slayer, Xanadu, Ys, Trails and Legend of Heroes. These are the more hardcore CRPGs that general audiences don't know about and I'm glad they were given the spotlight they deserve here. Maybe more people will discover them this way. There's big sections on Dragon Quest, Final Fantasy, Shin Megami Tensei, Tales of. These are the major attractions. There's a particular beefy section on Dragon Quest here. The articles in DQ offer a very deep historical analysis that impressed me. There's articles in each game in the series but I was mostly impressed by the article on Dragon Quest V which was very thorough and insightful. And it was multiple pages long so there was a lot to read about. The same kind of thing was done for Final Fantasy and the Megami Tensei section talks about the roots of the Megami Tensei franchise and how it moved on to Persona. After these big sections the book focuses more on the cult classic side of JRPG history with articles on games like Star Ocean, Xeno, Mother Fantasy Star. This section of the book is really really massive and just has hundreds of articles on games even I haven't heard of. Just lots of lesser known titles to check out which honestly is my favorite part of the book, discovering new things. So yeah this is why you're buying this book. Not for the articles on things you've heard about but to learn about games you haven't heard of. I mean I see articles on so many JRPGs from recent years that didn't make a huge splash in the mainstream market and I appreciate this book for giving them a little spotlight. It's nice to see. There's even some cool articles in the back on Pokemon Clones as well as Western indie games inspired by JRPGs and you should definitely check them out. Overall it's an easy recommendation for me. I'm not just being nice I was thoroughly impressed by the book as a JRPG fan. The fact that it taught me a little bit about a genre that I love so much makes it enough for me to recommend this to any hardcore JRPG fan who wants to find just new stuff to play. It's a really good book and you should definitely get it when it's available. I hope this review was helpful and I'll see you guys next time.


So yesterday I uploaded a method of how you could basically get unlimited ammo, infinite ammo, with any weapon and any vault hunter. Today I bring you a build I quickly created for Zayn around this, and to be honest guys it ended up being an amazing build, which will help anybody out struggling through that mayhem 10. Obviously though, certain aspects of this build you will need to go and get. Has it gone guys, my name's DPG and today I bring you another BR3 video. If you do enjoy it leave a like really helps out and subscribe and turn those notifications on by hitting that bell button if you do want to see more. So the infinite ammo trick is actually a real simple one and it means that weapons like the yellow cake, the sand hawk, the iron cannon and many many other weapons which have a habit of burning through that ammo be a much more consistent and efficient weapon, especially on vault hunters like Zayn, who don't really have the means to stretch out their ammo usage and so forth. And that's why I decided to upload this video on my Zayn infinite ammo build. So firstly the items you will need to get. So you need to get the fishlap grenade, which is an exclusive item to the revenge of the cartel's event, and you get this thing from Villa ultraviolet farm fishlap himself, or Tyron smolens. And you also need any variant of the cut purse artifact, so find yourself any artifact farm, an artifact you feel would suit this for your place though and a choice of set up you call for and go get this thing. You can see a quick guide on screen now of where all artifacts do indeed drop. So once you have those items, weapons I suggest you get in your hands on though are weapons such as crazy powerful weapons, but mark through that ammo quick, where with this build that won't be the problem. Weapons that come to mind for me are weapons like the iron cannon, the yellow cake, the hydrofrost and the sand hawk. I mean there are many many weapons in this game right now that just are super powerful but they burn through that ammo so so quick, so just ain't really that efficient to unzane. Today with this they will be. I personally just use the yellow cake with this though and it marks through absolutely everything on mayhem 10. And it means those who are struggling with mayhem 10 will be able to use this and farm anywhere for that beautiful loot. So the shield I am using here is the new firewall. This variant is the ammo cash variant and it has that tail prefix, which is good. 15% chance to absorb ammo as well as its usual skill. Projected Shield has a chance to fire projectiles at attackers. A portion of the projectiles damage restores shields. Now I won't lie, this is only being used here because of the anointment and it's probably the best shield I have with this anointment on. And that is why action skill is active. 250% of health taken is returned to the attacker to shock damage. If you could land yourself an old gun shield with this anointment on, which is a variant which offers damage which helps you with the weapons you are using, that would be absolutely amazing. I don't have one of them right now, so that's why I'm using this. Now the firewall is another exclusive drop upon the villa ultraviolet from the enemies of Josie Byte and Franco firewall. Class mod we are using here is the scene dead. Obviously, I don't feel I need to explain this thing. Obviously go for skills though on this that will help you build and match your build. Mine obviously dedicate to heavy and ammo. Scene dead drops anywhere upon the handsome jackpot for those who are new around here. Grenade is that fish slap grenade. This by the way doesn't have to be any particular one. Yes if you have one which gives you additional benefits that's perfect, but that isn't really necessary. As it's the grenade's main party trick which we indeed need and that is the fact that fish slap's damage is melee damage and this means with the cut purse equipped we indeed replenish ammo upon our grenade hitting those enemies, which is pretty cool. And that's why I state the cut purse is also very important. So let's move on to the build and we will start with the skill tree in which the action skill is being used here and that's barrier. So fireleaf points into adrenaline for that increased action skill cooldown. Very important where one action skill is being used. We then have three points into stiff upper lip. As bear in mind we have all the damage output we need being able to spam out rocket launches and so forth. So putting a little more into defence makes sense. And we then put two into rise to the occasion again at the offensive perk and we then have confident competence selected where we gain a great damage bonus depending on shield status. Augments we use here are nanites or some shite and all rounder with again defensive intentions in mind. Okay so moving on to sentinel. Five points into violent speed and five points into violent momentum. Speed equals power. We then put four points into salvation with death follows close selected. Five points into violent violence where I will state I use mainly for when I am using weapons it will affect more more so than rocket launchers with two points into playing dirty here. Now what I will state is depending on where you prefer to use this setup weapon wise if you roll four launchers I'd put five right here and two into violent violence. If you're more so go with weapons like the sandhawk and the hydra first five in violent violence makes more sense. And then we put three points into good misfortune which is a must obviously and then we have that scene read selected. Lastly people we have the digiculantry. Five points into synchronicity and five points into done in brook. Great pairing for damage here. We then put five points into duct tape mud these when grenades are fired from that weapon do trigger the pairing of the grenade and the artifact which will regen that ammo. This though I will state isn't super important because we will be throwing grenades so you can put two here and three into prey for that extra mag size that's up to you but we just need five points to get down the tree for our next skill which is pocket for the grenades. This obviously replenish your grenades upon it being active and it comes into play via you simply hitting enemies because of the scene dead class mud and also because we're using scene red you will also activate this perk when you activate your action skill so grenades will always be there people to help you replenish that ammo. And guys that's the build the complete thing and it works amazingly well for sure. Those of you guys who are a fan of my winter soldier build my winter soldier 2.0 build well notice straight away that this is just a simple adaptation of that with a few things changed here and there and what this will do is help you through the toughest challenges this game throws at you if you are struggling as well as giving you infinite ammo which is just a major bonus. So yeah I made this for those who asked and hit me up about this and were curious about this build so I hope it helps you out. Footage in the background by the way was obviously me using this build and as you saw it was absolutely destroying everything on mayhem 10. But on that note we have come to the end of the video if you guys enjoyed it leaving a like really helps out. If you're new and you want to see more boardlines be sure to subscribe and if you never want to miss a video upload you can turn notifications on by hitting that bell button. But guys thanks as always for stopping by hopefully you enjoyed the video and hopefully I will see you on that next one. You should back away.