G'day viewers, my name is Oren Thomas. I'm a principal hybrid cloud advocate at Microsoft. In this video, we will talk about the Windows Event Log and Event Log policies. The Event Log is something that's been built into Windows Server for decades. It's one of those meat and potatoes features that we all have a cursory understanding of but rarely think about in depth. As someone who talks about IT Pro topics, I'm interested in covering core roles and features that have been around forever but don't get much attention. Whilst all the new shiny things get coverage, it's tools like Event Viewer and Event Logs that you need to understand to effectively do a job as a Windows Server administrator. In this video, I'll discuss what the Event Log is. The primary four Event Logs, the Applications and Services Logs, the Group Policy Items related to Event Logs and other fascinating, invigorating, and exciting ephemera related to this is exquisitely interesting but often overlooked element of the Windows operating system. So what is the Event Logs? The Event Logs record events that happen on the computer. Examining the events in these logs can help you trace activity, respond to events, and keep your system secure. Configuring these logs properly can help you manage the logs more efficiently and use the information that they provide more effectively. Whilst you generally use Event Viewer to view the logs, you can also use PowerShell and Windows Admin Center to view log data. Windows Server saves Event Log files as XML files that can be reported on and managed as part of a collective reporting schema. There are several additional log providers and categories that you can monitor. Event Viewer stores information in a number of logs, including Windows Logs. This Windows Event Log provider contains the following events logs from the operating system, application log. Events in this Windows Log are classified as error, warning, or information, depending on the severity of the event. An error is a significant problem, such as loss of data. A warning is an event that is not necessarily significant but might indicate a possible future problem. An information event describes the successful operation of a program, driver, or service. Security Log. This Windows Log contains security-related events which are called ordered events and are described as successful or failed, depending on the event, such as whether a user's attempt to log onto Windows was successful. Setup Log. This Windows Log records events related to installing programs and services on the computer. Computers that are configured as domain controllers have additional logs displayed in this category. System Log. This Windows Log records system events that are sent by Windows and Windows System Services and are classified as error, warning, or information. Forwarded Events Log. This Windows Log records events that are forwarded to this log by other computers. Each application or service installed on the computer will have an individual log. These logs store events from a single application or service rather than events that might have system-wide impact. This category of logs includes four subtypes for which the application or service can provide events. These subtypes are admin, operational, analytic, and debug logs. Admin. Events that are found in the admin channels indicate a problem and a well-defined solution that an administrator can act on. An example of an admin event is an event that occurs when an application fails to connect to a printer. These events are either well-documented or have a message associated with them that gives the reader direct instructions of what must be done to rectify the problem. If it's a printer, it may include the solution from the movie office space. Operational. Events that are found in the operational channels are used for analyzing and diagnosing a problem or occurrence. They can be used to trigger tools or tasks based on the problem or occurrence. An example of an operational event is an event that occurs when a printer is added or removed from a system. Analytic. Events that are found in the analytic channels aid in performance evaluations and troubleshooting. These events are published in high volume, so they should only be enabled and logged for limited amounts of time as part of a diagnostic process. They describe program operation and may indicate problems that cannot be handled by user intervention. Debug. Events that are found in the debug channels can be used by developers when troubleshooting issues with their programs. You should note that both analytic and debug logs are hidden and disabled by default. To use these logs, first start Event Viewer, click the View menu, and then select Show analytic and debug logs to make these logs visible. Then select the analytic or debug log that you want to enable and on the Action menu, click Properties. On the Properties dialog box, select Enable Logging and click OK. Each of these logs has attributes such as maximum log size, access rights for each log, and retention settings and methods, each of which can be defined in the appropriate event log section in Group Policy. You can configure the event log settings in the following locations within the Group Policy Management Console. Computer configuration, backslash administrative templates, backslash windows components, backslash event log service. Subordinate folders exist for the following event logs by default. Application, Security, Setup, System. The same set of policy settings is available for each event log. The Setup folder has an additional policy setting that allows logging to be turned on. The following slides will describe the options and issues for configuring event log settings for better system management and security. The maximum log size policy setting specifies the maximum sizes of the log files. An individual setting may be specified for each of the application, security, setup, and system event log channels. The user interfaces of both the local Group Policy Editor and the Microsoft Management Console event viewer snap-in allow you to enter values as large as two terabytes. If this setting is not configured, event logs have a default maximum size of 20 megabytes. Although there is no simple equation to determine the best log size for a particular server, you can calculate a reasonable size by multiplying the average event size by the average number of events per month, assuming that you back your logs up on a monthly schedule. The average event takes up about 500 bytes within each log and the log file sizes must be a multiple of 64 kilobytes. If you can estimate the average number of events that are generated each day for each type of log in your organization, you can determine a good size for each type of log file. For example, if your file server generates 5,000 events per day in its security log and you want to ensure that you have at least four weeks of data available at all times, you should configure the size of that log to about 70 megabytes, calculated as 500 bytes by 5,000 events per day by 28 days equals 70 million bytes. Then check the service occasionally over the following four weeks to verify that your calculations are correct and that the logs retain enough events for your needs. Event log size and log wrapping should be defined to match the business and security requirements that you determined when you designed your organization's security plan. You can set a maximum log size value of between 1024 and 2,147,483,647 kilobytes in multiples of 64 kilobytes. That's an approximate maximum log file size of two terabytes if you're feeling relaxed about the amount of storage you have. The recommended event log setting size is four gigabytes. That does seem rather excessive. However, I found a document on learn.microsoft.com that specified that value. So it must be the right number. The approximate maximum event per second that can be recorded is over 300,000. From a practical perspective, if you're thinking about log files that big, you should be using a tool like as your monitor or system center operations manager to query and analyze your event data. The control the location of the log file policy allows you to configure where event logs are written. By default event log files are located in the percent winDIR percent backslash system 32 backslash winEVT backslash logs folder. You can move these logs manually or by using policy. To move the event log files to a specified folder, follow these steps. Open event viewer. Right click the log that you want to configure and then select properties. In the log path box, type the desired location for the event log and then select okay. This change takes effect immediately. However, the events that were already logged are still saved in the previous location. If you relocate the event log files to an unavailable disk, the events will be lost. If you significantly increase the number of objects to audit in your organization and if you enabled the audit shutdown system immediately, if unable to log security audit setting, there is a risk that the security log will reach its capacity and force the computer to shut down. If such a shutdown occurs, the computer is unusable until an administrator clears the security log. To prevent such a shutdown, you can disable the audit shutdown system immediately if unable to log security audit setting. The following default log access rights are enforced, application and setup logs. All authenticated users can write slash read slash clear the log, system log, only system software and administrators can write or clear the log. Any authenticated user can read events from it. Security log, only system software and administrators can read or clear the log. The log access policy setting determines which user accounts have access to log files and what usage rights are granted. Individual setting may be specified for each of the application, security, setup and system event log channels. This policy requires you use Security Descripted Definition Language, SDDL, to identify security principles rather than just selecting a user or group. This makes configuring this setting a lot more cumbersome than it should be. Enabling this policy allows you to enter a security descriptor for the log file. The security descriptor controls who can read, write or clear the event log. Control event log behavior when the log file reaches its maximum size, policy setting controls event log behavior when the log file reaches its maximum size. If you enable this policy setting and the retain old events policy setting is also enabled, the event log file is automatically closed and renamed when it is full. A new file is then started. When this policy setting is disabled and a log file reaches its maximum size, new events overwrite old events in the same log file. If this policy setting is enabled and a log file reaches its maximum size and the retain old events policy is not enabled, new events are not written to the log and are lost. You should archive logs to an external location at scheduled intervals and you ensure that the maximum log size is large enough to accommodate the interval. Alternatively, use a monitoring solution that ingests and archives logs in an external location. The backup log automatically when full policy setting controls event log behavior when the log file reaches its maximum size and takes effect only if the retain old events policy setting is enabled. If you enable this policy setting and the retain old events policy setting is enabled, the event log file is automatically closed and renamed when it is full. A new file is then started. If you disable this policy setting and the retain old events policy setting is enabled, new events are discarded and the old events are retained. When this policy setting is not configured and the retain old events policy setting is enabled, New events are discarded and the old events are retained. As I mentioned earlier, you should archive logs to an external location at scheduled intervals and you ensure that the maximum log size is large enough to accommodate the interval. Alternatively, use a monitoring solution that ingests and archives logs in an external location. In this video, we looked at event logs on computers running the Windows operating system. The event logs record events that happen on the computer. Examining the events in these logs can help you trace activity, respond to events and keep your system secure. Configuring these logs properly can help you manage the logs more efficiently and use the information that they provide more effectively. Tools like Event Viewer and Event Logs are things that you need to understand to effectively do a job as a Windows Server Administrator. Ensure that you configure log file policy so that log file size is appropriate and that important event log data is not overwritten or goes unlocked. I hope you found this video useful and informative. My name is Oren Thomas. You can find me at aka.ms slash oren and if you've got any questions or feedback, drop a comment below.


Hey everybody, I'm Lance Goyke and today we're going to talk about partial pressures Oxygen how the lungs interact with the blood system and why oxygen is so important So let's start with the last one.  You need Oxygen to produce large amounts of usable energy. So as as we go through glycolysis We enter the mitochondria. We go through the citric acid cycle We get to the electron transport chain at the very end of that electron transport chain oxygen is the final acceptor of Electrons and this is this whole system has been pushing electrons around because we use these Electrons and this electro motive force or proton motive force that we might say to make usable Energy so we put another phosphate group onto a diphosphate and adenosine diphosphate to make a Tp or adenosine triphosphate and we use that to produce energy or to accomplish tasks or to transport Neuro transmitter vesicles back to this cell body and back and forth and whatever so all sorts of stuff I'm also contraction. That's a huge one. It's a huge source of ATP usage So we need this oxygen, but how do we get it to the tissues? Well first it needs to get to the blood because the the blood or the circulatory system is the system that delivers it transports all of these nutrients and gases and whatever Now to talk about the blood we need to then first talk about the ventilation or the respiratory system So the respiratory system is much more complex than just inhaling and exhaling just simple ventilation We would call that that's the distinction there. So respiration also involves the exchanging of molecules and ventilation is simply inhaling and exhaling so To fill the lungs. I have pressures. I need to manage pressures If I have a total pressure inside my lungs, it's comprised of multiple different molecules So to simplify it there are other molecules but to simplify it we're going to say we have a partial pressure of oxygen and a partial pressure of carbon dioxide and That forms one total pressure inside the lungs If I take a breath of fresh air That partial pressure of oxygen is relatively high because I haven't used all of that oxygen at the end of my electron transport chain like we talked about and the freshly inhaled air, the Partial pressure of carbon dioxide is relatively low But in the tissues, especially if I've been holding my breath for a really long time and I'm working out really hard That oxygen becomes depleted those oxygen levels lower and the carbon dioxide levels raise Now to understand what occurs next we need to understand Gradients which if you've gotten this far in physiology you've probably heard of gradients we have Different it's like it's like a hill like a ball rolling downhill. That is a height gradient We might talk about Membrane potential or electrochemical gradient in neurons or Just simply particle gradients so if I have a lot of oxygen in one side and a little bit of oxygen in the other side Then I want to use that To roll downhill roll the ball downhill. So we're going to roll the oxygen into the low concentration place In our example, we have high concentration of oxygen Lots of oxygen in the fresh air and less oxygen in the blood this tired blood because I'm working out Right. I've been churning through this stuff Whatever exercise or even just I'm sleeping really hard or whatever because it takes energy just to live That's why you die without oxygen, right? Okay, so we're bringing it all together. We take these gradients and We we just flip-flop it for the carbon dioxide. So carbon dioxide is high in the blood It's gonna flow out of the blood now because there's too much there. We need to even it out This again comes to thermodynamics. So this is why you learn all these basic principles Thermodynamics wants more stable systems so if I have too much of one thing and Too little of another thing. I'm gonna try to even those pressures out and this drives that exchange of oxygen and carbon dioxide to Get to ventilate I need to also monitor the pressure of my thoracic cavity. So To decrease the pressure again, we're creating a gradient I if I want some air to flow into my lungs Do I need higher pressure in my lungs or lower pressure in my lungs? I need lower pressure in my lungs. I need a high pressure outside a low pressure inside So how do I lower the pressure in my lungs? Well, I can take the volume of my thorax and increase it Okay, so the principle is that there are the same number of particles in this container But if I make the container bigger it makes sense that the pressure is lower, right? So that's that's the basic principle of ventilation of Gradients applied to different particles and gas exchange If you have any questions Leave them in the comments below Because I like to respond to those and I like to hear what you guys are thinking if I've left anything unclear If I've said anything incorrectly, let me know I think I got it all but if there's something I miss that you think I should touch on just let me know and Don't forget to smash that like button


A Few Maxims for the Instruction of the Overeducated Read for LibriVox.org by Karl Manchester 2008 A Few Maxims for the Instruction of the Overeducated by Oscar Wilde First published in the Saturday Review November 17th, 1894 Education is an admirable thing, but it is well to remember from time to time that nothing that is worth knowing can be taught. Public opinion exists only where there are no ideas. The English are always degrading truths into facts. When a truth becomes a fact it loses all its intellectual value. It is a very sad thing that nowadays there is so little useless information. The only link between literature and drama left to us in England at the present moment is the Bill of the Play. In old days books were written by men of letters and read by the public. Nowadays books are written by the public and read by nobody. Most women are so artificial that they have no sense of art. Most men are so natural that they have no sense of beauty. Friendship is far more tragic than love. It lasts longer. What is abnormal in life stands in normal relations to art. It is the only thing in life that stands in normal relations to art. A subject that is beautiful in itself gives no suggestion to the artist. It lacks imperfection. The only thing that the artist cannot see is the obvious. The only thing that the public can see is the obvious. The result is the criticism of the journalist. Art is the only serious thing in the world and the artist is the only person who is never serious. To be really medieval one should have no body. To be really modern one should have no soul. To be really Greek one should have no clothes. Dandyism is the assertion of the absolute modernity of beauty. The only thing that can console one for being poor is extravagance. The only thing that can console one for being rich is economy. One should never listen. To listen is a sign of indifference to one's hearers. Even the disciple has his uses. He stands behind one's throne and at the moment of one's triumph whispers in one's ear that after all one is immortal. The criminal classes are so close to us that even the policemen can see them. They are so far away from us that only the poet can understand them. Those whom the gods love grow young. End of a few maxims for the instruction of the overeducated. This recording is in the public domain. Phrases and Philosophies for the Use of the Young Read for LibriVox.org by Karl Manchester 2008 Phrases and Philosophies for the Use of the Young by Oscar Wilde First published in the Chameleon December 1894 The first duty in life is to be as artificial as possible. What the second duty is no one has yet discovered. Wickedness is a myth invented by good people to account for the curious attractiveness of others. If the poor only had profiles there would be no difficulty in solving the problem of poverty. Those who see any difference between soul and body have neither. A really well made buttonhole is the only link between art and nature. Religions die when they are proved to be true. Science is the record of dead religions. The well-bred contradict other people. The wise contradict themselves. Nothing that actually occurs is of the smallest importance. Dullness is the coming of age of seriousness. In all unimportant matters style not sincerity is the essential. In all important matters style not sincerity is the essential. If one tells the truth one is sure sooner or later to be found out. Pleasure is the only thing one should live for nothing ages like happiness. It is only by not paying one's bills that one can hope to live in the memory of the commercial classes. No crime is vulgar but all vulgarity is crime. Vulgarity is the conduct of others. Only the shallow know themselves. Time is a waste of money. One should always be a little improbable. There is a fatality about all good resolutions. They are invariably made too soon. The only way to atone for being occasionally a little overdressed is by being always absolutely overeducated. To be premature is to be perfect. Any preoccupation with ideas of what is right and wrong in conduct shows an arrested intellectual development. Ambition is the last refuge of the failure. A truth ceases to be true when more than one person believes in it. In examinations the foolish ask questions that the wise cannot answer. Greek dress was in its essence in artistic. Nothing should reveal the body but the body. One should either be a work of art or wear a work of art. It is only the superficial qualities that last. Man's deeper nature is soon found out. Industry is the root of all ugliness. The ages live in history through their anachronisms. It is only the gods who taste of death. Apollo has passed away but Hyacinth whom men say he slew lives on. Nero and Narcissus are always with us. The old believe everything. The middle aged suspect everything. The young know everything. The condition of perfection is idleness. The aim of perfection is youth. Only the great masters of style ever succeed in being obscure. There is something tragic about the enormous number of young men there are in England at the present moment who start life with perfect profiles and end by adopting some useful profession. To love oneself is the beginning of a lifelong romance. End of phrases and philosophies for the use of the young. This recording is in the public domain.


Hi, beautiful. Today we're watching some people color their hair blonde. They are going from black slash brown hair all the way up to the blondes. It's probably the sketchiest of all because it involves bleach, a lot of patience, and a lot of time. Most people have no idea what it takes.  But we'll see today.  We get from point A to point B while going through like a million obstacle courses and the end result somehow is like beautiful. I don't know anymore. It really confuses me. It freaks me out a little bit. But I also hope to see a little bit of a fail today. Your boy needs a little laugh. Come on. Give me a laugh. And we're repping the Live Your Extra Life merch today. Ehh.  Oh my God, it feels so right and good on my body.  I am giving all of you guys 20% off all my merch from now until April 30th. All you're gonna do is click the link right down below and use the code YouTube20 at checkout. And thank you in advance for supporting my channel and supporting what I do. I really love you. Up first we have a video by Tori Costel. My whole life I've always felt like I was meant to be a blonde. But my mother disagreed and never allowed me to color my hair. The other day my mother spontaneously suggested that we buy some box dye and give it a go. Here I was in this aisle of beautifully haired women on boxes. No. So I tugged my dream dye into my arms and ran away. I have some conditioner right here. And the next thing I'm showing you is. Okay, so we're using blonde box dye. I'm assuming that she has natural hair. Like she's never colored it before because she was saying her mom didn't let her color it at all, which is good. Otherwise this box dye will do literally nothing. But her hair is way too dark to go from there to that like blonde with just a box. Like she might get like an orangey blonde but definitely not what they have listed on that box. Like there is no way. I'm sorry but you need to use bleach for that. The color I chose was this eight and a half a champagne blonde. I don't know what that means but I think it's gonna dye my hair. Level 10 is the lightest blonde. So eight and a half is like almost a nine. So it's almost the lightest blonde you can get. I would say that box looks like more of a nine but I don't know, it's not gonna be ashy. It's gonna be orange. In the car I realized that it was actually permanent dye. I kind of thought it was gonna be like a couple of weeks of blonde hair but that's gonna be up to eight weeks. Okay, you can't go blonde with semi-permanent hair color. And it's going to last not eight weeks. It's going to last until your hair fully grows out. You can't go from brown to blonde semi-permanently.  You can go darker and have it be semi-permanent but not lighter. So it says it's going to be taking my hair from this which is about my color to this. If it doesn't, loyal Paris is going to see me in court. Here I'm just brushing out my hair which always seems to be tangled no matter what I do. Then using Brad Mondo's advice I made this sad excuse for a middle part. Then I attempted to section my hair into four different parts. We have a section queen today. Yeah. Then it was time to take the tip off of one of the bottles. Then I took the cap off entirely to see what it smelled like. It actually didn't smell bad at all. Then I grabbed the product that I threw across my room earlier and got a good whiff of that too. Why is there conditioner all up in the front of her head? Let's not put conditioner on your hair like that because it will dilute the dye and make it less effective and probably it won't pick up very well in that spot. So don't do that. I realized that the conditioner I had put around my hairline earlier to protect my forehead was a bit much. So I frantically removed that with a paper towel. Thank you for getting rid of that. And then I got ready to use my squirt bottle. Oh, here we go. There's no turning back. It wasn't going. No product was coming out. And when it did, I must say I was very shocked. So I applied it to my hair and made sure to cover every strand with some product. You know, the stuff smelled so bad. I can smell it through the screen. High lift color smells so toxic. Like it will burn these little nasal passages. Like it will, you know what I mean? Like it hurts. I'm also really happy that she's not starting at the roots because with high lift color, you will get hot roots, which means your root will be like two shades lighter than your ends because of the heat from your scalp. So don't do that. If you're wondering why I'm not doing my roots first, it's because Brad Mondo, you know, that's the answer to everything. But he said that the heat from your scalp will change the color and make it brighter, which is why so many people who start with their roots end up having an uneven hair color. Oh, that was so beautifully said. Oh my children, I'm so happy. Except also everybody's getting way too good at doing their own hair. I'm putting myself out of the job. As I was working through my hair, I was seeing no color. I was expecting it to be more of an orange and brassy color, but instead it was the same old brown. I was starting to get worried, but I just moved on to the next section. After I had finished with my ends and the middle section of my hair, I began to do my roots. All I can say is that no hair has fallen out, so I'm taking that as a good sign. If by some miracle Brad Mondo is watching this, I volunteer to be one of your miss mannequins. Just promise you won't decapitate me. Seriously, they all get great hairdos for free. This mannequin is the only client that I take. I'm just kidding. But yeah, you know what?   It's my favorite type of client. Now, the direction said to wait for only 25 minutes, and I ended up waiting for 50 and still saw no change.  What in her hair? Not change at all. I mean, I wasn't expecting a huge difference, but I was at least expecting something to happen. That makes literally no sense, like at all. I didn't see any change in the coloration. When the bottom of my hair dried, it was actually looking lighter, and I got extremely excited. Here is the final product. Oh! Press how happy I am at how it turned out. Ooh, yes girl, yes to see it. This is how it came out. It looks reddish on camera, but in person, it just looks like the same old brownish shade, just a little wider. You must have had color on there beforehand. I'm calling you out on your bluff. You did something behind my back, and I don't trust it. This time I used the Garnier Nutriese Ultra Color. No! Ooh, no, no, no, no, no, no, no, no, no, no, no. Okay, so here's the thing. I don't know what happened with the last color of your hair. Like, I don't know why nothing happened.   You need bleach. I'm sorry to break the news, but color doesn't lift color. So you can't put more color on and expect it to lift again. You can only do it once, so you're screwed. So I slipped on my gloves, then I mixed the three products according to the directions, and I applied it to my hair, strand by strand. This is gonna be so sad. Nothing's gonna happen. I feel so bad. I set a timer for 25 minutes. Once the 25 minutes had passed, I added an additional 10. I was already seeing some color change at this stage. However, I was noticing some patchiness with the coloring. I guess I didn't section as well as I thought I had. This is how the color turned out after I allowed it to air dry. It's a little brassy, but honestly, I was expecting a lot worse. Whoa, whoa, whoa, whoa, whoa. Why is this so cute? So you know exactly what this means. Oh my God, she's doing it again. Are you trying to break me today? Cause I'm broken. I went strand by strand of my hair, meticulously coating them with the perfect amount of dye. By the way, I know what you're thinking, Brad, her hair lightened, color doesn't lift color. Okay, fine. You're putting ammonia on your hair. Obviously it's going to do something, but technically you're not going to get any really good results because color doesn't technically lift color. Okay, that is like the number one rule in like hair school and like being taught how to do hair. Color doesn't lift color. Technically it does sort of, but it doesn't. Okay, just listen to me, it doesn't.  That's good. Putting a bag on your head when your color is processing helps keep the heat in, expanding the hair fiber and allowing those artificial molecules to get in there and color your hair better and faster and stronger. It's quite shiny and it feels really healthy. It looks more like a dark orange on camera. In person, it looks completely different. Here's how it looks like in natural lighting. I'm still not sure what I would call this color. I would call it bronze. I had really high expectations for the L'Oreal Paris brand products, but no, I was surprised by the Garnier hair brand. Their products are actually really good and they didn't dehydrate my hair into raisin-like strands. It couldn't have gone much worse except you didn't start with the roots. So that's good. We got one thing down. Next time, use bleach, except I don't even want to say that because I just don't trust you with bleach. I'm sorry. I'm sure you don't trust yourself with bleach either. So let's stay away from just anything with color. Maybe get it professionally done. That's a concept I have. But if you do end up bleaching it yourself, make sure you record it, end up post it and make sure I see it because I would love to react to it. At least you didn't end up with like the worst result. Like at least your hair wasn't bright orange and it's non-fixable. Congratulations. Up next, we have Maya Jackson. This is my current hair. There's so much brown still left in it. So now I'm so pumped to get it all blonde. I did the option I love is left because I have like the darkest hair ever. I have Asian hair. This is a premium developer. It smells so dirty volume, which I realize is pretty intense. We're off to a great start. We have some Blonde Me Powder Lightener and 30 volume developer. Great combination. Perfect for her. She might be okay, but I definitely am not sure because she does have very dark hair. Something tells me she's not going to section things out correctly because nobody f***ing does. Ever. Toner. This took forever to come in. See, this is the thing when it comes to at-home hair color. You guys always pick your toner before your color's finished. That's complete opposite of what we do. We lighten the hair and then we choose the toner to get to the end result we want based off of the result we got from the lightening process. If there's more yellow in the hair, we put more purple in the toner to counteract each other. You know what I mean? And we put a little sprinkle of this sprinkle of that to get to the end result we're looking for. You guys are always picking it beforehand. Doesn't make any sense. Sorry. So we're gonna put in one of these. Let's mix her up. This is like really satisfying. I love this like gooey consistency. Make sure when you guys are lightening your hair at home, use the consistency that she just mixed up. It should be like in between yogurt and peanut butter. Not as runny as yogurt, but not as thick as peanut butter. You want it to be on the thicker side. That way the color doesn't dry out really quick because once lightener dries out, it stops working. It's like goodbye. See you later. Your hair is not lifting anymore.  They also say like don't do your roots wet right away. I do it like here. Everybody knows not to do their roots first. I did that. You know what I mean? I feel like I'm putting too much in. Honestly, can there be too much? Honestly, no. There can't be too much lightener on your hair. Pack it on there. Like just get it all over.  But it'll be fine. Thank God she's using bleach by the way because we saw what happened with the last girl. So she is making her way around the head. She's doing a pretty good job. I will say guys, let's take horizontal sections and not just take like the craziest sections ever. There's not even really a sectioning method behind this. We need to take horizontal, small horizontal sections at a time. That way we know we got every single piece of hair. All saturated, all perfect. The worst thing that can happen to is you get splotchiness. When you're done doing the bleaching process is the biggest pain in the, to get out. Like it is the biggest pain in the world. It's really annoying. Cheers, I'm drinking blood. We're definitely gonna get splotchiness. You can tell right now by the way she's applying this and kind of like just subtly like pushing it into her hair, getting it like sort of all around. I can see dry spots everywhere. This is not covering her entire head. That is for sure. Look at me right now. This is not you. I'm so glad she's covering her hair with a plastic bag because that is going to help keep the heat in and it's going to be so much more effective. Like your hair is gonna actually lighten if you do that. Oh, it has started to lighten. I'm a little scared because some parts of her hair are like level 10 blonde already and now she's going with more lightener. And you can also tell that she missed like 50% of her head. We are about to see a splotchy. Moment, it's going on. No way I'm not missing a bunch of spots. It's already so patchy.  I've leptons for like an hour and a half or more but I'm gonna go shower. Okay, that's a little too much. Let's just do like 35, 40 minutes next time without the roots and then let's leave the roots on for like 20 to 30 minutes. Okay, we want the ends to be like an orange color before we start doing the roots, okay? Orange, then roots.  This is currently the state of my hair. I'm gonna put some Oplex in my hair because I really don't want it to fall out. Oh! Oh! This is way worse than I thought it was going to be. Her natural color going through her hair as well as like a level 10 pure white blonde and then like every color in between. It's not really a reveal because I'm, this is not finished. No. Stay on the topic. Oh, we're doing it again. Please hair, stay on her head. She's gonna go over those blonde pieces. Those really, really light blonde pieces. I already know it and that's gonna fall to the ground. Hopefully she's only lightening the orange areas. It looks like she did the whole thing. I don't know if you're shocked by my hair. It's basically neon yellow. It looks a little bit better after round two. Just section your damn hair out. It'll make it so much easier for you. What do I have to do? I change everybody when it comes to, you know, only start with the ends and not the roots but now we have to also do the sectioning, the horizontal beautiful sectioning like little tiny pieces at a time. And I'm gonna be doing well at T18 which is like one that everyone use on YouTube. And now she's doing T18 which is actually kind of fine because her hair is light enough for it. It might help those like slightly blonde parts get a little bit brighter.  It's gonna be all different kinds of colors all around but it'll be better than what she has right now. And apparently for this unlike bleach, you start at your roots because it takes to the ends a lot more. How did she miss that much in the back? What? Your entire root area is not colored. Also this color is permanent color so it is going to lift those dark areas of her hair to like a red or an orange. So it's gonna develop your ends faster. What is that sectioning? What did you do? Just go like this and then just put it up.  It doesn't take that much. I don't even need you to use a tail comb. Start at roots first. I wouldn't do that. It is permanent color. So you can see how purple it is. You can get blathered all over my hair now and I'm gonna leave it on. Oh, what? This is the finished result. Honestly, I love it. What? Okay, listen, I know for a fact it's not perfect because I saw the back of your head and I saw all those blotchiness. But how did we get here? I feel like you just played me. How did we get here? How did we get this to happen? What? You look incredible blonde. This is your color. This is it. It honestly wasn't that hard considering my zero experience. It's all about not starting at the root. Like to be honest with you, that will save you like 50%. That will get you a decent result just doing that.  It's very fake. Some may say it's even trashy. The blonde looks good as hell and I don't know how you got to that end result but let's not make it so sketchy next time. And also we could do it so much better next time if you just section it. That's all.  We definitely saw some fails. They're both kind of fail-y.  Do better next time. Let's start improving with this. Okay, this whole brown to blonde thing. We can do it better. Just stop being lazy. If you're like 20% off my merch you can shop it right down below. It is on sale from now until April 30th using code YouTube20 at checkout. Everything will be down below for you. If you'd like to check out my haircare or my hair color line we now have our new wave tech wave system. So if you've curly or wavy hair and you would like it to be literally the most incredible waves and curls you've ever seen in your life shop the whole system right down below or go to xmodohair.com. You can also check out all the rest of my products on our website. If you like hair inspiration check out xmodohair and xmodocolor on Instagram and check me out if you'd like to see more of me. Give this video a like if you enjoyed. That always is helpful. So thank you for that if you do it. And subscribe. Do that too. That'd be cool. If you'd like to check out more videos of me ah, here they are. Do it. That's a good video. Oh I love that video. That one was fun. This one was really good too. That's all for today guys. Thank you so much for watching and don't forget to live your extra life and I'll see you next time. Bye.


Hi, so please introduce yourself. Hi, I'm Eric Ford from ProvenRun. And at ProvenRun we are helping our customer to succeed in securing their devices in the IoT market. And cyber security is all about ProvenRun. So we are helping our customer to identify their security risks. We are helping them to put in place the right security architecture. And we are helping them also to succeed in their cyber security certification. On the other side, this is where we are helping the customer, you know, in moving forward in the process of securing the devices. We are also providing really highly secure products. So we have our flagship product, Provencore, right? And Provencore is a secure micro-canon that has been certified at the highest security possible level, common criteria EL7. And this is a world premiere. This is for Cortex-A, for RISC 5, 64-bit processors. We are also helping our customer for smaller devices based on the MCU's right with a second secure micro-canon. As an example, we have a very nice partnership with ST Microelectronics on the STM32 H5. And we have also a secure app provider. So in a very brief nutshell, this is what we are providing to our customer, help to succeed in their certification process, in their cyber security certification, and also in implementing their cyber security services on top of our product. Thank you very much. So right here, you say, is this the most secure in the world system? Yeah, we are the only one. Most secure. Can you describe how it's the most secure? And what does it mean by the first, when you say the level? I gave the CC level. What is the CC level? It's common criteria. This is the most demanding cyber security norms. And EL7 means that we have developed proven core secure kernel, secure operating system using formal methods, and we have proven mathematically the correctness of the kernel and the cyber security functionality of the kernel. So it's not that easy to get to that level? Not at all. It took us about seven years to develop the kernel and two years to achieve the mathematical proof, the formal proof. Can you describe what's the challenge in developing the kernel to be secure like that? Yes, I can describe it. First of all, the current security kernel, you know, has been developed with a usual development method using a C language, for instance. The challenge is that when you are using formal methods to develop software, those methods were well-fitting for functional software, piece of code, but not well-fitting for developing an operating system, a secure operating system. So we had to create our own formal language as a first step in order to be able to achieve the development of the secure operating system and to be able to prove it formally, means proving it mathematically. And so you have a long experience in getting stuff like that done? Yes, yes. Our CEO and founder, Dominic Bolignano, has been the inventor of the concept of the trusted execution environment, which means the secure kernel more than 20 years ago. And because he found out that the way of the existing TE in the market, you have one in your mobile phone so far, we never reached the sufficient level of cybersecurity. He decided to go further down the road to target the highest possible level of cybersecurity that we can achieve currently. If you go over there, you have a few posters. You have the proven core M. Yes, this is the micro-carnate here for MCUs. This is what is currently part of the ST Microratonic ST M32 H5 secure manager. If you go to the ST booth, you will see this live. You will have live demos. We have also a very nice partnership with Xilinx on the CREA, some module that is a Null Trascale MPSOC based system on module where our flagship product proven core is providing security services. Also nice innovation. Beyond ARM architecture, currently RISC 5 is growing up in the embedded market. So we have a partnership with the sci-fi to demonstrate how proven core brings security functionality above sci-fi, world-guard separation mechanism. And last but not least, it's great to talk about partnership, to talk about innovation. But it's also really great to present a real-life product. For instance, we have worked with Engrave, that is a company building a crypto wallet. This is a product that is on the market. As you can imagine, when you are talking about cryptocurrency, you need a very high level of security. And Engrave has used our product to secure their crypto wallet and to keep the secret very safe in regard of the security requirement. And this wallet has been developed using ST micro processors using proven core, our product, and using also Linux as a retrace. Isn't the most secure crypto wallet in the world? We believe so. You would have to ask a question to Engrave, but we are very proud about this achievement with our customer, with Engrave. And can you explain a little bit the trust execution environment and there's an open-source version of it? Yes, you have an open-source solution, OPTI, exactly. And you are involved in that one? No, but our funder has been at the root of the T concept and he invented the concept. OPTI is an open-source T, but OPTI has a fairly low level of cybersecurity. So if you scale OPTI on the Command Criteria cybersecurity scale, OPTI, you can reach Command Criteria level two, level two plus. Cyber certification level has at proven core. We have achieved Command Criteria EL7 cyber certification. To do security, it has to do with keeping some secrets and stuff like that. You want to not reveal the secrets. There's not only encryption. It's like an architecture that you don't tell people how it works and stuff like that. No, it's not by hiding the people. I can show you how does it work for instance here. So let me rewind a little bit about the T and the Secure S concept. Cyber security is all about the trusted computing base.  Currently, many people are already doing cybersecurity with an operating system like Linux, Android, RTOS, right? But those are very big. And we've got... those have cybersecurity issues almost every day. If you look at Linux, you will find vulnerabilities published on a daily basis, right?  So what's happened is that we use a TV that is sitting in a secure area provided by the hardware, for instance for ARM. This is the ARM TrustZone Secure World, right? Or if you use RISC 5, it is in a trusted area, a separated area, managed by WorldGuard. And then you can have a very highly secure microkernel, right? Very small, proven at the highest level of cybersecurity on top of which you create your secure application. You are talking about secure storage. It is one example. So you will manage your secrets like keys, like certificates through this environment, right? And the RISC OS will request the secure environment to cipher, decipher the data, for instance, to manage the keys and so on. But we are not stopping at just encryption, decryption at a secure storage. We have the ability to implement more sophisticated cybersecurity services such as firmware updates, such as filtering, data filtering that goes over the network, right? You want to control like VPN, for instance. So there is many additional services. And here you have the list of services, for instance, right? You may want to implement trusted user interface. You may want to implement intrusion detection systems. So you don't trust Linux or Android to do this. You will trust the secure part to achieve this kind of task. Nice. You're based in France? Yeah, we are a French company. We are a French company based in both Paris and Sofie Antipolis near Nice. And when we talk about cybersecurity and the continent of Europe wants to have better security, and even the chips might come manufactured in another continent, you want to bring it over, you want to be secure, but you work with customers all over the world. Yes, we have customers all over the world. We have customers in North America, obviously in France, in Europe. We have customers in Asia-Pac also. Cool. And is it busy in the middle world? It was very good for us. We were really busy, busy all those past three days. Cool.


Documentic data about human artists in the universe have suffered that connection. I will trade you through my process for this project and the outcomes where any collection can adapt this methodology. One of my aims was to create awareness of the women artists in the collection. I addressed this by collecting data and exploring ways to make this information accessible to a broader audience. I am conducting this work mindful of the art and feminism initiative within the Wikimedia movement. This project involved the process of understanding data and exploring the possibilities for preserving the data, primarily through the use of the Wikimedia platforms, using Wikidata, Wikimedia Commons and Wikipedia. To understand the collection better, I started by analyzing data through offline lists of all the works in the collection. I had also explored the art collection online presence. The formation was gathered mostly from the University of Salt Lake website, where the data was derived from other websites about the artists or by the artists, including online versions of exhibition catalogs, found through Google searches. This enabled the creation of standard-facing information about each artist's such own space of birth, date of death, where applicable, and the significant point that their work is in the University of Salt Lake art collection. However, I should point out here that I chose not to contact artists to collect missing information, but instead perform basic data, ecology, and editing what is already out there on the internet, including with kit platforms. I did this as a proof of concept to show that even with little information readily available on the internet, such findings can be made. Of course, for such projects to continue growing, work would be best developed in direct collaboration with the collection curators. I started by enabling Wikidata records about individual artists to include a statement about the fact that their work is in the University of Salt Lake art collection. A Wikidata entry for the collection itself needed to be created first. Data entries included location and owned by the University of Salt Lake. Taking this work forward required attention to Wikidata entries for individual artists with a basic standard item structure. I'm being ahead to the way I'll be processing these records from Wikidata in a minute. I have performed what is known as the Wikidata query in combination with the data visualization tool available also through Wistropedia. This one simple and visual way helped me to identify ways to improve the data set. For example, by removing duplicate entries or fixing incomplete or inaccurate dates. Once all the women artists in the University of Salt Lake art collection had individual Wikidata records, they could also be collectively represented by a new list of identifiers. But since the initial amount of data has been organized through Wikidata, it is possible to tabulate information to queries on the database. This involves basic data science techniques of filtering the correlating data. In the case of Wikidata, this is performed through a process that involves Sparkle commands, which derive data from the database. By having dates associated with the query, Wikidata query service can render this result as a table or interactive timer. Or by having the place of birth statement, you can even generate data queries on a map. Sparkle queries help to identify missing data with the female artists. A more visual way to identify and find gaps in data, which can be addressed accordingly, downloaded as an Excel file, CSV, among other formats. This is a simple list of women that have worked present in the University of Salt Lake art collection generated through the data available in Wikidata. For example, I'm adding optional to show all the women artists in the collection, regardless of whether they have a date of birth, data entry. The same query for the women in the collection who have a data entry for the place of birth can be visualized as a map. As you can see, it is very effective and interactive, showing with red dots where the artist whose work is in the collection are from. Things get even more interesting when you see the links with separate institutions or art collections sharing their collection data. If that data is in Wikidata, users can see which work are collected by specific museums and even determine a specific date range. As with so much on Wikidata, there is a great potential to reveal new insights about collections. These can also be combined with other visualization tools. I have selected to use such a visualization tool from Listeropedia. This works best for records that include images. It also highlights gaps in the image holdings associated with specific records. I can demonstrate it here by showing specific diamonds associated with the collection, such as the date of birth of women artists in the collection. We are encoding them according to the place of birth. This tool provides interactivity with zooming possibilities, showing always the artist in front as the artist for which there is the largest amount of data present in the database. This can also show gaps in the timeline, depending on the available data about the collection. Wikidata allows for powerful queries to reveal insights about artists' gender, material use, exhibition information, and provenance of works. In conclusion, through the work I have conducted on this project, I have aimed to show how use of Wikidata can help art collection managers keep track of the collection. Specifically, I have shown a method to create better awareness of women artists, identify gaps, increase visibility, potentially address the gender gap in the collection, and create and improve Wikipedia articles about women artists, engage further with Wikipedia project for the collection more broadly regardless of gender. An analysis of this data enables collection managers to get a fuller picture and enables them to work towards specific goals within their collection, such as achieving gender bands or addressing historical gaps. I discussed with the collection assistant curator also the possibility to amend acquisition forms that artists, women, and artwork is collected so that more specific data used for such work for Wikidata queries is collected. Data is the source to shape new ways of seeing things, new ways to understand collections, when data is curated and or navigated with sensitivity to line and space with data visualization, you start to experience a new kind of language, a more visual language. Thank you.


What's up everybody, Jason here for JaspysCaseBase.com. We did it guys, we sold out 2023 tops inception baseball, 16 box case, picketing number four guys. This is our last case in stock, in store. Let's see what we can get out of here guys. So everybody here is in. And of course we had a 10 team R&B, which we did. There's the customer names there with the teams. So, let's open up the case guys. Remember, it was our last case last night. Decided to save it here for you guys. Sold it out today. Don't know when we're gonna get more again. So, let's enjoy this last case here guys. All right, here we go guys. We got Goldie, Kodaisanga, and a Matt McLean. All right, we got Randy, a Rosaranya, Stone Garrett, trade turner, and then we got a rookie player worn patch auto. Looks like it's Marlins and it's Jordan Groeschens. Number to 50. Marlins, that's going to Chris Parents. All right, first one on the board there. All right, another patch autograph coming up. BB, Incarnacion, BB. Looks like a pink one, might be a jumbo. Is it a jumbo? No, another player worn RPA. Pirates, Madras for the pirates. That's number to 75. Pirates, part of the R&B. And that is number 31. Spot one is Mark. Riley Greene, Nolan Jones to 150 for the Colorado Rockies. Let's go on to Tristan, James Alvin, 20, 29, 39. And Brian de la Cruz to 75. All right, we got 16 out of 75. That's for the Mammy Marlins. Torque, Jordan Alvarez to 150. Astro's going to Kevin. All right, we got, looks like a silver signature. Silver signature. DL Hall for the Orioles to 99. Little bit of a teaser there. But still a hit for the Orioles. That's seven out of 99. Spot seven for the Mark. For the Reds, we got Nicola Dolo to 249. Reds, Justin. Gunnar Henderson, not numbered. For the Mariners, George Kirby to 249. Seattle Mariners and Lauren. All right, next box, guys. Almost halfway through. That one feels like a 6.2. If those hit packs don't sell, let me know which four numbers there are, because I've got to make a custom page for those ones, so I'll wait. They're going to sell right now, man. All right, well, hopefully. I'm going to make them sell right now. But if not, I have to make a custom page. Out of 75, Jose Ramirez, 47 out of 75 for Cleveland. Guardians, 10 team R&B, 47. Seven is Mark. Buxton, Lede. Kyle Stowers, we got a bonus auto. Remember, that's 37. Another one for Spot Seven and Mark. And then we got a RPA or a patch autograph. It looks like it's going to be Ezekiel Duran for the Rangers. 56 out of 125. Spot six for the Rangers is Eric Wolverton. So, Eric, you're going to get that patch autograph, RPA. And then Kyle Stowers going to Spot Seven, which is going to Mark. Corbin Burns to 150. And for the White Sox, Davis Martin to 99. White Sox, that's going to Mark. Warner Franklin to 99 for the Rays. Omar. Nolan Gorman, very nice for the St. Louis Cardinals, Lauren with that one. 89. We're halfway through, guys. We got seven boxes left. We got a patch autograph coming up. Gorman blue, and then we, or sorry, green. And then at a 150, Hobby Buys for Detroit, going to Mark. Another jumbo. Woo, how about this Garrett Mitchell? Beautiful patch autograph. 23 out of 25. Milwaukee Brewers, part of the 10 team R&B, 23. Spot three's Lauren. How you going, man? Very, very nice. Two RP, two jumbos in here, guys. Very nice case. Salvador Perez, and then we got Grayson Rodriguez, that's 29. Spot nine is correct. We got Simian Woods Richardson to 50 for the Minnesota Twins. Steven Olson. Yo, this box actually feels a little heavy. Either a bonus hit or another patch autograph. Looks like a patch autograph. Ruchman, Matt McLean to 75. All right, we got, play, this is a vet. Gabriel Arias for the Cleveland Guardians. Five out of 10. Spot five, going to Mark, last spot mojo. Four more boxes to go, guys. Man, this, another box feels heavy, dude. I don't think anything, this is a great case, actually. Supposed to get at least four R-patch autographs. This one actually just has a bonus auto. No, the Ruchman is just a green. When they're green like this, they're just not numbered. Emmanuel Valdes to 99. I did sleeve it up, though, so it's gonna go part of the not numbered. We got 80 out of 99 for the Red Sox. 80, spot zero's Mark. All right, bonus auto in this one, guys. We got Mackenzie Gorda 50 for Washington, going to Oliver. And then for the Pirates, O'Neill Cruz, 34 out of 125. 35, 34, spot four is Mark with the Pirates. All right, Tres Mas, three more, guys. Jim Carlesanian, Freddie Freeman, Bryce Frank, Michael Harris. Oakland, Jordan Diaz out of 299 for Oakland. 45, another one for spot five and Mark. Auto guy's kind of fading, though. I don't think he had a good, he didn't put the pen too strong down on the card. Whoa, this one feels heavy. He pulled that Jalen Green, right? I didn't, I mean, that's nothing. I don't remember it. I don't know if Michael did. I don't think so. Because you sent me the picture of that Jalen Green. Yeah, should be there, unless he did, but I don't think so. All right, for the Braves, we got Longrissum to 249. All right, Lana, that's going to Jonathan. And the last box here, guys, good luck. Ryan Montcastle to 25. 11 out of 25 for the Orioles, spot one going to Lorne. All right, here we go, last hit, guys. Good luck. Davis Martin to 25. White Sox going to Mark. And there you go, guys. Well, like I said, I mean, these are pretty much the bigger rookies that we sleeve up. And again, these ones are not numbered but they're like a green parallel. The reds, the purples, the grays, pinks, those are all numbered, but these ones are not. But that's still going to go part of the non-numbered base. And of course, these are the hits that went straight up to customers. All right, then Nolan Garner was nice. Patch autographed Grosians. But I feel like the R&B did pretty well, honestly. All right, patch autographed there, patch autographed there, patch autographed there. Silver sign is there, another patch autographed there. Very, very nice, guys. Thanks for digging in tonight. Now again, let's switch scenes and let's randomize the list of names. Remember, name and number one gets all the non-numbered base stuff. Hits, the autographs are actually all numbered, so. All right, roll a dice and we got a six and a one, seven times. Good luck. One, two, three, four, five, six, seven. Six and a one, seven, seven. Eric, little bonus consolation for you, man. I'm gonna get all the non-numbered stuff. So there you go, guys. Appreciate it. Jaspies, casebreaks.com.


So today, I will go through some work that we are currently doing for SkinnyCyclicarn. It's mainly about the introduction of new computational routines for the library. I will mainly go through, rapidly, the context of the library. And then I will describe a pattern, which is used in many algorithms, which we would which we have, in fact, improved and we would like to port on other architecture. So before getting started, just a brief few words about me and about Inaya. So I'm a research engineer in the Soda team, which launched the projects a bit more than 10 years ago. I've been working there for a bit more than a year and I became a Cyclicarn maintainer in October 2021. So my work mainly focuses on improving the library performances and on reviewing contributions, but there are many other aspects and we are looking for people to help, especially for reviewing requests. As for Inaya, Inaya is the French National Institute for Research in Digital Science and Technology. It's kind of like important historically for the country and it ranges from academic research to technological startup creations. There are many other open source libraries that are used for scientific computing there. So if you are willing or interested to know more about about those, feel free to have a chat then after the talk. So when it comes to Cyclicarn, I don't know if we need to present the library once again, but in a few points, Cyclicarn used to be the reference for simple and efficient and stillies. Implementation of data analysis and machine learning algorithms. It kind of like brought the famous estimator.fit.predict.api came with like a nice illustrated documentation. It's kind of like the reference for many product in the industry and work in academia. We also organize on lights and on side sprints. So there's like a sprints this afternoon. Some people from the team will be participating. So if you are new to open source or if you just would like to contribute to the library, feel free to come. And we just like will help you with other maintainers of library help. So these kind of like features just made it one of like the most popular package for Python yet there are other things that can be improved, but it's mainly about improving what exists. We don't want to have like new shiny features in the library want to make it simple and efficient. Especially we can improve it on many points such as documentation, community engagement, UX and usability so that it's even more user friendly and performance. So as for performance, there's many work which is going on. I'm going only to focus on one pattern to get to technical details. So if we look at performance, in application people have many be using gradient boosting methods because those are performance. It was mainly kind of like boosted by some libraries such as like GBM, EJ Boost and Cat Boost. Scikit-learn implemented also like the Instagram gradient boosting and if we compare performance of Scikit-learn versus those library, it's kind of like relatively similar. So here it's kind of like a bias graph that we've done or aggregating all validation scores on many sets of like hyper parameters and random data sets. Yet those are available online can be reproduced if you want. But the point here is that there's not just those kind of methods, there are many other ones, starting from really simple ones such as the cannibals classifier. And if we compare our implementation to for instance Intel's one API implementation like in the Scikit-learn 1.0 in previous version, those implementation were not the most optimal ones. So there was like some kind of performance gap that we could just work on. And actually if we look at this classifier here, most of the computations are relying on two sets of methods which are the cannibals search and the radius neighbor search. But it's not just the case for this algorithm here, it's the case for many other ones in the library such as those ones and mid-orders. So focusing on improving the performance of those two routines just like would improve the general performance of the library. So the focus of our talk is to get through or we can speed up those two things here. So just a bit of like formalism for the nearest neighbor search. So I'm just going to follow the details. What you need is distance metrics which is a function taking like two vectors of given dimension with some other properties that I'm not going to cover. What you are working with generally is a vector x called a query which you would like to find neighbors of in a dataset here as referred to y. And you can consider the distance metrics here called d of d x of y. So the goal as said is to find the closest vector to x in y and there's generally two formulations. One for the cannibals search where you'll find all this case smallest value using like the what we call arcaming operation here on the matrix or you can find the closest neighbors within the border of radius r as shown here. There's generally two kind of solutions to solve this problem. So the first kind of solution is to rely on binary tree data structure such as bold trees and clear day trees. So here is the complexity which is theoretically provable and the problem in fact is that in many cases for many reasons including like backtracking I see it's explained I'm not going to cover this it gets to this complexity as p tends to infinity. So it's not even the best option in fact when we have big datasets and it just is the best for smaller datasets for example p for this value those kind of like range for p. In practice people are using much bigger datasets so we need to consider alternatives. The other alternative is just to use brute force which is supposedly worst in terms of complexity but in practice it just can be way more performance because technical optimization can be used. So here we are going to only cover this case which will give you an overview of the work rate that we are going through and so when it comes to brute force cannibals search one can see the problem as this. So you consider your vector x your matrix y here you can compute the distance and in easy words what you can do to get the the neighbors that you are looking for is to perform what you call a reduction on this matrix. So in this case the step of the reduction can be as follows. You can partition this matrix around the pivot which we take here as like the kth smallest value of this array.  In Python this can be implemented easily and they're using our partition and our sort so using them by you can just in a few lines get the results here. Actually sometimes we are just not working with one vector but with many so instead of using a small x i will be using a big x here to refer of the sets of all vectors and what you're computing is not just like a vector but an entire distance matrix like a pairwise distance matrix which consists of all the distances between the vector in x and vector in y.   So what you do here is that you can check you can check just the matrix x and compute all the operations kind of like independently for groups of vectors so you consider like smaller distance matrices here and this can be done like in parallel and for example you can do this in parallel using Java. So this was like kind of the previous implementation of K-neighborse search so the implementation as of 1.0. The problem with this implementation is that if you want to use big machines a machine with many threads is that it's not properly scaling so here you have like a simple graph which consists of like in x number of threads and in y the speed ups. So what you see is that as you add number of threads as you use big machine you do not get any speed ups. That's a case for kind of like different kind of data sets you get up to times two speed up. So why is it the case? So the problem is that using Python there's a few reasons for super optimality. Python was not meant to be used for scientific computing at first but only to like have like a natural language than bash. So the first problem here is that the execution of this algorithm is bound to the C Python interpreter into the GIL that is you have like a lot of costly instructions for simple operations like basic arithmetic. Moreover the execution just is limited to one thread at a time due to the GIL which might be removed or we don't know which is like a vertex on the interpreter state so this just comes with like performance degradation. Sometimes you may just have like bigger data sets for y when you are training data on like a lot of example and you only have like a few queries so chunking on x is not adapted you may want to chunk on y instead. What's what's the problem here as well is that we use Ilovel operations on top of our array so this is just costly because internally you create a new data structure so that you need to allocate buffers this calls malloc and this calls free to like under the hood and this just block at the level of the operating system so you're just like performing a lot of operations which are like long and which blocks and in the context of like parallelism this just come as an extra cost over the cost of like thread pool or process pool setup and theorem. Moreover sometimes with Python it's nice because you have like a simple language but you have only a few primitives and you can't really use like come up with like complex or like more details like a set of like executions. So the reasons or like the like we can solve this problem by using a few things so first we can get right out of the C Python interpreter and the GIL using something called or using a language called Satan so if you do not know Satan I encourage you to have a look at this this is like a super nice project and you can get really nice performance just by modifying your code we have like a few extra typing and other things you can make sure that you're not using the GIL with the no GIL close here so you're sure that you basically write C code and it runs like efficiently you can adapt your checking strategy so that you're not only checking on x but on y and you can choose whether you want to parallelize computation on y on or on x you can use instead of in a way you can use other data structures and algorithms underneath and even cool libraries that are they can be used for like sorting or in algebra and Satan allows using OpenMP which basically has a super low level parallelism and basically no cost or no overhead so it's even nicer you have a more like you have much more like directive with OpenMP if you want to perform computation but they are not all exposed in Satan yet it's possible with like some tricks but I'm not going to cover this so generally people the user of scikit-learn aren't like I don't know data centers or everything it's many people with laptops such as this one so this machine here consists of several things so as you can see here there's like it's a simple machine with like 50 gigabytes of RAM you have like four physical cores at the bottom and in between those two you have like those things called F3, L2, L1 and L1D and 1i those are like small sets of memory called cache that are used to store intermediate results so if you want to have implementation like performance you need to consider this and this is what we've done so firstly we try to make sure the data structure that we used are like fitting into the L3 caches and that they are only allocated once at the beginning so that's just like efficient you can make sure that like data structure are like properly allocated so that they are mapping correctly to the core as well you can use as said rollable parallelism using sitem for example we open mp and add a tail algorithms in data structure so in our case instead of using in umpire arrays what we can use are max-eaps this allow just having like a better complexity and in terms of like technically you can just use cbuffers and pythymetics and lastly generally people are when people are like considering this kind of algorithms they are mainly using the Euclidean distance case which can be decomposed as follows for the in terms of like distance matrices so in this case we have like three terms that you can compute two of them being computable at the beginning and can then be stored and you have like this term here which is a small little rectangle which can be computed efficiently using a blasphemy 3 operations so those are just like the most like most efficient algorithm that you implementation of matrix multiplication that you can have so using those tricks what you can now have is just like a linear kind of like scalability up to a plateau at the end so what you have here is that using bigger machines you can even have good performance there's just like I say this plateau here which can be explained by several things first the dataset relatively small for the machine that we use and it just like like the the parallel section of the algorithm is negligible compared to the sequential one so in this case you do not have speed ups as you add more threads because you want to add parallelism and there's like a small cost of like thinking of the the the strategy opening P and the small slowdown at the end so this is sometimes refers to as Adam's law so you need to get this into you need to remember this when you are implementing algorithms so just to make sure is it possible to see what happened on the hardware and know if this is actually efficient or if we can just speed this even more so coming back to this diagram here what we can have a look at are cache eats and cache misses on the L3 cache to see if it's properly used we want to have a high heat rate for the L3 cache we want to see if there's like a low low overhead for open mp and see python and lastly we want to know if the implementation is mainly of like the algorithm is many is like mostly used mostly spent into victorizing instruction so you can have a look at this using a tool called perf which is a really a simple tool to use which runs on like many kind of like programs so you can even run it on python and see what happens under the hood so I won't go into details but basically you just need to set up a few things here we want to record the cache eats and misses and the cpu cycle then you can have a report which eats everything and so if you have a look at where the cycles of the machine are spent there are many spent into here as you see live open blast p is the implementation of blasts by a project called open blasts so this is where we spend the time computing the matrix multiplication for the distance matrix there sometimes spend like pushing values on ips and the time spent into the c python interpreter and in open mp here is just like negligible so this is something that we wanted we wanted just like a super low overhead for c python and open mp so that's what we got and like the execution is mainly spent into cpu there's like the execution is like cpu there's no problem with like the memory if you have a look at the time spent in the core of the computation that is the small region here at the top in green what we see is that all the operations here are like vectorized instructions namely simd instructions like you can perform operations on like several floats at the time and this is what you get in terms of like assembly code here so this just shows that like the implementation is efficient for this case and this is what we wanted to do we haven't wrote it's open blasts for those open blasts is just a super nice project if you do matrix multiplication chances are that you are using open blasts under the hood but you maybe don't know about this so just have a look at open blasts super nice project and lastly if you have a look at like the cache every cache we can have a look at like the at the top the cache it and at the bottom the cache miss and what we see is that there's much more cache it here than cache misses this just show that we have like a high every cache it rates so that is we do not move like data structure between the ram and the every cache more like a lot so this is nice so you if you wrap up everything you can say that we kind of have a high confidence in quasi optimal performance for this kind of like algorithm so if you go back to this pattern here actually we can extend it to many other algorithms or many other situations firstly we can just adapt the data structure at the end and the operation that we use and operate on as well as call to other libraries like c++ library or other things to support other reduction in algorithms so that you can implement the radius neighbor search like this you can implement k-means like this you can implement value thresholding you can implement even kernel methods or it's just like you you just can do many things like this you can also work with sparse datasets sometimes you may have like one one dataset which is sparse the other one being dense or all the combination possible all the possible combinations and you may have like storm distance matrix or or things that's like not the clean and distance that you would like to support so in our work we have kind of like move to a modular class hierarchy to have the support for media algorithms back end so this is kind of like just a simple overview we have like the nearest neighbor search interface at the top which depends on two other interfaces and then it's just like satan has some restriction but it's possible to using some kind of like templating this patch calls to specialized implementation so here they are like it's kind of like a partial overview of the design but you can have all the the main operation done into this abstract pairwise distance reduction class and have then the reduction and the data structure be like specialized into subclasses here you can factor like some operation for example the matrix multiplication term computation into a dedicated like component so there's support for all distance matrix like this all the combination of sparse in this datasets pairs support for 3264 and everything but it's not he does not fit in like in signals like I don't want to show this okay so part of like this job or this work just is kind of like just the first step towards making new computational routines so we kind of have now a partnership with Intel to work on their technology and extend this kind of like pattern to like the hardware and their technology so this is not just something that we want to to do for potentially one vendor we would like to have kind of like general design so that people can even have like implement their own back ends if they want so this is just the start of a design projects there's like I can I really like add the reference to the slides at the end but basically those are like ongoing discussions this is just one part of like the preference work there are many other things another way to speed up implementation and and yet so this is just kind of like the the beginning for Intel they are working on new hardware which they call XPU which is the combination of like a CPU and a GPU with unified share memory so you can have like a set like most sets of like memory space between your CPU and GPU so that you can just like work efficiently sometimes for vector operation on the GPU and for simple operation on the CPU and that's it so the combination of differentiation is that improving cyclone performance is one of the next step for the library there are many others for this work we kind of like focus on the core pattern for the algorithms that are like prediction over parallel distances pattern is kind of like slow for so and are some problem performance yet it's possible to mitigate this using technology like satan open mp and c++ and like the next part of the world for the work is like work on hardware specific computational routines so that's it for me thank you for your attention and if you have any questions feel free to ask them thank you julien very impressive I'm sure we have lots of questions please go ahead yeah thanks for the talk is this on well I just came out of the pie arrow show were you there for chance but they showed the chunked array which can be zero copy no cost converted to an umpire race which already do this sort of chunking that you showed is there any chance that you might alleviate these problems with python by basing your back end a little bit on the pie arrow for certain of those operations that are paralyzed yeah so that's a nice question we have not considered a pie arrow as of now there are in fact many like project or technology that exists to perform these kind of computations so there's a project which is called pycaps oh there's not any access coconut is connected to the internet yeah I can look at it later well it's it's a project basically which yeah yeah so this project here here this one yeah so this project really is dedicated to perform these kind of computations on GPU but for CPU we haven't found any kind of projects we haven't looked for a pie arrow yet but yet it may be possible to integrate this it's just that we don't want to have like too many dependencies we might want to have like a plugging system so that if people want to have specialized implementations they just can like eventually at the end have something like pp install scikit-learn brackets pie arrow or bracket intel or bracket whatever um so the transition plan the machine but for pyro we haven't got each other thanks that's thanks for your suggestion hey thanks for the presentation I was really cool um especially seeing how you improve k nearest neighbors I think that's one of the first things that new people who start out with machine learning work and I guess scikit-learn is like the one thing people go to to learn and get into machine learning so really impressive I'm wondering what other estimators are on your roadmap for improvement okay so thanks for your question so what I've covered here are kind of like low level performance improvement so that is like we are mainly writing it ourselves but there are other ways to improve the performance of algorithms or estimators in scikit-learn one of them is kind of like trying to use the standard which is the area api which is kind of like a standard for tonsil library so this way we won't need to rewrite all the implementations of algorithm we just would have kind of like a high level api for like area operational tonsils so there's actually someone the team thomas will work on a proof concept to speed up linear discriminant analysis you can get up to times 40 speed up on that's a gpu we've like no change like to the like the implementation of the algorithm or like didn't change so this is one part of like the performance work that we are going on but it's kind of like high level and it's a matter of like getting into a design for all the tonsils library so it just takes time we i think people like in the community are working on many things if you want to join the adventure just feel free to but it's just like that we need to make sure that the designs are correctly set so that we do not do any mistakes for this case they are like libraries that are using sometimes api's that are a bit different so this creates some kind of like friction but yet i think there's kind of like room for making sure that we get the best performance especially for gpu because as of now sector on many has been relying on on them by but there people are moving towards gpu so we are like working in this direction as well cool stuff thank you thanks for your talk i have the obvious question namely when is it going to come out so how long do you what is your estimation of when these changes are going to be implemented which one exactly um the power's distance computation okay so uh so for yeah i should have been clear i guess so for this um for this one yes it's already uh in second one that one so not entirely it's it's the case for like the main kind of like the main use case that is the k-neighbor search using nuclear instance on this dense array so we are currently working on uh extended to uh float float 32 and to kind of combinational sparse in this datasets it's mainly um like we're going to work probably it would be in sector one and two depends on whether three uh it's more than like we are working for people uh that are interested in satan uh the bottlenecks mainly uh peer reviews and uh and debugging and benchmarking and satan is kind of like nice between the as well like people we are working on many things and uh that's it so i would say something like safety plan one or two on what the three really have kind of like uh much more support for this kind of like pattern okay yeah thank you just one follow-up question um so i had problems um especially also with rum uh when i used my own distance uh when i used my own distance matrices like that are non euclidean or something then i also with a lot of um algorithms i had uh rum issues um are you are you working on that as well or is this um yeah so i was just wondering about that i do understand that you have a lot to do okay what was your case exactly you you had like your distance matrix a custom distance matrix or yes exactly a custom distance matrix and i constantly run into uh ram issues if i do that so okay um i think uh this is something i'm interested in so if you want we can just like discuss it um potentially there are like patterns in safety plan which can be improved uh not just for this case there's a finger case for uh agglomerative clustering which is compute like a distance not or the dissimilarity distance something like this uh and sometimes people just have like them and we crash because of this but like if you have a problem with like a pattern like this let's discuss this at the end yeah i'm happy to thank you okay i guess there are no more questions so around the plots for julian again


оду nil ˑmene, ˕rˈmeneq, ˙g˙r ers˜el˺dˡr˺t˙, ˈk˙l˜l˺dˡrˉt˕r˜t˜t˙. ˈ oblig˙l˜m˙ distingu...  Our last four minutes won't will remain as one of these games we want. So, if you had just finished filming very many games,ever j kayil Char NS ben jane jane jane jane jane asInterfoni n'apkwo ekjotei n'fapk'o l'harmadvasit han, n'aikkwet n'aikkShowj speshen o't kanun di d'a'jkwet o'rk протe o't bw'i'''folo k'an u courso n-eris in tnopoke d'y'opin d'y'opin d'y'opin cox a' kik d'in n'aikwet d'y'opin d'y'opin n'aikwet n'aikwet n'aikk d'y'opin y'o k'o k'an ంస్ిక౛ాట్యన]. కెట్ప్ర౗ఠంక్టాచత్ప్. ఇవ్బరింట్సనికెట్ఱిస్యృంక్నం. ట౅ట్క్నుటింది నవచినిటియానేల్దాతానం. spells uha they endide well uh So, we're going to see three emotions that are actually going to be in our deep thought about that. We're going to see, of course, that we also have a lot of frustration, not only at the end of the year, but at the end of the year, sometimes it's worse, sometimes it's on the basis that we're going to have to teach it. But the insistence about teaching it one piece, that either we're going to say it by name, that those things are extremely difficult, especially the part that's between the non-uninteligial, the part that's between the needs and the subtleties, where even if we see the emotions that are going to be lack, unless we can assume that we're going to have to teach a few problems. The reason we're thinking about the conflict in the case is because we're thinking so much about it. We're thinking about it. There's something that's like a problem which is very difficult to see. It's thinking very patiently about it, mon sre conditioning of law's nd nd d d o ts pou w pa t o mou d' pa, nd n o ts pou w pa t o mou d' pa.  Winter and other environmental26 bowling games led to network למ� prestigious sfx benchmarks and tourism. The net actualBean conservativeness is forming by its fire. The results of Network, whose their work has been researched so widely, Ne amo le systematically categorit v минут on ty.  Madameả ژ Be wie Bam nd right. nd right. nd right. nd right.  discours Robert  dhima  dhima  dhima  dhima  dhima  dhima  dhima  ddon, mo dam  du Olympics  diff增  diff  ime d variables Swa nan ro ry  belgka nensaksi dzik  Supposeke 15 wurde mi  du son sak xx nx co w m58 nx f f는 nie jinowek구� jne yupp kalwa sa po nosama paina joy. but you know also of course very well about the disease among the people. This is so trap for us and there is no ground to say it on life. But for us, it is very well told. There is no ground to say it on life. It was so important we were forced to이� Antes Nun or created this case here.ively ham dyesha d'hac thought w wola d'hac. So, according to what the students think, the only common experience is that some of the kids on the other tests are samt the changes from the trial of the work in the cases I've tried, are the types of tests. But if you've done a test, remember that. But if you've taken the test from them, you don't want to know psychiate, so you can talk.  This is what's going on. It's so intense. It's so intense. It's really intense. It's actually very intense. the act' lighthouse is how doys you jan Erm such for yas duty and tasks stays in it and the work is not going to go to the efficiency. They just keep on working expected sorry. Love heritage and stories and madam will work for good. Jesus! Loveeddar ands virtues. c mature own m n