Great, so thank you Irene for the wonderful introduction. I want to make a quick small disclaimer that a large part of this talk is going to be color discriminability when you're dealing with projectors, especially when you have very large windows. Sometimes that might not go as well as you planned, so apologies in advance if there is any complications with that. And so I'm really excited to give this talk, especially because a lot of the other talks that we've already seen have briefly touched on color, and I think it's one of those areas of visualization that speaks to the cross-sectionality that is at that open viscone, right? I mean there's a whole lot of different ways to view color and to interpret it, and I'm hoping to cover a little bit of those perspectives throughout this whole talk. And before I get into things, I also want to mention that a few years ago Robert Simmons who spoke yesterday also gave a talk on color, not covering any of the same material, but it's also I think really complimentary and he covers a lot of good material that I won't have time to talk about today. So that being said, the aim of today's talk is kind of taking aim broadly at this divide that often happens when we talk about visualization design. And it's this constant battle between what we know and what we do. So the supplies and research, you know, researchers often publish papers and sometimes those live in the ivory tower and don't really make it over there, but I think it works on a lot of different levels, right? I mean we could as designers that are educated know that some things are really effective, but in our day to day when we have deadlines so that we need to be meeting, we might not always do what we know is most effective. So really what I'll be covering throughout the rest of the talk are just some examples of how we can help bridge this divide by applying theory through computation, and specifically of course for color. So with that in mind, there will be three different projects all kind of thematically connected through this that I'll be talking about. So the first will be a D3 module that I made that helps us calculate just noticeable differences, I'll be defining that in a little bit if you're unfamiliar. And that is online at the address. The next project is a little bit meteor, it's called Color Goracle, and that is a design assistance tool for making categorical color palettes. And then the last will be another D3 module that I've made which implements this new, kind of new-ish color space that is a new successor to LAB space which we heard about earlier in the day. Great. So first let's just cover just noticeable differences. And before I get into that too, I want to mention that even though that these are specific for maybe D3, a lot of this concept can be just broadly applied to any tool that you normally use. And before I get too far into this D3 J&D package, what I really want to talk about first is just involving one question. And it's a pretty simple one, right? What does it mean for visualization design to be effective? And even though that it's simple, I think it's a really interesting question to consider because if I asked this question to everyone in the room, I would probably bet that I would get very different responses, depending on what your background is, what your interests are, etc, etc. So that's kind of interesting to consider. For the purposes of just right now, we're going to focus specifically on color discriminability and how that can relate to effectiveness. So hopefully, great. So all those colors look discriminable. So there we go, done, kind of. So when we talk about discriminability and we want to precisely measure it, what we end up doing is use perceptual color spaces. So these are different than RGB color space which your monitor uses, which cameras often use. And instead, it measures color with lightness, redness to greenness, and yellowness to blueness. And we also have heard this a little bit earlier, but this is roughly based and approximates opponent color processing. So we have cones and rods in our eyes, and from that we get a signal that roughly corresponds to red, green, and blue. And then what your brain does is it transforms all that through process and out you get these three different color channels, right? Lightness, friendness to greenness, which is A, and B, which is yellowness to blueness, great. So when I talk about just noticeable differences, what I'm really talking about are minimum differentiable color distances, right? So if we take any two colors in this perceptual color space, are they far enough to be differentiable? So you can just see examples in the bottom as we start with the same color and then we gradually get further and further away from that. So when we talk about just noticeable differences, there's actually a lot of different ways that you can measure this. And there's a lot of papers and a lot of different perspectives on how this could actually work. For today's talk, I'll just be looking at one of those. And as I was saying, since we have this perceptual color space, we can calculate just noticeable differences in CIE lab, perfect. What about this? Still pretty discriminable, that? All right, so distance is really important, but there's also this element of size, right? So distance is necessary, but it's not sufficient. So luckily for us as practitioners, people have researched this. So, Maureen Stone, Daniel Abercephier and Vidya Settler at Tableau formalized this relationship in CIE lab and they published a paper about it, which I have a link to at the D3JND module website. And luckily for us again, they were looking at visualizations kind of application areas. So if you have bar charts, the physical area that colors and coding is gonna be much bigger than if we have this hollowed out scatter plot. In addition to these kind of more theoretically abstract squares next to one another and if you're unfamiliar, sorry. And then the results from all of this get boiled down into this noticeable difference function which takes in two arguments. One is a percentage, which you can think about is how conservative you wanna be when you're making things. And there's also this size, which is not measured in pixels, but in visual angle.  So that gives you some kind of sense of the scale for that. And then based on this equation, you plug in these two parameters and you get some kind of distance along each axis that you would need to satisfy in order for colors to be discriminable. So just to give a little bit of an intuitive sense for that. This is online, but just record a video. And if you look at the top, you can see the arguments and what happens when you lower the percentage. The interval goes down, the colors become less discriminable. Or you increase it and they become more discriminable. And this is just like a linear scalar for this percentage argument. You can see on size that this is kind of like a diminishing returns curve, right? So if it's a really small mark and we make it a little bit bigger, we get a much greater difference in scrotability. But that kind of evens out after a certain point. I'll just let this finish playing. Perfect. So how can we actually apply this into design, right? So I think one particular way is actually considering color encoded area size in the graphic. And I've actually talked to a few people yesterday and today that we're talking about the difference between designing for desktop and mobile, right? So these are very different situations and maybe you use the same pixels. But when you look at the visual angle, the appearance is going to be completely different. So I think that that's a really important consideration to take into mind. And something that using Jandies could actually help with. The second one is, this is of course not a one fit all scenario, right? Various situations call for various levels of discriminability, which is this percentage argument, right? So if you're making an infographic or if you're making some kind of tool to have emergency response management, those are obviously very different situations, right? And they call for different levels of conservativeness. If you were to use this module in D3, all you need to do is load it and you get access to the function that I was just talking about earlier, this ND function. So you can just give it two D3 colors, optional percent in size. And you get a bool, true or false, are they noticeably different? And similarly you can get this JND interval, which gets the same thing. So as far as how this connects to the broader landscape, I'm gonna move on to talking about this tool called ColorGorical, which is joint work with David Laidlaw, who is my PhD advisor and Karen Schloss, who is a color perception researcher that is at University of Wisconsin, Madison. And just like I was leading D3 JND with this kind of overarching question, I think it's also interesting to look at categorical color palette design with another kind of broad question. And that is, what do you do when you need to make your own categorical color palette, right? And again, I think this is, and we've actually heard this before too, it's very situation-dependent and there's a whole lot of different constraints. But the way that ColorGorical approaches this, and I would argue one way to approach just categorical color palette design in general, is by just trying to define some balance between discriminability and aesthetic preference. And that's great on the surface, but it also requires a really deep knowledge of color science, which a lot of people don't have. And even the people that do have it, like me, often don't spend so much time digging in the weeds to try and get at this balance. So what ColorGorical does is tries to do away with a lot of that, again, kind of bridging the divide between theory and practice, by applying color science to reduce design boundaries. And I'll get into the specifics of that in just a few slides. So for this part of the talk, I'll just briefly go into the background and focus a lot of time on how ColorGorical actually applies this theory to create usable palettes. And actually compare how this application applies to industry standards and talk a little bit about just ColorGorical as a case study for computational design assistance tools. Great, so if you were to load ColorGorical online, you would see this. The link's right there, if you actually do, hopefully it won't get a hug of death. And you'll notice that the very top is just the generate button and right after that is the number of colors and these three sliders. So these are the main functionality of ColorGorical and how it works. So users can define their own situation-specific importances of discriminability and preference and without having too much background knowledge about what each one of those things does. And under that is a hue filter. And I will just show a quick video of what that would look like if you were to interact with it online. Great, so as I was saying, you can change the number of colors. And under that are these sliders, nothing fancy. And then under that, as I was saying, is this hue filter wheel, which you can create multiple hue selections. So this is useful if you only want to look at particular colors. Let's say that you have some kind of brand identity, right? Or if you just don't like certain colors. Below that you have lightness range and you can also add certain colors. So if you do have a brand identity or some kind of style guidelines, then you can incorporate all of that. What that also means is that you can build off of existing palettes as well. So here I'll just generate a preferable color palette so you can see an example. And I'll get into how all of these sliders work in just a few seconds. And right here then we'll just fast forward and look at name difference, see what that looks like. So you can kind of get a qualitative impression already that dragging these sliders does reduce result in various appearances, right? And this last, I think, I'm just, yeah, increasing to eight colors. So how does this actually work, right? It's actually pretty simple if you dig into the code. I purposely made it so that there's not that many dependencies at all, both for if you do want to tinker with it or just for longevity. But as you just saw in that video, all of it boils down to manipulating these three different sliders and the number of colors. And you get some kind of output, right, that the user finds. But a really important first starting place is actually looking at how these sliders are defined, right? So what does it actually mean to be perceptually distant or have a pair of preference, right? So as I mentioned, two of these sliders correspond to discriminability and the first is perceptual distance. And this uses a CIA lab color space that we were just talking about and it's just Euclidean distance, right? So how far is point A away from point B? And name difference work uses research done by Jeff Herr and Maureen Stone that actually uses XKCD color survey data, which I always think is kind of funny. They have 153 color terms and then they look at histograms for those color name associations with every single perceptual color, right? So in this example, you can see that this blue color and this red color have very largely different histograms and have very large color name differences. Whereas this dark blue and this light blue have histograms that overlap, so there's a smaller color name difference. And these get at two different, very different notions of discriminability. Right here you have this perceptual notion. But for name difference, it could be useful if it's a different other applications, like if you're giving a talk or things like that. The third slider is for aesthetic preference and it's pair preference. And this is actually based on a very large scale study that one of my co-authors, Karen, she lost it at Berkeley. And by doing a lot of in-lab evaluation, she was actually able to quantify on average, kind of caveat, what people find preferable for colors and pairs. And so she found that in general, this could be predicted by looking at what are more blues than oranges. You can also look at similar hues and different lightnesses. So just to give concrete examples of that, what that looks like for preferable colors are combinations like this, right? So you have very different lightnesses, the hues are basically the exact same, and they're all cool. For imperforable colors, you might find this preferable, but on average, it's isoluminant, so the lightnesses are the same. They have opposite hue and one of the colors is very warm. Right? So you don't actually use these things. And the answer to that is pretty simple. It's just a weighted sum. So these sliders get converted into percentages from 0 to 100%. And then for any two colors, color-goracol will just compute the perceptual distance, the name difference, and pair preference, apply the scalar, and then you get this color pairs for, right? Great. Unfortunately, there's this other constraint that we need to consider. And that is an assumption that palettes are only as good as their worst pair. So as you can see in these charts, we just swap out one color, but we see very different appearances. This green and this blue are very hard to discriminate, and with aesthetic preference, adding this kind of mustardy yellow on average would probably be considered less preferable. So while color pair score is important, we need to introduce this new concept of palette score. And that's just formally, you know, how would adding a new color C change palette P's overall score? So that's just a random, possible color pair score between this potential new color you might want to add and what's already been selected. So that feeds directly into how color-goracol creates all these things and applies these color science principles into this design assistance tool, right? So if you have sliders, a number of colors, great. You have your output palette. In the middle of all of this, color-goracol will always pick a preferable first color because if you can pick any color, you might as well pick one that's more preferable or more likely to be preferable. Between picking palettes that satisfy this palette score and then deleting any non-noticable difference colors, which used just the noticeable difference function I was talking about earlier. Under the hood, color-goracol also makes 10 of these and it only returns the most preferable since if you can have all of these palettes that satisfy this user-defined balance, you might as well pick the one that looks most preferable. So to do this effectively, color-goracol pre-computes all of these pair preferences, as you can imagine, doing that for all colors in color space are probably pretty computationally expensive. And then after that, it'll filter to only the most preferable pairs, randomly sample from that, and you have your first color. And as I was saying after that, it's just this iterative process afterwards, right? So you have this palette score that's defined by the user as far as the relative importances and their own contextual requirements. And you calculate the palette score for all remaining colors. You filter so it's the exact same process and then just randomly sample from that and there you have your second color. And this gets repeated as many times as you need or until there's no more colors left in color space. So all this is great in theory, but we're also running under the assumption this actually works. So the first experiment that we did, actually validating all of this and also just testing the usefulness of these color design assistance tools in general, at least as they relate to color, is seeing if these assumptions map, can we actually successfully take what we know from theory and apply it into practice? Increase the sliders for perceptual distance. Do we get lower error? If we increase pair preference, do we get higher preference ratings? And to do that, we did this large mechanical Turk survey and we had this discriminability task or they're more left or right side of one color. We did a preference rating task where people just rated these from not at all preferable to very much preferable. And at the end, to just briefly go over all of this, we did find that things were consistent, right? So if you did increase perceptual distance, you got lower error. If you increase pair preference, you get higher preference ratings. So I think this is really cool, right? So we can successfully apply theory and get a design assistance tool. The other caveat, of course, is this thing actually useful compared to what people already use, right? So great. From a research perspective, good job. As far as practice, maybe. So the next step after this was actually comparing what we've created here to industry standards. And to do this, we went as hard as we could and compared against Color Brure for three, five, and eight colors. We compared against Microsoft. We compared against Tableau. The old Tableau colors. We can talk about how it compares against the new color if you're interested. And we also compared against this random condition which we thought would be a good baseline but also simulates someone who just is kind of randomly picking discriminable colors without too much knowledge, right? And I would argue that maybe the top three, maybe all four, broadly encapsulate what most people use when they resort to using colors and visualization. When we're actually talking about measuring against Color Gorkle, we used all of the data from Experiment One to figure out what settings generated the most preferable palettes, what generated ones that were preferable, but still pretty discriminable. And we used those in these comparisons for this experiment, right? And as far as what this looked like, I was basically the exact same experiment that I just told you about, right? So we tested discriminability. We tested preference rating for three palette sizes. Just went over the different palette sets. There were six of them, and then we had four versions per set. So a decent number of trials per person, right? And we went into this with predictions that were actually based on linear regressions trained with Experiment One's data, so they were pretty precise. And based on this, we thought that for discriminability, Color Gorkle should be pretty much middle of the road, right? It should have comparable discriminability. And as far as preference ratings, it should be typically more preferable. So when we actually look at the results of this experiment, I'll just start with what Color Gorkle results were. Here you can see the low error in orange, the preferable results in red. And when we introduced Color Brewer, it's basically the exact same as this low error setting, which is just already a really cool first result, right? And what about Microsoft? A little bit worse. Tableau. Basically the same as low error. And random. Great. So from all of this, we looked at the statistical analyses, and we found that Color Gorkle's overall comparably discriminable, which is great. You know, this is on-the-fly-created, customized pallets, right? And they're as good as these industry standards, which are carefully crafted and are widely used. So I think that's great. But we also need to look at this second bit, right? This overall preferable ratings, because if you remember the whole motivation for this work was to not just create discriminable pallets, but also ones that might be preferable, right? Give the power to the user to find their own balance. So to do that, we're just showing the Color Gorkle results first, just as before. Let's add in Color Brewer. Not too good. But very discriminable. So we're still good there. Microsoft is basically the same as low error. Tableau. And random. So here again, we find that in general, Color Gorkle's results are typically more preferable than what is currently used in industry standards. So the result of all of this and the big takeaway is that Color Gorkle is comparably effective, which I think is a really interesting case study into the potential for computational design assistance tools. That said, I think one of the strengths with these tools comes with the fact that they can offer more bespoke, customized options for designers, right? One of the difficulties when you're creating these color palette defaults is that you need to create pallets that are used by literally every single possible scenario that exists. So I think that that in and of itself is one reason why using these computational design assistance tools could provide really big benefits towards designers because it allows them to safely, maybe quotation marks safely, create pallets according to their own heuristics without being constrained by creating pallets that apply to every single situation, right? So the takeaways from this, if you want to boil them down into three things. The first is that we were able to define this user balance between discriminability and preference, right? And then the first experiment showed that applying theory from color science actually results into pallets that change the discriminability and preference of users. And at the end of that, we also found that this whole process is comparable to what people are already using. And going back way back to the first part of this talk, I think that it also shows how we can reduce design expertise requirements to make pallets, right? Because the current state of the art, the level of expertise is really daunting because you have to sink a whole lot of time and look at where colors are in color space, and this does away with a lot of the overhead for that. So after kind of summing this up, I also want to touch briefly on this other D3 module that I wrote, which is on this new color space called Camo2. And when we're talking about color spaces from a color science perspective, what we're really talking about is approximation and trying to effectively approximate how we perceive colors. So when we talk about CIE lab space, which I've been using throughout the whole entire talk so far, what we're really talking about is the assumption that this space should effectively model how our human eyes see color, right? So if we just took Euclidean distance, this should map roughly the distance that happens in our head. Unfortunately, if you've ever used a space, you know that that's not entirely true, right? So it's a little bit more complicated of an equation. So this is one kind of driving research goal of color science, and I think would be really beneficial to start incorporating more into visualization design. So really, you know, how can we change the spatiality of these perceptual color spaces to better approximate how we actually perceive color? And just as a fun anecdote, I started implementing this because of problems in color agorical. So color agorical favors sampling from the blue region, but for some reason it was running out of colors really quickly from that, and I was really curious why that was. So if you're unfamiliar with Camo2, all it stands for is a color appearance model created in 2002. UCS just means it's a uniform color space, and it uses axes that are basically the same conceptually as lab space, right? So we have this lightness axis. We still have greenness to redness and blueness to yellowness. And you can see already that it looks a little bit different. One of the reasons for that is if you look at lab, it has this really big skew downward to the right, and this is what I was talking about when color agorical was artificially running out of colors. So we can see that the blue is a little bit different from the blue's quickly, because all the blues were being shifted down into this bottom right quadrant where they should be more central bottom, or maybe to the bottom left. And just to show this more concretely, here's a little video which shows approximate volumes of each one of these color spaces, right? So you can already see from this that the volumes look very, very different, right? We get a little bit more of a spherical shape with Camo2 UCS than CIE lab. And this ultimately gets at the ideal of having this kind of Cartesian grid spatiality in an ideally uniform color space. So this is all great in theory, but what does this actually mean for designers and how could this influence design practice, right? So I think that maybe the biggest difference is that when you just talk about simple linear continuous color scales, right? So these are just your typical default color scales. You end up having very, very different looking appearances. So on the bottom of these are just what happens if you interpolate in RGB. So if you were to load things in a Photoshop, that's what the gradient would look like. Most people use CIE lab, which is the middle band. And the top is this new Camo2 UCS color space. And from this, it's strange because lab were all brought and taught that this is perceptually uniform. This is the gold standard. For some of these, the Camo2 interpolation looks completely different, right? And whether it's good or bad, you know, it still needs to be empirically tested, but at least for right now, it gives designers a little bit more freedom for how they might want their charts to appear. If you're actually going to use this in D3, the functions are modeled exactly after the lab functions and HCL functions, so you still have your JAB declarations here. You can import colors. It's basically the exact same. And you have so lightness, chrome, and hue versions of all this. So there is one caveat which I briefly alluded to, is that evaluation is needed. So the researcher in me still have my research hat on. This is a largely assumption-based thing saying that what we know from color science will be useful for visualization. So I think there's a lot of useful visualization research open questions here. But on the brighter side of things, Matplotlib uses this color space for the color scales. And these newer scales, all of them are created in this new color space. So there is precedent for using this. Another great contribution, too, is as far as I know, this is the first implementation in JavaScript of this color space. So I think that's really exciting, too. So just wrapping up a lot of these points. From the first talk, we were looking at just noticeable differences, and the big takeaway from this is distance is important and was a huge motivator for how color-gorcal picked colors. But you also should consider size, especially if you're developing visualizations for multiple different types of platforms. What does it look like on mobile?  These are very different considerations. For color-gorcal, it was kind of a case study into how computational design assistance tools can be effective. They're comparable to industry standards, allow a little bit more bespoke customization. And with this new color space we should use color spaces knowledgeably and consider other options that we might have. So lab is obviously really important. It's not going anywhere. It's proven to be effective in a lot of situations. But could you get comparable results using this new color space? It's an interesting question. So if you go online and check out any of the source code, everything's open source or the documentation, I have tried to structure all of this so it reads more of like a teaching manual. And I want to close by just offering this, I think more of a perspective, but open source is necessary to bridge this divide between what we know and what we do. But we should also think about accessibility, too. And I think a lot of talks at OpenViz have really gotten at this point, and you can talk about this whether you're designing for learners, or if you're looking as a researcher, how do you make these applications more accessible to practitioners? There's all sorts of different ways to do all to think about how this relates to color, but also design effectiveness in general. So with that, I'd just like to say thanks, and be sure to check out the stuff online.


Hi everyone. Thanks for joining. This is Keerthi from Texas Instruments. I will be presenting today's session on tweaking the Linux boot flow for an accelerated ADAS experience. A little bit about us. Both Bridgesh and I joined Texas Instruments way back in 2007-2008. So we are about 15 years in the same company. Bridgesh is mostly worked on the real-time operating systems and camera vision use cases. He's the expert in that. And I have predominantly worked on Linux power management, thermal management and boot time optimizations. So I'll start off with the agenda for today. So I'll explain what is the actual problem statement that we get from our ADAS customers. Then before actually diving deep into the software layers, I would want to touch upon the SOC hardware architecture, which is typical for any ADAS SOC. And then I'll deep dive into the various softwares that run on each course, starting with vision apps, which I'll explain in some time. The default boot flow, the time it takes to boot to an ADAS use case with the default behavior, and how we tweak the actual boot flow. What is the impact of boot media on each phase of the boot? Then followed by the optimizations at various boot stages, including bootloader, Linux and file system. And then I'll touch upon how we had to redesign the ADAS use case to maximize the parallel processing on various course. I'll wrap up with results and then giving a generic summary on how to accelerate ADAS use cases. On the problem statement, so basically it's to get the ADAS use case up and running as and when the car starts. So the time is as soon as possible. So it's of the order of two to three seconds. And Linux is expected to be the one that drives that and controls all the hardware accelerators and the processing course. Of course, we have heterogeneous course to execute in parallel. Some of the most commonly used ADAS use cases that need early boot time are 360 degrees around view for you to get out of the parking and then auto valet parking is to actually get into get a parking slot and then get inside that early camera use case for the backup reverse camera, early display and camera mirror systems, the CMS systems. Typically, we get boot time optimizations on these use cases. Okay, before I jump into the software side of things, I just wanted to touch upon with a typical ADAS SOC. This is TDA for women from the Jacinto family of SOC. We can see that at the top level, there are green boxes. There's a main domain. There's a wake up domain and there's MCU domain. Typically, these are voltage, these are called voltage domains, which are fed by individual voltage domains. The main domain is hosting all the compute course, the big arm course, dual core H72, the C7X DSP and the C6X DSP and some R5 control course. The MCU domain hosts the R5 dual core R5 subsystem, which is actually the boot master.  So you can see that there are a lot more peripherals that are getting controlled by these cores and used by these cores. So with this introduction, let me quickly jump into the deeper details. So for ADAS use case, we definitely need some sort of real time computing. So we use real time free ADAS, real time firmwares. Linux is mainly run on the application ARM core and there is some secure core that runs the security, foundational security firmware. So mapping the exact SOC view, main domain. So I'll start off with the MCU domain, which hosts dual core MCU R5 of typically run in lockstep mode. This is our boot master. There's the one that is getting out of reset by the ROM code. And then there's the Cortex M3, which is our security controller, which runs the TI foundational security firmware. And there are a bunch of cores in main domain, which is R5 of control cores, ARM A72 cores, C7X, which is the DSP and C6X. So this main domain typically hosts all the compute cores. MCU is the startup core and M3 is a secure. So MCU is R5F is for safety. It's in lockstep mode. M3 is the secure monitor and then all the rest are compute cores. We can see that apart from A72, which is the Linux, which is running the Linux and M3, which is running a security firmware, all others are mostly running RTOS, which is free RTOS for vision acceleration. Before I get to vision apps, a quick run up on the primary responsibilities of Linux, which is running on A72. All the storage is handled by Linux. The MMC, EMMC, which hosts the root of S is controlled and initiated by the Linux. The CPSW IP, which is the networking IP, which we need for real-time Ethernet use case, is also controlled by the Linux. And the most important part is the Linux has the remote proc drivers to accomplish IPC communication with the other cores that I mentioned, the C6X and C7X DSP and the R5F. Linux also controls the graphics accelerator. So the graphics driver is a module in the Linux system. And the console, which gets all the application logs is also controlled by Linux. And most important, the Linux has the trigger to the Adas application. So the start of the application is triggered by Linux. So this is a quick run on the Linux role. So Codex M3 pretty much controls anything and everything related to the SOC on the TISOC with anything and everything related with the foundational security. So M3 being a relatively smaller core does not have the compute power to do complex cryptographic operations like AES, SHA-512 and whatnot. So we have a dedicated security accelerator IP, which is a hardware accelerator for doing all the cryptographic functions. So some of the key roles that M3 does is to do the foundational device security, secure boot. For any high secure samples, we'll use authentication to boot the boot binaries. And that authentication is done by the M3. And it also plays a pivotal role in anti-rollback protection, wherein we can make some of the bootloader versions obsolete and program the effuse with the latest version so that no security attack can be done from the previous versions of the boot binaries. And it also supports derived key generation for support of third-party stacks. So this on the TI foundational security. Now let's come to the actual vision application. So what is vision apps? So vision apps is actually a middle-level framework which sits in between the driver and the applications, and which can pretty much do any of the vision-related application. So I'll start off with the bottom-most row. Bottom-most row has all the cores that I spoke about before the control R5F, the C6X DSP, the C7X DSP and the A72, which runs Linux. So right above that is the operating systems that run on each of these cores. Since these are mostly related to the vision acceleration use case, all three of them are running the free autos version. A72 is like the master, so it is running the Linux. On top of the autos, all of them have flavor of IPC driver that runs so that each of the cores can talk to each other. On the R5F, we see that since it's a real-time core, a real-time control core, all the time-sensitive peripherals like the camera capture display drivers are being owned by the R5F. C6X and C7X are known for their parallel processing capability. So all the deep learning algorithms are running on the C7X and C6X. The TIDL layer is acronym for TI deep learning. There's all the deep learning algorithms that run on this. So all of this are sort of, we have a middle-level layer, OpenVX, which is common to all of this. And all of them have been wrapped up by OpenVX layer, which is the vision apps for TI. And on top of that, any customer can develop their own applications and the deep learning models can run using the vision apps. And on the Linux side, any applications and fusion algorithms could be run. Now a bit about what is this, why vision apps? So as I explained before, vision apps is a middle-layer framework, which is based on the TI OEX or the standard OpenVX framework for TI platform. This framework supports heterogeneous architecture. So it integrates different components in the form of a directed acyclic graph, a DAG. And it realizes the system use case of our vision processing. So the biggest advantage of vision apps is that it supports pipelining. Basically, multiple cores can run multiple functions in parallel, so that we have maximum utilization of the hardware. This also supports and manages real-time peripherals like the cameras and the displays. There's a very good support for this. And between different layers, we need buffer management. We start passing buffers from one layer to the other, one function to the other. So this gives a very simplistic provision for passing buffers from one layer to the other. And it allows running multiple dependent and independent components on the same core multiprocessing. I'll take a simple example of one directed acyclic graph. So here we can see that the camera is feeding in the RGB format frame. And then this is taken as input from the color conversion function. In the OpenVX terminology, any function that is done in a core is called kernel, not to be confused with Linux kernel. So I'll call it function. So the color conversion function takes input as RGB frame. This is running on C7X or a DSP. This is now passed on. And it gets converted to YUE frame, gets passed on to the channel extract functionality. And then gray scale frames are extracted, which is then fed to the image pyramid, which is run on a specific TI hardware accelerator called vision processor accelerator or the VPAC. And it then gets passed on to the optical flow. And then finally the Harris track algorithm is run to track the key points in an image. And the output is rendered on the display. So typically a vision application like a 360 surrounded view or a auto valet parking will be a composition of multiple such graphs running parallel and seamlessly on multiple cores. And the other advantages I've mentioned in the next slide. So we already have integrated basic surround view application, like another deep learning algorithms like auto valet parking, camera mirror systems, and early camera use cases. It already has a sample implementation of auto exposure and wide balancing for ISP processing. There's very good support for vision apps on free RTOS and safe RTOS for all the remote cores like C6X and C7X and R5 of course. It also supports HLOs like Linux and QNX as the host core for on A72 or A53. And some more highlights on the vision apps. It's very good at scheduling graphs. So the directed acyclic graphs. Based on the availability of the hardware accelerators and the cores, different cores, the vision apps can be used to split the various functions in the graph and execute them in parallel on different hardware cores, taking advantage of the parallel execution. As mentioned earlier, it gives very good abstraction of memory management functions. It abstracts out cache maintenance and other reuse of scratch memory. One thing that I spoke was it can actually split based on the availability of hardware accelerators multiple functions across multiple cores. Even the converse is true wherein if a graph is big and if it needs to be done in one core or one hardware accelerator, the entire operation can be clubbed merged into one kernel or one function. And this enhances memory locality and loss of any kernel launch overhead. And the other advantage is that it enables data dialing. Instead of acting upon one big image, we can actually take advantage of the data cache size and the local memory by splitting the image into small tiles and these functions get executed on small tiles, getting better use of cache. With that, yeah, so typically fresh out of the SDK, the boot flow is somewhat like this. As I mentioned, the ROM code brings the MCU domain R5F out of reset first. It loads the secondary program loader or the SPL of the Uboot world. It could be also any AtoS boot loader, which could be more lean and mean. This brings the MCU R5F is the boot core, which brings out all the other cores. For convenience sake, I have just mentioned the main domain R5F and A72 here. The R5 SPL first brings the A72 out of reset and loads the ARM trusted firmware and then loads the A72 SPL and then it loads its own firmware that it needs to run for vision applications onto itself. This is a device manager firmware. Then SPL loads Uboot onto itself. Then the Uboot, which is the standard boot loader for Linux loads the loads all the other core binaries for C6X and C7X and main domain R5F. All of these are loaded here. It typically takes about two seconds to get to Uboot and then load all the other cores. Then once the other cores are loaded, the Uboot loads Linux kernel and then we get a full-fledged file system in about 20 seconds. Just to remind you, all of this is being done on MMCSD, which is probably the most common storage media for both boot media and root FS. And then once the final file system is up and running, we run the surrounding application which actually starts initializing the camera and whatnot display and then it takes about another five seconds. So typically it takes about 20 to 25 seconds to get the use case. This is not done to like, it is not an inoptim, of course it is taking a long time, but it is done to showcase all the hardware. So here more or less all of the peripherals are getting initialized in series. And Uboot is given, taken as a choice of bootloader because it is very flexible and it has the command line interface. We can do a bunch of hacking around Uboot to do whatever use case that we want to accomplish. So this is typically the boot flow. It is of course not the best optimized time. So just giving the state of the art right now and then once we move. So once we start optimizing the boot time for any ADAS use case, the choice of boot media is very important. To begin with, we can start with the MMCSD card. This is cost effective and it is very flexible. You can remove any time and just replace the binaries. This is probably the slowest. So it is definitely not recommended for early use cases. The next thing is EMMC. This is pretty fast when it comes to boot time and it is typically a large memory. It is of the order of 16 GB, 8 GB, 32 GB. So if there is provision for one boot media and one that also being the root FS host, then this is a preferred choice. This is pretty fast in booting as well. And the final one that we have to be typically uses the OSPI or the XPI flash. Amongst the three, this is the fastest for booting any binary on the SOC. The memory footprint is pretty small. It is around 64 MB, sometimes 120 MB. So root FS is definitely cannot be hosted. So customer who can afford two flashes can choose OSPI as the boot media and EMMC as the root FS host. So yeah, so EMMC or OSPI will do good in case of boot time constraints. So there were multiple layers that were explained in the default boot flow. The R5, SPL, Ampere straight from where the SPL running on a 72 U boot and then Linux. So all of these take time and all of these come with some cost. So instead of going through the full stack, we can optimize wherever necessary. So instead of R5 SPL, loading the ATF and then the SPL, we can directly load Linux kernel from R5 SPL so that we bypass the U boot under the ASN to SPL phase. This saves us a lot of time. And instead of U boot loading the all the remote core binaries, we can make R5 SPL or the secondary bootloader directly load the remote core firmware. And once you load Linux, you can directly start your application. So this is something what we call as Falcon mode, wherein we bypass U boot and directly load Linux from the SPL stage. So when it comes to optimization bootloader, we should be very well aware of the UART speed. So typically if you have any console prints, the first thing we need to do is to disable all of the console prints because UART is a very slow peripheral and adds time to the boot. And going back, so here we are loading the Linux kernel and also the remote cores. So the first thing that we need to do from the R5 SPL is to load all the remote core firmware, all the DSPs and the R5s as soon as the DDR initialization is mandatory for Linux to come up. So once the DDR initialization is done, you can start all the remote core firmware. And typically if the bootloader is very optimized and small in size, we can start loading the DSPs and the R5s in as early as 100 millisecond ballpark. And that's basically using OSPI as the boot media to speed up the booting against MMCSD. So in the overall scheme of things, if you start with this bootloader optimizations, we save about 1.5 to 1.7 seconds in the boot phase, in the bootloader phase. I'll jump on to the optimizations that we did on Linux side. So in case there are some peripherals that are never being used in the use case in the system, we should go ahead and disable those drivers and configs so that we try to get a very lean and mean kernel which saves time in actually loading the kernel. And again, similar to bootloader, there is a command line parameter called log level, we can make that zero by default, so that none of the logs come on UART. So all of the UART logs are suppressed. This saves the time pretty significantly if it's a normal size, normal kernel which has about say 200 300 lines of prints before we get to the command prompt, we save about anywhere between 2 to 3 seconds. And yeah, as I commented on the boot media slide, we can host the entire file system in EMMC instead of MMCSD, EMMC being the faster peripheral. Now let's move to the device tree side of things. So there are a lot of devices again that are getting unused, that are not really used in this use case. So we can disable all of these device tree nodes that are not really used in this use case. And we should give a priority to loading of C6X, C7X or the RFI of course. So basically load the highest priority course first, which has the demand of boot time. And if the MMCSD is enabled, please disable that, that adds a lot of time. And yeah, finally switch the file system from SD to EMMC. The whole optimizations could save us about six to seven seconds to get to file system. And moving on to the file system related optimizations, typically Yocto based full flex file systems are off the order of two GBs, two to three GB. So loading the file system itself takes a lot of time. So we should optimize on the size of the file system. And if we actually come to a very bare minimal busy box kind of file system, we really don't have any library functionality that we can utilize to run something like as complex as vision apps use case. So we should take the best of both worlds. So we typically copy all the libraries from the full flash file system to the tiny rate of S and come up with something like a hybrid file system, which is bare minimum for executing that particular ADAS use case. Yeah, so yeah, so the hybrid file system should be around 200, 300 megabytes, which was about two to three GB in the original file system. And the other portion of file system optimization is to not go through the entire CSV init kind of default file system services initialization. Instead, we can write our own simple init script, which does exactly what is needed for this ADAS use case. Instead of booting all the way to init script command prompt, we can use a init script to do the minimal tasks just to mount the necessary file system folders. Load the modules that are necessary to run that particular use case, which is typically the RFIF remote proc and the C7xt remote proc and the graphics driver which are used by Linux for realizing that use case. So since there are a lot of file system services that run by default, it saves a lot of time. So typically all those take about eight to 10 seconds to get to Linux prompt. So this is one of the bigger piece that we saved in file system. As I explained earlier vision apps is the one that actually does all the compute on the C7x, C6x and the camera processing. So by default, the flow was to wait for the Linux to come up before initializing the camera. So that was getting delayed. And typically the camera initialization is a very time consuming operation as it is connected over the I2C. So what we did was to tweak the use case a bit. The default was in the RFIF control core which starts the camera. The UART was initialized first and then the IPC and then the I2C which is which is needed by the camera. So this was the default boot flow. So what we did was to prioritize the camera initialization back because it takes a lot of time. So we directly go ahead and initialize I2C and then we start initializing camera which is about 1000, 2500 I2C writes. So that's why this has to be prioritized first. And then we can go ahead and do the rest of the things. So it is just realizing what comes in the critical path and then prioritizing in the early in the boot. On the imaging front, since surround view needs about four cameras and four cameras use I2C to get the registrar's program, there is something called I2C broadcast which could be used wherein all the four cameras get the same commands and get initialized in parallel. And typically there is a service serializer sitting in between which also is connected by I2C. So all of them have some guard delays just to avoid some values that are not really correctly written. So we could optimize a lot of delay in register programming of all the I2C. And there is something called multi byte transfer on I2C. When the I2C address is contiguous, instead of sending every byte at a time, we could use the multi byte transfer wherein we can program 1000 registers at a time as the register address are very much contiguous. So these optimizations reduce the camera initialization time from anywhere between 3 to 4 seconds to about 600 to 700 milliseconds. So at pretty much every possible stage of executing the use case, we are trying to cut down on the time. So yeah, so this was the final time that we could achieve. So the bootloader comes up in like 300 milliseconds. After that about plus 400, so basically by 0.7, 0.8 seconds, we are able to get to the Linux starting. And then the initialization script to load the different modules and mount the file system. And yeah, camera initialization, as I told, it takes much more time. So it took about another 500 milliseconds. And then the surround view application running was about 550. So overall, we could get the entire 20 seconds of that use case reduced to 2 seconds. And yeah, so we were using the 5.10 LTS and we have also migrated to the 6.1 LTS now. So the time is anywhere between 2 to 3 seconds to realize this complex use case as surround view. So the optimized boot flow now, the R5F directly loads the ATF Foundational Security firmware. It also loads the ATF and the device manager binary onto itself and also Linux. So directly from ATF, we are jumping to Linux, which is bypassing the UBoot phase of the ASMT2. Linux is also very minimal with all the reduced drivers and reduced device tree blobs. So only the required drivers, remote core drivers and the GPU drivers probe. And then the busybox root FS is mounted, that's the hybrid root FS and then the surround view application starts running. So the time that was about 20 seconds got almost reduced to 2 seconds with the optimizations that we did. So I want to just conclude with generic guidelines on how to optimize ADAS use case. So before getting to the software optimizations, as I mentioned in the boot media slide, it's very important that we pick the right boot media, which is fast enough. So typical recommendation is OSPI, XPI or EMMC flash. And always use multi OS strategy instead of one core running everything in serial. So use as many cores as there, make use of them, run a real time OS or any flavor of OS on them to get the execution in parallel. Optimize bootloader to load the critical firmware's critical software's first before the others and others get loaded. In case your vision apps or something similar frameworks, extract or manipulate the ability to run pipelines as much as possible. And for vision use case, wherein camera is mandatory, please prioritize camera initiation. It takes a lot of time to initialize cameras because there's a lot of I2C or spy writes, which are more slow peripherals. And wherever possible, don't use software algorithms. There are multiple hardware actuators on each ADAS SOCs, offload the compute to these hardware actuators. And then that will also reduce the boot time. And yeah, any delays that are added as guard delays to write these I2C peripherals, please optimize those delays. And design your use case in such a way that always things are running in parallel and nobody is waiting for another. So that that avoids any delays. Okay, I think that I'm done with my slides. Thank you. Open for questions.


The value of water to our everyday lives is being underscored as the Ministry of Agriculture leads to the observance of World Water Day. World Water Day 2021 is again set aside for increased awareness and sensitization of the importance of water resources to everyday life. This year, the Water Resources Management Agency, the WRMA, will work in partnership with the Department of Forestry to roll out its itinerary of activities, get towards highlighting tangible ways a citizen can support the ongoing interventions by the Agriculture Ministry to improve the accessibility to water and to encourage proper management and the use of water resources. Jason Ernest is the Director of the Water Resources Management Agency. Right now, in terms of campaigns that are going on, we have a photo campaign in terms of persons being aware of what's happening in the environment, sending photos to us, so it's a photo competition. We have a panel discussion that is going to be upcoming later this week. We do the normal press releases. That's one of the activities that we have. Mr Ernest says the placement of the World Water Day observation on the calendar each year is timely for synductions, as it gives us an opportunity to reflect and to make adjustments to our behaviors and habits as it relates to the use of water. It's very fitting, very timely for us in this region because right now we're actually in the middle of the dry season, so it's an opportunity to let persons know at this time of year, you know, when we have the drought-like conditions, you know, the dryness that the water resources may be affected in terms of the availability, you know, to consumers. So I think it's a time where persons need to take that into consideration and we move into some kind of conservation measures. The theme for World Water Day 2021 is value in water. According to the United Nations, the value of water is about much more than its price. This day is celebrated keeping in line with Sustainable Development Goal Number 6, which is aimed at achieving water and sanitation for all by 2030. From the Information Unit of the Ministry of Agriculture, I am Amanda Ficklock reporting.


Chapter 7 notes up, got about 20 emails. Okay, so Chapter 7 is solutions and colloids. Oh, this is probably the most important chapter you guys will be learning in this class, because most of you guys want to be part of the medical profession, more than likely, right, lab sciences, or a lot of those kinds of things. And one of my former students actually, I was talking to her the other day, she asked me to relate a story to you guys, and some people think this is a cheesy story or made up or whatever, I don't know. But it really is a true story. And she was one of those people who thought chemistry was totally boned, why do you need this, blah, blah, blah, until this story was told, and of course when she got it in her head about this type of stuff, she really turned it around, of course. Even you guys who are doing poorly right now on the midterm, there's a lot that gets dropped in this class, and you can break your grade up quite significantly from the midterm to the final. So I don't think there's any reason to panic like many people, many of your classmates have already done, as you can see by the attendance today. The one thing that I, but she wanted me to tell you the story, and she made me promise to tell you guys, so I'll tell it again. Another one of the professors here, what was it, two terms ago, I think, told me this story, he was like, you've got to tell this story about how important chemistry is, and this guy, he's a biology guy, he doesn't really care about chemistry that much, because he doesn't use it on an everyday basis. But he told me the story about this medical doctor from Victoria. Maybe some of you guys have already heard this story from me. He told me the story about this medical doctor from Victoria, who he was personal friends with, who was an avid skier, and of course there's not much skiing around here. So he went to, I think it was like Colorado Springs, or something like some Colorado place, okay, so Denver or something like that, to go skiing. And what had happened was, of course, you know, he was skiing downhill, he got into some accident, and something minor, he had to go to the hospital, I think he broke like his leg or his foot or something like that, but he had to go to the hospital. And what they ended up doing, of course, he was a medical doctor, so he was curious in what they were doing to him, you know. And so the nurse gave him, you know, all this medication while he was kind of dogged up and, you know, wasn't really thinking about what was going on. And afterwards, when he was kind of coming to a little bit more, he asked the nurse to see his chart, you know. And what had happened was she gave him his chart, and he looked at it, and he said to the nurse, oh my God, I can't believe you just killed me, and then the next day he was dead. It was because this nurse had given him a mega dose of some drug, you know, that, of course, she just did a calculation wrong. It was like, instead of doing like, I don't know, one gram or something like that, you could imagine, she might have done like 10 grams or something like that, but that's not that much difference, right? Like if I were to ask you, you know, if the real answer was 1.0 grams, and you put 10 grams on your test, you might be very upset if I took off points for that or a lot of points for that. Of course, the exams aren't the main reason that you're in this class. The main reason that you're in this class is to be able to, you know, be able to give medical advice and, you know, be giving people solutions of drugs and things like that, you know, on a daily basis. And you guys really have to know about this stuff.  So if you guys think this class is, like, hard or, you know, like, there's too much work or all of this stuff, it really is because it's very important to get the concentrations especially of the drug solutions right, you know? And if you don't do it, there are, you know, fatal circumstances for these things. In fact, I think what I'm going to do from now on for the quiz one instead of just getting to know you thing because, you know, I don't know how much good that really does. I think I'll start doing, like, a little section on this type of stuff because you can look on Google.  It's just because they did a calculation wrong, you know? It was like they were having a bad night, you know, it was really hectic in the ER or whatever, you know what I'm saying? And they just did a calculation wrong, you know? Yeah, so some of them are involuntary manslaughter, you know? I don't know what all the legal ease is, you know? But you can look up on the internet and find a lot of these things.     But it really, this is the only time you will learn how to make solutions. This is the only time you will learn how to do these calculations. And if you really don't, if you take it with a grain of salt, you know, that's what you're going to get. It's the grain of salt out of it, you know? And I don't know.  But I just wanted to let you know, because I promised this person that I would tell you guys, and I know they're a good storyteller, you know? But hopefully I got the point across, you know? But anyway, so let's talk about solutions and colloids. And like I said, this may be one of the most important chapters in the book, if not the most important chapter for you guys who are going to be giving solutions to people on a daily basis if you pursue your intended career. Okay, so what is a solution? A solution is a homogenous mixture, just like we talked about. We talked about this in chapter one, solutions or homogenous mixtures at least, of two or more substances in which the components are present as atoms, molecules, or ions. Okay, so if you look around, I see many solutions in class like that Barks root beer right there. That's a solution. Probably what's in these cups is the solution. Even this stuff, this soap here is a solution. Okay, so there's a lot of solutions around. A solute is a substance in the mixture present in the lesser quantity. So what we had like, what we're looking at here, this sugar water solution. The water of course is present in the higher amount. There's more moles of water if you will, than there are of sugar. So what we call the sugar is the solute. That's the substance in the mixture that's present in the lesser quantity. The solvent of course, the solute is the substance in the larger quantity. So in this case, the solvent will be water. And remember, when you put sugar in water and mix it up, it all dissolves. You don't see the sugar anymore. But if you drank the water, you would taste that it was sweet. So the sugar is still present. So it's not like it disappears or there's a chemical reaction happening. Because the sugars taste the same, like if you put your finger in some solid sugar and eat it or drink the sugar water. It's more dilute in the sugar water because you're not taking as much at the same time. So an aqueous solution, you'll be hearing me refer to this quite a bit. This is a solution where water is the solvent. So you can see these pictures here. We can have a solution that's got a solute component that's a solid and the solvent is a liquid. We can have a solution where the solute component is a liquid and the solvent is a liquid. This is like, I don't know, 10 drops of alcohol. This is like Everclear or something like that here. Or, I don't know, Budweiser or whatever you like. So 10 drops of oil. Here you see here, right? This is a oil layer and now a water layer. This is a non-homogenous mixture. Huh? This is non-homogenous. You could call it heterogeneous. Yeah, it's the same thing, right? So solutions can be solids, liquids or gases. Air is probably the most common solution of gases that you guys know. Of course, oxygen, nitrogen, several trace gases are dissolved in the air medium, okay? The solvent, I guess, of air is nitrogen because that's present in the highest amount. So there's 78% nitrogen, 21% oxygen, and about 1% of all the other little components in there, argon, carbon dioxide, so on and so forth. Alloys are homogenous metal mixtures in the solid state, okay? So the way that you get an alloy like brass is to heat up the various components of the mixture. So when you get them into the molten state, you can mix them up and then they'll form a homogenous mixture when you cool it down. So that's the way you can get solid mixtures. So we'll focus on liquid solutions, of course, because of what you guys want to do in your chosen career. And because in the lab, we can do liquid solutions much easier. We can work with liquid solutions much easier than we can with solid or gaseous solutions. Okay, so let's talk about general physical properties of solutions. In solutions, particles are too small to reflect light. Okay, so that's why you don't see the actual particles floating around. You can imagine comparing this to a heterogeneous mixture of sand and water, and you mix that up, right? You can see the same particles flowing around within the water, okay? But when you mix up your sugar or your salt, it looks like they disappear, right? We call it dissolving, okay? But the reason is, is because they are too small to reflect light. So the solutions are transparent. The particles, of course, are in constant motion. You can tell this by, you can put electrodes in a solution and pass current through it, okay? They're not settled by the influence of gravity. So if you keep a solution over time, right, like that root viewer over time, it's not going to separate out. You won't have, like, clumpy stuff at the bottom and liquid stuff at the top, okay? So here is the chemical equation of the dissolution of sodium chloride. Okay, so you can imagine taking your salt shaker, putting a glass of water and putting some salt in it. This is the chemical equation for that, okay? Here's a few different examples of solutions. We've seen some of these in labs, so you can have clear solutions, purple solutions, yellow solutions. The only difference is that between solutions and what we call colloids is that in solutions you cannot see the particles, okay? So we have different types of solutions we can make. One, division that we can do in solutions are between electrolytes and non-electrolytes. So electrolytes are solutes that are soluble ionic compounds. So soluble ionic compounds, when dissolved, they conduct electricity, okay?  That's why when you taste your tap water it tastes kind of, you know, calcium-y. Calcium-y, you know? So you've got calcium ions flowing around in there. You put electricity in there. With those ions, the electrons can jump from ion to ion to ion and, of course, conduct electricity, okay? That's how people die, okay? You can also have non-electrolytic solutions. This is covalent compounds. So these are ionic compounds that are dissolved, electrolytic solutions. Non-electrolytes are non-ionic compounds, okay? So a non-electrolyte, the most common one, especially we've been talking about it for a while today, would be like sugar. This would be a covalent compound that dissolves in water. Remember, water is very polar, so it can dissolve many, many things, okay? So we'll talk about the ability of water to dissolve it. So non-electrolytes are solutes that are soluble but do not dissociate, okay? So they don't conduct electricity. So electrolytes are ionic, non-electrolytes are covalent, okay? The volumes of solute and solute and solvent aren't additive. Don't worry too much about this one. I don't think I'll give you any problems about that. Okay, so what does it mean, solubility? How much of a particular solvent can be dissolved and a certain solute can be dissolved into a certain solvent at a specified temperature? Okay, so the factors which affect solubility, remember I told you, water's polar, so it's going to be able to dissolve things that, a lot of things, okay? In fact, it's going to be able to dissolve things that are also polar, okay? Why is that? Because the polarity of the solvent and solute must be the same in order to be able to have them dissolved in each other, okay? In fact, one of the things you may take with you from this class, hopefully, it's one of the things that most people remember is that this little phrase here, like dissolves light. So, if you've got something polar, it's like something else that's polar, okay, so they'll dissolve each other, okay? Non-polar things dissolve other non-polar things, okay? So, if I have fat, right? Fat is... Has anybody tried to mix oil and water before? Have you ever seen it happen? Have you ever gone to the grocery store and seen Italian dry-seeing or something like that? When it's sitting on the shelf, it's all separated, right? Why do you think that is? That, definitely, definitely. That's a good thing. So, which one has the higher density? The water has higher density, right? But why don't they dissolve in each other? Why doesn't the oil dissolve in the water? Oil must be what? Non-polar, right? It must be non-polar, but yeah, you're right, it does have lower density, too. So, that's a good insight. So, the more different they are, the lower the solubility. Temperature, has anybody ever made rock candy when you were a little kid or done something like that? Remember what you did to you?  And then you heated it up and all the sugar dissolved, right? And then when you cooled it down, the sugar started coming out of solution and make like little rocks on your little string, right? This is because temperature increases the solubility of solutes, okay? So you put all the sugar in there. It was too much to be dissolved at room temperature, so you heated it up to get it all dissolved, okay? This is a common practice in the chemistry life. Ironically enough, if you have gases in your solution, dissolved in your solution, so has anybody ever drank soda before? Yeah, right? So you open it up and you drink the first drink and it tastes really good. It's all like, I don't know, kind of spicy or whatever with the carbon dioxide, you know, the carbonation that's coming. But what if you leave it overnight, right? And then try to drink it the next day? Does it give you the same kind of feeling? Yeah, it's not even after an hour. Yeah, not even, right? Why is that? It's because the solution heated up and gases, actually, when you heat gases up, when you heat solutions with gases up, the gases don't like it, okay? So gases get dissolved in cold solutions like carbon dioxide in your soda and solids get dissolved in warm solutions like your rock candy, if you recall, okay? So here's a little graph of solubility. You can see some solids are weird. Don't worry so much about lifting solids. But you can see that increasing, increasing, increasing. This is a liquid here, glycine. This is like, what do you say, coolant, you know, in your car. So that's like that. So you can see if you've got solubility less than 0.1 grams per 100 grams of water, we call that new soluble, okay? Slightly soluble is 0.1 to 1. 1 to 10 is soluble. 1 greater than 10 is very soluble. And you can see in the degree of solubility of all of these compounds, as you probably can read them up here, that you can see sugar, there's 179.2 grams per 100 grams of water. So that's very soluble. So you want to compare this to these and you can see is this soluble, is this insoluble? And you can see here, again, look, all increasing in solubility as the temperature goes up, except for SO2, right? SO2 is a gas, so it decreases as the temperature goes up. In fact, it's insoluble in water at about 43 degrees Celsius. So again, a soluble substance is a substance that dissolves a significant extent in a solvent. An insoluble substance is very, very, very, very, very slightly soluble, okay? But we call it insoluble because it effectively doesn't dissolve anything. So when we're talking about solubility and water and ionic compounds, how does the water actually break apart these ionic compounds? Remember, you guys have seen the model of sodium chloride probably more times than you have liked to by now. But here it is again. So you can imagine this slide here showing us this block of sodium chloride and you see the little water particles. Remember they look like little boomerangs, okay? What they're doing is they're all taking a little ion away. Notice which side of the water molecule is associated with the ion that they're removing, okay? Remember, when we draw water, it's got a dipole moment, right? So that means it's got a partial negative here, partial positive here, right? So that's what is being shown in your little diagram here. You can see for the anions, the partial positive side of the water is next to it, right? For the cations, the partial negative side of the water is next to it. That's how they carry them away. And in fact, these water molecules form like kind of a, what we say, a coat, okay? A coat around the ions. And we call that ion with the coat on it. It's called a hydrated ion. So it'll have like a spherical layer of water molecules around the sphere of the ion. And you can see the undissolved solute is right here, okay? It just hasn't had enough time. Here you can see instead of an ionic compound, a covalent compound being dissolved into water, okay? This covalent compound has a dipole moment of itself. And of course, but it doesn't break apart, okay? Covalent molecules don't break apart like ionic molecules do, ionic compounds do. So the water molecules have to associate kind of like this, on one end or on the other end, as opposed to taking apart a particular ion. So a soluble not dissolved in a solvent is the forces between the soluble particles are too strong, okay? So if I have an insoluble ionic compound by putting it in water, the reason it won't dissolve is because the ions, they like to stick together more than water can pull them apart. So water's just not strong enough to pull them apart. They'd rather stick together. So yeah, this is what it's saying. The solvent particles are more strongly attracted to each other than they are to the solute particles. Okay, so how do we increase the rate of dissolution? You probably know this from practical experience. You could grind up the solute, right? Putting a big chunk of salt in water takes a lot longer to dissolve than just grinding it all up and making a lot of surface area. That's because, you know, if I have a big thing, a water molecule has to pick this one off before it can go to this one inside, okay? But if I crush it all up, right? Then there's just a lot of surface area. Or I could heat the solvent like we talked about. Or I could stir or agitate the solution. It'll get the water molecules moving around. So when we talk about liquid-liquid solutions, we talk about homogenous or heterogeneous mixtures, okay? So liquids that are not soluble in each other, we have a name for that. It's called immiscible. Okay, so water and oil are immiscible. These liquids don't mix together to form a solution. You can shake up like you're Italian dressing to get kind of a colloidal thing. Okay, colloid is something where you can see the particles inside of it. But you'll never have a solution. This is unlike things that are miscible, of course. They're always going to be dissolved in each other, like alcohol and water. So a good rule of thumb for solubility is light dissolves light, of course. Polar solvents dissolve polar or ionic solutes. Non-polar solvents dissolve non-polar or non-ionic solutes. So you can think of polar solvent being water, a non-polar solvent maybe being oil, okay? That might be a good one to say. Okay, so let's talk about concentration. So concentration is the amount of solute dissolved in a given amount of solution. We're going to be, to probably the chagrin of everybody in here, we're going to be using moles most often to be describing our concentration and solution. Okay, because it's the most common way to describe concentration. In fact, molarity is the most common way, and that's just moles of solvent per liter of solution, okay? So let's talk about concentration. Concentration of a solution has an effect both physically and chemically, right? Salt solutions are more dense than water, okay? So the solution has its own types of physical properties, right? Salt solution tastes different than water, pure water, right? A saltier salt solution tastes even saltier, right? So they have different physical properties. Sugar solution tastes sweet, okay, and is more dense. So the physical properties like the melting and boiling points are different, and the chemical properties of the solutions are different than that of the pure solvents. Okay, recall, chemical equations or reaction equations or dissolution equations represent a relative number of moles of reactants and products. So if I said we have, you know, 0.2 moles of sodium chloride that we're dissolving, you should be able to figure out that we would be getting 0.2 moles of sodium ions and 0.2 moles of chlorine ions due to this reaction equation, okay? It's very straightforward. It's showing you right there because they have a 1 to 1 to 1 ratio. We've already talked about this stuff. So many chemical reactions occur in solution, right? So the volume of solution is easily attainable where, blah, blah, blah. So let's just talk about this right here. Okay, so this is the equation that you're going to be needing to know. This capital M here, that's known as molarity. So this is the most common mole-based concentration unit. This is what all of those concentrations that you use are the solutions in chemistry lab. Okay, so like everybody who was doing the ion experiment that has already done it, when you looked at it, it said 0.1M, capital M. I'm sure you guys took note of it, right? Because you were wondering, what does that mean, right? If you didn't, you start should, okay? Because you make observations in lab, you want to know. That capital M means molarity, okay? So if we have 0.1M, what does that mean? We have 0.1M. So like most of the solutions were last night, 0.1M, I don't know, sodium chloride. What does that mean? That means we have 0.1 moles of sodium chloride. That's all that means. Can we figure out the number of grams we have per liter if we wanted to? Can we do that? Yeah, right? How would we do that? Use the molecular weight, yeah. Use the molecular weight or the molar mass, really. So here's some problems. Let's do a couple of these and we'll call them a day. So if 15 grams of sucrose were dissolved in 200 ml of solution, let's do it. So 15 grams, does that tell us how many moles we have? No. No, right? So we've got to change that to moles. So the number of moles of sucrose can equal 15.00 grams at the top. The molecular weight is 342.30, and the molar mass is 342.30 grams per mole. So that is, okay, cancel, cancel. Yeah, sucrose. And it says it's dissolved into 200 ml of solution. So molarity divided by what? One liter? What? Would it be one liter? One liter. No, it says it's dissolved into 200 ml, right? So what do we have to put here? What would you say we have to? 22 liters. 22 liters, or we could just do 200 ml, and then multiply that by 1,000 ml per one liter. So did everybody see how we did that? Is it pretty okay with that one? Okay, so let's try this one. This one. Well, number two is fairly easy. I'll let you do that one on your own. Number three, so number two, you just put the two numbers on top of each other. Number three, you put the two numbers on, you just do this part of it, right? Because you've got moles and mole weights. Number four is kind of like number one. So here, I'll let you do all three of those on your own. Okay, let's see if we can do it. Okay, yeah, we'll do this dilution factor before you guys leave, so you guys can start on your homework if you prefer. So if we wanted to dilute the solution, we can prepare a less concentrated solution from a more concentrated one, and if we know the volume and molarity of the initial solution, and we know the volume of the final solution, we can figure out the molarity of the final solution. Okay, so we can do it in accordance with this formula, which is very similar to the gas laws that you've learned last chapter. This is similar to Boyle's law. Okay, so Mi, that indicates the initial molarity, Vi indicates the initial volume, Mf indicates the final molarity, and Vf indicates the final volume. Okay, so if I had any three of these variables, I could find the fourth one. So let's just do this problem before we leave this one. So just calculate the molarity of the solution made by diluting 50 mls of 0.1 molar HDL to 1 liter. Okay, so what I would do is write like this, M1 equals what? What's the M1? Anybody can do that to me? 0.1, 0, right? Hold on. V1 or Vi is what? 50 milliliters. Okay, so it's important you give me that. Yeah, we don't know that one yet. And Vf, 1 liter, 1 point. So the very first thing we need to do is convert milliliters here to liters, okay? So multiply that by, range this equation to isolate the Mf variable. Right, so what do we need to do? We've got to get rid of this Vf on that side. So just say, divide both sides by Vf. Good job, yeah. Cancel and we get this new equation. Mf equals M1 V1 over Vf, okay? And then all we've got to do now is plug in our numbers here and we should get Mf, okay? So go ahead and work those types of problems out. Yeah, if anybody has any questions about anything, feel free to come talk to me during office hours, okay? Right now, yeah.  So you should have all, like I was saying, you should have, if you get the time machine coming down and signing, you should have all your grades by, I guess by Thursday, depending on how fast they get them.


What is going on ladies and gents welcome back to Bitcoin daily today? We're gonna be doing a market analysis Well more more like market news and an update on what's going on today on this bloody bloody Monday as you can see here So let's just jump right into it the crypto market lost 22 billion in the market cap today with over 90 of the 100 top Crypto assets plunging in price and going red The price of Bitcoin fell under ten thousand four hundred, but it's currently bounced back up nicely here But we did get a decline of about four and a half percent within the last 24 hours Before this bounce back where it now it's down only three point sixty nine percent I know a lot of you are gonna be anxiously looking on with March 12 On the in the back of your minds at that time Bitcoin suffered a two-day price plunge That saw crypto assets lose over half of its value in two days The Black Thursday market crash was not only felt in the crypto community But throughout traditional stock market and equity markets as well And it was in large part due to the surging in COVID-19 pandemic now a similar trend is appearing to be playing out today with the Dow Jones and The S&P 500 falling due to fears over the ongoing pandemic in a potential second wave So you guys can see here. This is Dow Jones. It is down today 629 points or 2.28 percent and The S&P 500 is down 57 points or 1.74 percent Um, so you can see all the news here on you know what people are reporting Dow tumbles 800 points as corona fears mount Um, and then also this is the other thing we're going to cover stocks tumble on big banks roll In a money laundering report So and then also fears of stimulus delay So there's a lot of things going on today guys on this Monday and that's why um, it's been such a red day today, so um Earlier this month bitcoin suffered one of its biggest slumps since march while it recovered a bit since then It appears now that the last few days of the month may be as ugly as the first of the month for crypto If not worse. So as you can see here the beginning of this month Where are we? This was when the drop so september 3rd was the big drop right here And then we slowly just kind of you know bounced around here until we finally started moving on up and then now boom another drop So, uh, we'll get more into that in a bit As far as technicals go bitcoin failed to break through the 11,000 resistance After finishing near 11,100 on saturday Um, it's been downhill since then for bitcoin over the last day though the the it is still over 10,000 which is a very main support level and we're also using the this fibonacci retracement support right here at 10,400 All right, so Now you guys already know as bitcoin since it is the king of the market As it goes so does the rest of the crypto market So the rest of the crypto market is similarly suffering today ethereum the second Largest crypto asset by market cap fell by more than 10 percent Today before stabilizing around 345 and it's currently down only 7.40 Newcomer polka dot also Dropped about 14 percent today earlier today. Not only down 10 percent. It did drop below that four dollar mark It's currently at 412 Other than that, uh, finance the finance coin dropped about 10 percent today So each coin is currently at 23 dollars And which is about 12 less than a day before Uh, it's current it's currently at 10 percent though So it has the market has been slowly bouncing back a little bit. Um, but we're still pretty big Uh on the red side right now If we look at the defy market Um, let's look at some of these here Uh chain link one of the hottest coins of the year. It's dropped by 11.6 percent Um, year in finance It's down 14 percent right now. It was down as much as 25 percent earlier today Uh, it went all the way down to 21,900 Uh, um a and av both down about 20 percent today And uh uniswap, which is a new popular coin. Everybody's talking about right now It's the the hottest thing on the market for the past week Uh, it's down about 12 percent and it's evil clone sushi swap Uh, it's down about 11 percent. So they've all Uh climbed back up a little bit, but still all in double digit losses Um, just like in march the crypto market slump appears to be highly correlated with traditional financial markets Panicked investors caused the Dow to drop by almost 800 points earlier today While the s&p and nasdaq dropped over two and a half percent Both indices are currently at july levels. Uh, so that's key to know right now Why let's go jump back over here While a variety of factors may be affecting the market two important ones may be responsible first is the Boom this right here We have we've been getting news today About COVID-19 That there is a surge in cases and That it might prolong the global recession overall. So, um, this is this is one of the things that uh Was it has been affecting the market overall today um, and the second thing If we click over here, uh leaked documents from the financial Crimes enforcement network published by buzzfeed Has revealed the ways in which banks and federal us regulators have failed to prevent more than two Trillion dollars in dirty money from flowing through the financial system guys This is the whole purpose. See people say that bitcoin is for criminals guys Read this article. They say that bitcoin is for criminals that criminals use bitcoin No, um, the biggest criminals in the world are banks guys. You guys need to learn this stuff Um, so that's definitely the kind of thing that makes people a little nervous about where they're putting their money Um, and it's definitely affected Um, the prices in the stock market today, which also affects the Price for bitcoin. So as you can see here, if you scroll down this article money from drug cartels organized crime marines corrupt leaders Money that funds terror networks bloody wars and human trafficking all laundered clean The banks don't stop the money and the government doesn't stop the banks So If you guys go on to read this article It says thousands of secret suspicious activities reports offering a never before seen picture of corruption and complicity And how the government lets it flourish. So as you guys see, this is why bitcoin is needed so badly In this world because of things like this. They try to hide it Because they want control over the money and with bitcoin. They cannot control Uh, you know the money they won't they wouldn't be able to do these things with bitcoin um So as you can see here, if we look at the technicals of bitcoin for today As you can see we have gone up and uh, we dropped down to the fibonacci point six one eight level Um, and that is the current support for now If we do drop below this, um, there is no support until about 10 000 10 000 is the first main support and then after that is the next fibonacci level Which is 98 45 So those are the next levels to look for if we continue this drop Um, I'm hoping and I'm thinking that we hold here But as you saw before we can drop lower So you just have to be ready to play on both sides Regardless of which way the market decides to go just have trades set up in both sides If we do bounce back up then, uh, we're looking at targets of about 10 600 and 800 which is this fibonacci level right here Um, and if we go beyond that then we can look at targets where we were at before which is 11 000 and 11 200 So those are the levels we're currently looking at Everything else is red and I'm not going to go over all the other charts right now because we did that yesterday You guys can check it out. I mean yesterday's live stream. It is on our twitch channel. Um, I didn't post it up this week or today because Because we had such a big move in the in in this direction And I wanted to just kind of cover everything that was going on and why this move is happening right now so, um I hope you guys enjoyed this I wanted to make this video a little bit different and I want I I wanted to do some more editing in the video But my video editor isn't working. So I had to just you know Make it happen like this. If not, we're just gonna keep waiting until I could get that fixed Um, but that's pretty much it guys Uh drop any questions you have in the comments And I will try to answer them, but definitely check out those articles that I pointed out for you guys Uh, let's do a question of the day Let me see where where is my question of the day? page Here it is So as you guys know over here the question of the day Every video will have a random question about something in the video The question will always be in a random area of the video Find the question then find the answer post your answer in the comments for a chance to win a free month membership to our trading room But remember winners are only picked randomly once the video receives over 30 likes So we need to get those 30 likes guys. If not, we can't do the giveaways um So I did not write a question of the day Let's uh, let's see. Let's see. I'm uh, I'm uh, it's gonna be I'm gonna keep it simple What is the next? poor area for bitcoin below 10,400 very simple guys. That is a question of the day Just go ahead and drop the answers and that's it man. Thank you guys very much. Have a great monday peace and love as always


ICT Digital Accessibility The key to achieving a digitally inclusive world. We're living in an increasingly interconnected world. Information and communication technologies, or ICTs, have become an important part of our everyday lives. While millions of people connect daily to work, obtain information, receive education, buy essential products and services, and socialise, many others from vulnerable groups are being left behind. Digital inclusion is the foundation upon which digital communities can be built to bridge the digital gap, and ICT accessibility is the key enabler. As a ramp ensures access for everyone in the physical environment, ICT accessibility facilitates the attainment of digital inclusion for all. Digital accessibility guarantees that all people, regardless of gender, age, ability, or location, benefit on an equal and equitable basis from the opportunities offered by ICTs. Accessible ICTs are devices with embedded accessibility features from the design stage, for example smartphones. But accessible equipment is not enough for everyone to understand information and be able to interact. To guarantee access to and use of ICTs by all people, regardless of their specific capabilities, needs and or circumstances, digital content as well as any product or service provided through digital platforms, must also comply with the accessibility guidelines and related standards. For example, in a noisy space, a person can communicate through a chat, just as a person with a hearing disability would. A visually impaired person will send voice messages, just as a person caring for a baby does, or someone who cannot use their hands to write. A migrant or a person who does not master a language can access important information if it is provided in easy to read or intuitive formats, which will also serve a person with cognitive disability. Three building blocks are needed to achieve digital inclusion for all. Access and digital infrastructure to ensure internet connectivity is in place. Affordability so that users can afford internet access and buy devices to connect. Accessibility of ICTs, which is key to fulfilling digital inclusiveness for all people and encompasses implementation of ICT accessibility policies, regulations and standards. Development of accessible ICTs including devices, products and services. Appropriation and digital knowledge skills by all end users. Building inclusive digital communities is everyone's responsibility. Only through collective efforts will we successfully build the digitally inclusive world we want. Join ITE's work in ICT digital accessibility. For more information, please visit our website and resources. www.itu.int.


Every day is different. It's definitely not mundane you know you rock up here next thing we could be standing here in an hour later we could be on an air car flying right up to the top end of Queensland. The types of work we do vary. It range from your robbery and homicide investigations, yeah recover mobile phones, firearms, other forms of weapons, right through to vehicles vehicle search and recovery. We also do a lot of missing persons search and recoveries so that sometimes is conducted in swift water environment. We've done a lot recently in waterfalls where people have gone missing and also coming into this time of the year we get a lot of floods as well so there's always a lot of search and recovery unfortunately of victims that attempt to cross flooded causeways or roads. We've got four full-time staff and a pool of part-time divers. Most jobs require a minimum of four staff at a dive site. You would have seen today we had a few more on site so when there's one diver in the water we require usually a minimum of four staff to conduct that role so that's why we've got a pool of part-time divers so we can draw on additional numbers if required. I love it it's normally a detective so it's very different from sitting in the desk typing all day out and about and doing physical activity which I really enjoy and being in the water too as I said I love that everyone works together there's no sort of egos or bigger than you or anything like that everyone pulls in and when the job needs to be done everyone carries gear from the boss to the new guy so there's no no different there as it is in a CRB generally or certainly my CRB everyone puts in and gets the work done. It is a very hazardous environment and because we operate in zero visibility it requires a certain type of person so the selection course that we do starts out with a one-day pre-selection which is just a general fitness test and then a four-day selection course. It's not a easy job by any stretch and just the four-day triad course is quite tough so there's a lot of as I said black water diving so diving you can't see any I mean a lot of claustrophobic tight scenarios that put you in so if you're not comfortable with those sort of things it would make it very difficult but no it's certainly highly recommend it. Yeah look at that after a different very challenging work or police diving is definitely it. Obviously there's some not so favorable or nice jobs but that comes with comes with a job but yeah if you definitely want a challenge police diving is definitely it.