Right. I see that there are some comments in the chat as well. Yes, it's really good to see so many comments. So as like, I mean, I think the general agreement is that so basically how this line charts and radar charts those are kind of complimentary to each other. Claritivize it's always line charts are superior because you have, I mean, it's basically because it occupies larger screen area because you have larger screen area you can put things more clearly, but then again that that itself becomes a disadvantage. If you are trying to have dashboard with so many items right so it's always the way you interpret. I think the entire discussion around data visualizer session today and which chart type to use it's mostly yes there are some key elements that you have to compare some, some like fundamental concepts, which are applicable to each of the different types, but other than that, it's mostly about the specific use case, the scenario that you try to apply this. Right. Okay. So, let me share my screen again. So, I'm going to open the data visualizer, and let's create a line. So I will select line. And for the data, let me select data element from the HIV group. I will search for PL HIV, new on ART, this one. Okay, selected. And period I will select last 12 months and the organization unit, I will keep it at training land, and he'll also add this one to the series. And let's try to update and see what happens. Right, there we go. So what do we see here, if we try to interpret we will start with filter we are seeing data for training land, PL HIV on ART and for the x axis we are seeing the periods last 12 months. And the series we are seeing the gender desegregation of the PL HIV new one ART. Okay, right. So, what can we say about this I mean, like if I just ask you to interpret. Okay. Now, what happens, like if you okay so I will just ask it in a simple way and let's see how this direction you will interpret. So if can can someone interpret the data, just looking by looking at this chart what can you say about me. Yes, I see something about this chart. Yeah, actually for me they are two things. And when you see the trend, the both of the two trends for person living the HIV for new who has been put on for a new one ART, you see that there is a big difference between females and the males where females are being infected by HIV are getting new infections on high rates comparing to the males and the first observation. Then, not only that the other things that yeah for females for males there is a lower number comparing to the females. That's what I can say. And also there is an increase that is an increase from May up to May 2020 up to April 2021 for both male and females there you can see that there is an increase for a new HIV infections. That's fine. So, can you also say something about by looking at this, this visualization can you say, say something about the gap between male and female. Like, what can you say about it, maybe like by May 2020 and you can compare it with the value of April 2021. What do you think about the gap. So, one thing you have to notice like say, we have like, say around 1000 gap, which is there by May 2020, and this gap. This gap has persisted right throughout the year. And by April 2020, we are seeing again a gap of around 1100 right, but like, again, do we have any idea about what must have happened because all these people are living right so, I mean, not all this but like most of them are living if they're all living. What may have happened to the cumulative like I mean when you take the entire number of people with HIV. Would that be different for the entire training. And we get that idea. Come again please. Yeah, what I would say is like several thousand gap here around 1100 right all this while the gap remains. So when we consider about the cumulative total people living and maybe you have males and female. What type of visualization. You know like, does it explain it well, whether the gap of cumulative have been increasing or not. Sure, maybe. When you consider the increase of the variation for cumulative of those person having HIV. We may also consider other movements in and out because these are new but you may have some have been died or some have been who have, who have maybe have been lost out so. So considering that for other say the movements, there were nothing happened you may see that there's also an increase between female and males, even the difference will mean the same between 1000 or between 1000 and 1100 something. So if you don't if you we consider that other movements means zero. We will still have the difference of 1000. Okay, so let me show you something different right now I'm going to click on options. I wanted to give my view and a little bit on the data. Yeah, people living with HIV new on ART. Even though the gap has met team within the range of 1000 between me and females who are new on ART, but I'm not sure what a graph or the visualization is saying that the infection rate is higher in females than male. So I'm thinking maybe there's a possibility that males could be higher than female but maybe females are always going for the ART treatment and meals are a bit deliquent because from what I can see the gravity saying people living with HIV new on ART. I agree. So in fact like this is how you interpret right so when you get a visualization, the way you interpret is going to be always different. So to do that we always have to apply the context parameter to the visualization so I think this is exactly what we will be discussing on I think on date in interpretations. I think like you were heading somewhere down that direction so I will just post it there because that's a separate will keep that discussion for a great day. But what I wanted to highlight was that let me apply the cumulative values here and see what happens like even though the same gap continues, what happens to the gap between the males and female cumulative. So I'm going to update update it and you can see here right so these are the cumulative values right and now you can see because we have this gap the cumulative difference between the two are keep keeping on increasing right. So this may be one visualization that you want to highlight right this gap, because the same gap between male and female persist the cumulative gap keeps on widening right widening. Alright, so I will just stop it there interpretation part of it we will certainly do on day. Okay. Right so the time is, yeah, 350 here. So today, as I told you before, we will exceed the mark of three hour that we usually do unfortunately because there are too many sessions to cover. Right so let us quickly move on to the next section. So we will be discussing one disadvantage of line charts and how we are going to overcome it. So I think there were a couple of examples that you will discuss. Where you felt that line charts may not be ideal, especially to compare the differences between same time period or between same months across the years. Whether there was difference, I mean, whether we know something different between January months of January and month of October, across three different years right. So to do this kind of a visualization, we have something called year over year chart visualization. Okay, right. So let me open up one favorite. I will just click on open and see whether it's there. Yeah. So we open BCG coverage year over year three year comparison. And we can see the type is year over year line. Right. I click and open it. And this is what I see. Okay. Right, so let's try to interpret what we are seeing here. So first of all, we are seeing year over year line chart and the parameters that we can configure have now changed. So we are seeing filter category and series filter we can see it's the organization unit and the data which comes into this entire visualization and when we are visualizing actually in the category dimension because this again is a specialized line chart the category dimension represent month per year months per year right there are so many several options which are available we once we selected is months per year. So it's always from January to December. And importantly, the series dimension. It represents each of the years. So we have 289 and 2020. Okay, so that means each of these lines are representing individual years. So, by looking at this, what can we say. So, obviously, any questions. So, obviously, from a high level perspective when we look at this, we always see that the lines do not cross each other. So that means 20 this BCG coverage has generally been improving right. So you have the green light here 2018 this is 2019 and 2020 so it has been improving. But then again, we usually see that there are some like in January it's usually a low value right and then there are spikes in between, for example, June and September. It's it always seems to be going up. Right. So there's some pattern do you see, there is always a pattern that follows. So these patterns are very important to note so that you can do interpretation and even when you are planning your health services orders maybe maybe when you are trying to improve the services you can identify what are the areas where you are having bottlenecks I mean if for for an example if in January if it is reducing what is the reason so all this we will talk again. Maybe I mean definitely during the interpretation sessions that we are doing on day eight but I just wanted to highlight what I mean what are the advantages of having these kind of a year over year line chart. If you don't have this visualization, we are talking about a very lengthy chart spanning across all the three years, and it's very difficult to compare individual months of different years right in a simple line chart. That's the advantage of having this kind of a chart. Okay, so in fact we can try and compare it to it. Let me open another one. This is my month last three years. Yeah, this one. So, hope you remember the previous chart I showed you about year on year, and let's contrast that with this one. There you go. Okay, now it's the same data, right we have 36 months, the same data element, right, and we have the occurrence, right, as a filter. So you are seeing all the 3336 months in this x axis. Now what's the problem. It's very difficult to compare January 2018 which is here with January 2019 which is there right so we can yeah we can feel that this is 6965.9 and this is 68.7 so it's a very tedious task so that's what is facilitated by having year over year line charts. Any questions. Right. And here, what we selected before was year over year line chart, but we also have the year over year column chart right there are different types. There are actually two different types that are available for year over year comparison. Okay. Let me try to open that one again. Are there any questions up to this point. So, what I'm going to do is to just talk a bit more about the different options that we have in series and categories parameters when we are using year over year chart. So let's look at the series. So series is always, it's always the years right, which are available so for example it could be relative years like this year last year last five years or else we have the fixed years. If it comes to the category we have like it doesn't have to be years like it can be last three days last seven days last 12 months right quarters per year. So, but only thing that you have to remember is both the series and categories are representing something to do with time period. And that's the main difference when you talk about year over year charts. So the flexibility we had previously to apply series and I mean to apply data dimensions to series and categories. It doesn't happen in the year over year charts. Okay, that's a special thing about that's a special thing we notice when we are doing year over year charts. Right. Let us try to now here we are seeing only one data item which is BCG coverage. Okay, let's see what happens if we try to put another one right so for example, I'm just trying to put here.  Let's see what happens. What happens. It says there's a problem with the layout, a single indicator must be the only data item when using indicators as data in field. Okay, so here it only allows us to use one indicator one data item. Either I mean say MR to BCG one BCG coverage. So here you can put multiple data values, just like we used to do with line charts, we can't do it here because I mean it kind of makes the interpretation very difficult when you have a lot of data items that are visualized so you have to remember that right now it only allows one data item to be included in the field. Okay, so I assume it is. Are there any questions about year over year how to use it and what are the advantages. I think we don't use year over year column, we have just been using yet over year line on right. Okay, let's try to do year over year column. Yeah, so I change it to a year over year column and I update. And this is what I see. Right. So, let's again, that's exactly what I was doing to do next. So, you know, yeah, so here we have what what what changed from line to column obviously lines have been replaced by columns. And what do we see here in the x axis we have the months, January, February, all the way up to December, and the series we are seeing each of the year. Right. So, good thing. Now for this particular visualizations that we that that that for this special data requirement that we wanted to address here. Which one do you prefer line or column. You prefer line. What's the reason why you don't like column. Actually, when you actually as I have said before, when you are called, you are using this year via comparison. You don't you want you, it's not only to compare the trend of from the beginning up to the end but also you want to compare some kind of decision analysis. So, when you want to compare like Kotas and Kotas and the changes or variations and do you want to talk about those specific factors related to the seasonal issues. This kind of columns will not really help to visualize when you are you want to visualize in your eyes. It's not easy to capture what you want to cut. So the thing is just going back to this fact I noted when I was comparing chart types when you are always thinking about trend analysis lines are always better. So here we can see say for example, we wanted to see like last three during last three years in the month of April. What kind of differences do we know like I mean is it like has been has it been improving yeah that kind of analysis we can take. Again, if if you want to compare January with October, like we have to look at we have to focus this part of the screen right at the beginning to an area which is towards the end in the time dimension right so to humanize this kind of comparisons in column column charts is always difficult. If our objective is to see whether the values have been changing over over the period in last three years across months lines are always much better. So that I mean an easily understood by people, but still we have this option available in case you are trying to you know like just focus on one particular period, something like that. Alright, any more questions or else we can move on to category charts. Right, so I assume there are no questions are there any questions. Okay. Let me open a favorite item which is, I will open this one institutional delivery by locality last 12 months and the chart type is column let me open. Right. This is what I see. So, what do you understand just by looking at this visualization what is different to what you have seen before. How many access are there. 123 123 123 how many. Okay, yeah, that's a better way of putting it so it's not. You know what I said three axis yeah. Two x axis right so you see one in the bottom one at the top. So let's see what has happened right so here, I mean like we are very familiar so if you just forget about this. Whatever the axis that is appearing here at the top. It's going to be just a plain column chart right so you have the x axis that are having data values and here, it was just going to be this very urban rural and urban chart right if you just come here or concentrate on this one. But what has actually happened is as he correctly mentioned we have two x axis one axis at the bottom so like you can see the one here. At the top is a period right last 12 months so you are seeing this last 12 months, and you have another axis, right, which is very urban rural and urban, which is at the bottom. So essentially what happens is if you just concentrate on one segment here. You can see data from May 2020 desegregated by very urban rural and urban right so for each of the month, the data that is in the x axis has been desegregated. Okay, so this this is what what we call as two category chart. So you have the category dimension here, and you also have a category dimension right at the top. Okay, so I mean these two category dimension charts are applicable to column stack column bar stacked bar line area stacked area so all these types of charts, this two categories are. Right, so whatever the column charts bar charts line charts, you can apply this two categories. Can we apply two categories to pie charts. Yeah, sorry yes. So, did you say yes, obviously not right so so to pie charts you can't have so thing is like the whatever the charts that are that I mean categories are applied you can try to category charts, the ones that I mentioned right the plane bar and stacked bar column and stacked column and the line. Okay, and which like now how do we know which one goes in the top as the category dimension and which one comes to the bottom. So that in fact is selected, based on the order that we place them in the category parameter. So here we have the periods at the beginning and then the urban rural so let's try to stop it like this, and click on update and see whether whether anything changes so I click update. And this is what I see. So what actually happened. We are now seeing the rural urban peri urban at the top and period at the bottom. So, how it is configured is whichever one but which is at the beginning of this, I mean whichever plays first in the category parameter is going to come here at the top. Which are, which is the second one, what comes after that is placed at the bottom. Okay, hope that is clear. Alright, so let us try to make a category chart from this stretch, rather than opening one that was already saved so do that I will click on new. And I click yes leave. Right. And for the data dimension I will select an indicator institutional delivery rate and the period. I will keep us 12 months and the organization unit I will keep training land. And let me update. So when I do that, this is what happens right. So this is the plane chart that we had before. So in this one we have one by axis, which is representing all the values, and we also have one x axis, where we have all the periods of last periods. Right. And what we can do is we can complicate this chart by adding urban rural peri urban I click here, and I can select add to category, right. I will do that. And I select these three. I just hide it so that I see period and urban rural coming here. So, based on this. Where do you think we will have the period dimension, we will have it at the bottom of the top. If I click on update. Here on the top, period on the top, anybody say period on the bottom. Okay, let's try to update. And you're correct. Yes, we see the period at the top right here. And if you just stop it. And update, you see the period goes to the bottom and the peri urban rural urban category comes at the top. And this way you can, you know, like, have a kind of a complex chart, which has multiple dimensions in the category under the category parameter. Okay, we can also, for example, try to apply this. Maybe, let's try to replace it with area and click on update. This is what we see, right. This is the state was it was previously called my update to area. Let's try to see, try and see what happens if we select bar. Right. See, we have, like, here now, I mean, the thing is like, you can remember right column and bar the X and Y axis swaps right so here, of course, category goes to the Y axis. When you are applying it to bar. I do like this and you're seeing the line charts. So, you can see it is applicable to column stacked column bar stack bar line area right for these jobs. All right. Any questions up to this point. If not, we are moving on to the final topic that we are going to do today which is combination charts. Are there any questions in slack or chat. If you have any questions related to the exercises, please ask in chat. Our facilitators will support you so few questions have already been raised. All right. Let me share the screen again. Yeah, here. Let me open a favorite item. ECG doses coverage last 12 months. Let me open this one. What do we see here. What is different here in this chart compared to the previous charts we have seen seen this. What's the main difference that you see here. What's the line and column. You have a line and a column together so interpret this chart I mean like, how do we like know which axis is representing the values for each of the chart type. How many axis are there in here. I must. Two y axis. Okay, I like that. I'll say yes. So it's not three axis. So you prefer to say yes, we have two y axis and only one access access right so yes. So here, we are seeing axis one, and we also have access to for the y axis so we have to y axis axis one and access to right. Basically what has happened here is now if you look at the value ranges in each of the axis, we can see axis one ranges from zero to 40,000 and access to ranges from 75 here or like even below and 87. So basically, we are also seeing the values of each of this chart type so we are seeing 30 30 so what I can do is I can hide one chart type. I want to just look at the, the column charts, we are seeing the values ranges from like 30,000 and 31,000 so these are the range that the values are spanning across across these periods right so basically, you can see that it's an axis number one, which is a y axis here, that is representing the data visualized in the column charts. Similarly, if you look at the line chart, it's the axis to which is actually having data ranging from 76 to 80 is 88 that is represented here. Okay. So another interesting thing to note is that is the starting value of the axis might change when you are using this combination chart by default. But together, this is a very good visualization and there are so many use cases where we where we want to visualize two data items in two different chart types, but in same visualization. So this type of visualization, we refer to them as combination charts. Okay, right. So, let's try to create this chart from the chart from the scratch.  For data, I will select from the data elements I will select BCG doses given. And from indicators, I will select BCG coverage. I have two of them hide. And the period I will leave as 12 months and organization unit training land right and I click on update. And obviously, this is the simple output that I will get because the chart type I have selected this column. So what's the problem that you see here. What is the issue is this chart okay or is there a problem. I cannot understand the bottom below 79.2. Why, why that happens, what's the reason it happens like that. Because of the low percent is, is percentages so quite low is committed to the alpha figures of the closest given. The root cause for this issue is that we are having just one axis, right. So this one single axis, which is here, it has to cover the data representation of both these chart types, rather than chart types, both the series data data series that you're seeing here. So for example, the green ones are the BCG doses, and the blue ones is the coverage. So because it's a coverage and it's a percentage, it's only going to range between zero and 100. But whereas these doses given it can, you know, like virtually range from zero to infinity. So the more the higher the doses you have for any of these months. The range of these y axis is going to, you know, like significantly vary and because of that, some most, I mean, like this value 100. You are usually not going to even see it's just that because the values have been displayed. So for example, if I just hide value labels. The problem is then, I mean, like, we can't actually even see that there's another chart that exists, right, to represent this BCG coverage. So that's a problem. So because of that it's always good to have values at least to see like there is something here down here. But to address this practical problem, the solution is to use a combination chart. So let us see how we are going to do that. What we have to do is we have to click on options, right, and then we move on to this step called series. So when we click on series tab, we are seeing our two data items the roses given which is a data element and the BCG coverage, which is the percentage. So at the moment, both of them are in the same chart type column and line, right, and both of them are in the same axis. So what we can do is to get the similar visualization as I showed you before. I mean, the one I say when I opened the saved favorite item. What we can do is I can convert one of these data items to a line. So let me convert this one to a line chart. Right, I do this. Right, I just do this one. Okay, and I click on update. Let's see what happens. Okay, so I selected a different chart type. But is it the expected output that people hoping to see. No, no, the reason being, still our root cause remains because we only have one single axis. So come this what we can do is the series step. We can add this line chart to the second axis. Right. In fact, we can even add third and fourth axis. So if you are wondering where we are this third and fourth axis are going to be. Now, if you can focus your attention here these are the locations we are going to have access. So basically, all these four axis are going to be in the y axis, the main y axis. It's just that the axis one is going to be on left side axis to is going to be on right side axis three is going to be again on left side outer left and axis four is going to be out right. Okay, so I just select this one axis to and click on update. There we go. We have the expected visualization that we wanted to see. Okay. So what if you put this access to the axis three. Okay, let's do that. You want to put this to access three. This one right. Let's see. What do you think this is okay, but the thing is, you might confuse the end user with the two axis. Like, when they look at this y axis, they will see there are two value ranges. So, obviously, because based on the color they can identify that okay the blue one axis one is the one that is ranging from zero to 40,000. Whereas the green one from 75 to 87. But most standard though acceptable, I would say the standard base you will you can have it here. It's a possible to maintain the column chat and and and and and and change the axis. Like you have them on separate axis but they in the same column shot. Not a lot. Same. Yeah, okay, let me do that. Yeah. Right. So here. So you want me to keep it here, but make it make the axis like this right so it's. This is what I get. It is possible. Right. So only thing, the person who's interpreting will have to, you know, like, because the only difference is, it's all about how your users interpret if they are really familiar with seeing DHS to column charts, which have multiple data items. They might try to interpret as just a plain column chart without focusing on this access. Right. That's the kind of downside. You understand. Yeah, users are so much familiar with our traditional DHS to column charts, they will totally know this.  But like if you actually look at these data values, they will understand but in case if this data values are hidden. Then of course it's it can be a disaster right. They might think okay coverage, 30,000. That's what can happen. So, but yeah, it's a good question. So let me again. This one update. And let's make this one further more complicated right so now we are dealing with the was to access but we have to y axis. So let's make it to y axis and to x axis right we have already dealt with to x axis. So, let's try to do that. So what we can do is we can apply this urban rural dimension to which one. Series or category. What should I do. What do you think series or category. Okay, let's try that category. Yeah, hello. Shall I update. Okay. Let me update. And this is what we see. It's a very complex chart. Right. So now, this is where we can confuse the users right so when they look at it, they will first, I mean, try to figure out what they're like, what is this right so because here. I mean, it's not very easy to interpret. So you are seeing the periods x axis and peri urban rural y axis. Right. And for each of them, you have y axis of BCG doses and a y axis of BCG coverage. Right. So, you can do it, but always just think whether this is something really good to do, because like, sometimes even though you can have this complex visualization. Thinking of the time people might take to interpret this, you might as well create two different charts so that you know interpretation is much simpler. So you have the tools to use it but how to use it and to apply to your context is all what matters. So I mean this is what you're going to discuss in the interpretation so I really hope in that day you come up you can compare each of these charts and come in critically why you did not use this, you know, multiple two category combination charts, as opposed to a simple column chart. Okay. So, basically, we have covered everything. So, just to summarize what we have covered in the day. Let me stop sharing and going back to the object before you finish. Yes, yes, on the same one. Can you have a look at it as when you choose the series instead of category. Let me share my screen again. Yeah, what do you want me to do. So this one you want to move it to serious right here. And you want to have data also here. Sorry. We have to allow only one in the series right see. Oh, okay. Okay. I mean that's how the chart type works so you can't have data items so dimensions in the series. You can decide so for example if I, let's see what happens if I do this. You will have to decide how to interpret. It's very difficult right. Thank you. Okay, let me go back. Are there any questions. Okay, going back to the objectives of the day. What we covered in part one was. We went through the overview of data visualize interface. So, we just quickly recap what we did in pivot table sessions yesterday. Okay, and then we went through different charts, like the what are the inputs for the chart. I mentioned the organization units and periods right and also how to rearrange the layout of the chart using category series and filter so we defined category series and filter. This is a very important concept to understand category series and filter and also remember, you cannot say category appears in x axis right category appears in y axis no it's not like that it totally depends on the chart type in the adjust. Right, but you just you can understand categories the primary grouping, and then series will further subgroup, what is appearing in the category. Right, that's how it works in bar column and line charts and area, right, but in pie charts is totally different and you don't talk about. And then, of course, how to work with the disaggregations in the chart, we talked about it, and what are the different chart types and when to apply what are the best practices in applying each of the chart that we discussed, right. And then we discuss about several chart options like adding titles hundred percent stack values, how to sort and I, if you can remember I mentioned like it's the first item that is there based on which the sorting happens if you have multiple items and how to put the target line baseline right and also how to download charts. And then in the part three we discuss about high charts, red and spider charts and the gate charts as well as the single value charts. Okay. And then finally, the last session we talked about how to mention how to have the cumulative values, right, especially. And like, if you can remember that male and female example how the cumulative value application, change the visualization, and then we talked about year over year chart, which different charts which are there. Right. And then, of course, finally we talked about the combination charts, right, we have two y axis, right, and also we talked about multiple categories like where you can have to x axis. And we talked about the possible application of two y axis and two x axis, and of course the implications of having these kind of complication complicated visualization, right. So I guess that's all we discussed for today, and we can conclude the session. Of course there is a created exercise which is available to you, which you have to submit. And please also do the ungraded exercise, which will grow through all the steps that I have covered in the day. And complete the ungraded one and the graded exercise that would be good enough. And you will be able to achieve the expected level of skills and knowledge that is required for the data visualizer section. So any questions. And we can conclude for the day, and you can continue with the exercises and our facilitators will stay online on Slack channel to assist you all. And two reminders before we conclude, please complete your attendance, the word of the day, and of course we really appreciate the feedback. So if you have forgotten to give feedback in the previous days, please give us the feedback we always go through them and try to. I mean, try to change the way we present and we conduct the academy. Yeah, so thank you so much. We don't have any sessions tomorrow. Isn't that so sorrow. Yeah, you're not having any sessions tomorrow. And hopefully, yeah. So up there. We meet on Monday. If you really want we can try to try to have it on Saturday but I don't think anyone wants to have sessions on Saturday right. So that is the case then have a great weekend. See you all again at same time on Monday. Right. If there are any questions please type them and raise them in the Slack. If you have any issues with exercises, the graded or the ungraded, let us know and please give us a feedback. And on Monday we will do the map session again a bit of a lengthy topic. But then it's a very important one. Thank you so much. So anything else you want to communicate. No, just a happy weekend to everyone and see you all on Monday. Right, then thank you so much. See you all on Monday and have a great weekend. Bye bye. Thank you. Thank you.


Hi everyone, Joe for jaspyscasebreaks.com coming at you with 2020-2021 hip parade hockey Limit edition a series nine dual case break. We're doing 20 boxes of some hockey Only made a hundred hand numbered boxes produced Each card contains an autograph card featuring some of the best stars. That's got a Conor McDavid. I've heard of it Sydney Crosby. I know some of these guys Austin Matthews hockey not my strong suit, but I know most of those guys on there big. Thanks everybody here for getting in on it This is also part of that promo that we have going on tonight jaspyscasebreaks.com for details And all 31 teams are in let's roll it randomize it three and a four seven times for names and teams one two three four five Six and Seventh and final time All right. Once again three and a four seven times for the teams one two three four five six and Seventh and final time the lightning down to the coyotes after seven All right, Steve with the Tampa Bay Lightning PJ with the New York Rangers Michael with the Flyers Sean with the Bruins PJ with the Sabres and the Knights Golden Knights Sean with the Blackhawks I cupola with the Panthers PJ with the Canucks Daniel with the Ducks Sean with the abs PJ with the Preds Eric Jennings with the Senators Sean with the Blue Jackets Steve last Bob Mojo Kings Daniel with the Canadians Sean with the Penguins Islanders for Daniel PJ with the Caps Michael with the Sharks Rick with the Hurricanes PJ with the Stars Mike Tower with the Maple Leafs Sean with the Wild PJ with the Devils Kevin with the Flames Joe P with the Oilers Dan with the Jets Matthew with the Blues and PJ with the Red Wings and the Coyotes Let's alphabetize this by Team We're gonna pause the video for a little bit when we come back. We're gonna see if there's any trades Then we'll have the break stick around Alright, welcome back folks a little bit of trade chatter, but in the end no deals were done here on Tuesday the 13th Thanks everyone for joining for getting in on the action appreciate it So we're gonna do case 8 out of 10 first, and we got case 2 out of 10 back here Sorry MJ L The trade window already closed Might be might be lagging behind by just a little bit. We click that live button everybody Every once in a while kind of check that All right first card out of the gate. Good luck is Carter Hart for the Flyers that's gonna go to Michael MJL next up is Mike bossy Legends classics autograph That'll be for Daniel Katz and the New York Islanders. My hockey knowledge isn't isn't super strong. So You have to let me know I mean I'm assuming tip rates I'm assuming all these players are pretty good. There's anything especially awesome. Definitely. Let me know Of course, I'll know some of the bigger names See what we got here. We have Josh Norris 169 to 249 Rookie premieres autograph level one for the Ottawa Senators Tried to trade couldn't trade mojo for Eric Jennings. Let's see what we got here We've got Tristan Yari for the Penguins 210 out of 249 Rookie auto and patch Nice from the Cup hockey love this stuff 1617 Cup hockey That's Sean with the Penguins next card is We got Dominic Kubelik acetate auto for the Chicago Blackhawks That's also gonna be for Sean. Next is Braden point future watch autograph To 999 Tampa Bay Lightning your Stanley Cup champions That's gonna be for Steve Birch With the lightning. I think this one goes Landscape mode. It's Anze copet are nice from the Cup hockey limited logos patch and autograph 4 out of 50 nice Steve Birch last spot mojo Getting my Kings every year. I've been Every year trying to watch a little bit more hockey Each year that goes by. All right. Next is ultimate rookies autograph Igor is sure Sturkin 89 out of 299 Rangers That'll be for PJ in the New York Rangers. How many dumpsters of trash do we feel a week Hollywood's asking? To Standard-sized dumpster And we have two pickups a week and each time they pick it up. It's pretty full thicker cardstock here Two-color patch autograph Jake Odinger And black diamond jewels of the draft patch auto 49 out of 99 going to Dallas. It'll be for PJ. All right next one is Bowen Byron dual relic and autograph for the abs Sean Oh with the avalanche. All right, but wait, there's more another 10 boxes. We've got Alex nettle Yolkich Kovic Nadelge Kovic, maybe I'm gonna I'm gonna go in the delch Kovic 429 out of 999 future watch autograph for Carolina That's Rick with the Hurricanes goes this way. Who do we got here? We have Hall of Famer Mike Madonna Dallas Stars PJ with Dallas Next one he goes this way landscape mode It's Nico Hersher 25 out of 35 scripted swatches For New Jersey, that'll be for PJ New Jersey Devils next up is Gabe Velardi one of the Kings youngsters 24 out of 35 Two-color patch and autograph authentic rookies auto nice from SP game use Kings Steve Burch Last Bob Mojo strikes again, and then we've got upper-deck canvas signatures five at 25 Alex DeBrin cat Chicago Sean Oh with the Blackhawks next is Signature materials from the Cup Hockey nice patch nice auto Elvis Merz Lincoln's 18 out of 99 for Columbus Sean Oh With the blue jackets it's Cup Hockey stuff always awesome All right four more to go. Good luck everybody.  I think always look really cool Red ink pops three more to go a dual auto This might be two different teams might be a randomizer it is Opeachy Premier duos autograph on this side. We've got Ovechkin Alexander Ovechkin Capitals Dan, I'm sorry PJ with the capitals and then we've got Iqveni Malkin penguins And that is gonna be Sean Oh So one happy person one sad person We do that randomizer at the end a and Ryan what a car they're saying Beautiful one happy person one sad person on that one. This is going to one person. This is a Brady Kachuk rookie auto For Ottawa Eric Jennings tried to trade couldn't trade mojo Violet pixels is the parallel. I like that they write the parallels on the on the back letting us know exactly what it is and The last one all right and last but not least It's hot rookies of Vladimir Tarasenko for the st. Louis Blues. That's from Matthew D From a 2013 14 Penini score hockey nice All right now one happy person one sad person. Let's go Get some new dice. There's some new dice. There's a fresh list So Washington on one side Pittsburgh on the other side Let's roll it. Let's randomize it four and a one five times name on top or team on top after five gets the card one two three four And one more right and one more fifth and final time Pittsburgh Sean O'Leary with the Pittsburgh penguins You get this really nice do a lot of graph ovechkin and Malkin 23 out of 75 There you go. Pretty nice Congrats. Thanks everyone. I'm Joe for jazzy's case breaks comm and that was hit parade hockey limited edition series nine dual case break Number one keep your eye out for more hockey on the website jazzy's case breaks comm and I'll break that with you next time Bye-bye


okay today i'm going to the london toy show and i have like 12 minutes to get to the train okay i gotta run bye oh check it out i love how the parks here have like little exercise equipment things there's one wait and there's like a thing over there oh i love all these canals check it out there's these canal boats sometimes people live in them and just hang out and all these canals anyway there's the train station okay gotta go so here i am in london and i have a ticket to the toy show a map with some bad directions on it two sandwiches and some grapes oh and a thing of water i think i'm ready to go well i'm already going oh i also have new sandals aren't those exciting i'm very excited about my new sandals my old ones were really destroyed good thing i have new sandals too because the place is like five miles that way whoa that is one big horse head decapitated i'm in hide park right now that's most of the way there i think this might be the right place so here i'm at the toy fair and we're at the big track zone now i never had a big track when i was a kid but my cousins did and i always thought it was really cool and check it out this is steve and he made the new big track and i think he's going to show us uh how it works and stuff you got it apparently it shoots and stuff too oh and if we check out the uh if we check out the screen over here you've got my feet where are my feet there's my feet because it's got a camera on the phone that's pretty sweet so what are all these accessories here i want to know about those okay cool what we got is we've got an ir gun so you can block this on the top of your big track and if you buddy's got one of these on their big track then you can you know do a tank value shoot each other where's the sensor to get shot with it uh this model so there's no sense right oh yes of course it'll be here somewhere maybe a little dome on the top got it so you basically shoot the the other person's gun and it will spin around and stuff all right nice the coolest thing is the camera because you can put it on the top so you can look at the people or you can put it in front and then the same pool like some missiles on the top nice oh i just want to drive it at night so that'll be really good for chasing the cat around yeah and you can do it in the dark as well turning these bank lights in the office that's awesome it doesn't do night vision does it it doesn't know that would be more expensive we tried my vision because you can do an easy hack where you take out the ir sensor and replace these with infrared LEDs but it washes out the camera right right right it's got all these buttons down here yeah it's the same keypad as the uh original old one yeah so you can punch stuff in here and program in routes for it to go do and stuff forward one turn like 15 oh okay what are the units and if you go forward one what is it one unit is one unit of big track oh nice that makes it easy to know yeah the cool thing is it's not angry okay what's this this is like a an iPad stuck in this machine right an iPad stuck in a arcade doll that's cool so and this is playing a html5 game so but again play apps as well oh cool so this is asteroids which i suck at oh you do suck whoa no that was pretty good i'm impressed and you said auto fire earlier yeah other fires the best so this is the i iPad version and we have this three dinky iphone version that's cool so this is actually named off in honor of your laser blaster oh blaster oh it's excellent so we pop our phone in haha that's so cool get out of there the stupid thing is it actually makes me kind of consider getting an iphone i suck at this as well but this is a four-way joystick yeah yeah so i'll place a shield and stuff you got glass fire that's the awesome thing is the thing is there's no batteries or any political wi-fi awesome she's magic oh i love stuff that doesn't need batteries that's pretty sweet on my way home and steve totally gave me a big track it's not the fancy new version it's a little bit older version but still pretty sweet oh weird it's raining in wolverhampton again okay okay in reality it hasn't really rained that much since i got here my lips are getting numb it's cold okay so yeah someone's probably gonna give me a hard time for showing other people's toys but you know whatever and i'm not worried about it big track is really cool and i'm not diminishing that at all but independent of that what i'm working on that was amazing it's really really cool i wish i could show it i'm getting really antsy and impatient because i have this cool thing and i'm like i'm like trying to run up to my mom and be like look what i made look what i made and it's like wait wait no i can't show it yet because there's crappy people in the world crappy people so i think of them one more time


Let me know. Everybody's there? No, I have not spoken yet. Nothing really to speak about. Only one good watch today, but that's all that we need for the market. So, Mark, it must have had, I guess, a negative reaction to the minutes yesterday. I can go back and look at it, but drop off looks like into two o'clock. So, today the market's scapping down looks like just to follow through from yesterday's reaction. We'll see if it goes anywhere, or if it doesn't. But not going to concern myself with it either way. Just going to do what we usually do. Any questions? Anything else anyone wants me to look at? One minute before they open. Ooh, look at the volume this now. SPLK? Yes, low volume, spready. Not an immediate entry, but you can watch that for if it gets the volume in it. But this is a good gap here. I can go flip to that if for some reason this doesn't work. But honestly, if this doesn't work, I don't think I'm doing anything today. It's the only thing I have conviction in. The only thing I like. Okay, just wait. Okay, this is not going to be a small stop. We can do 40 by 27. 40 by 27 if it hits, and it's not going to be a small stop. I was figuring 30 something, but oh no, wait, that's off. That's off. Don't do it. It's completely off. If that triggers, don't do it. Here, we may get a better entry because that was too big of a stop. All right, we're going to get a better entry. That's completely off. Don't do it. It didn't hit anyways. All right, let's see. See if this holds 27. Okay, 55 by 27. Not that much difference, but a little bit. 55 by 27 if it hits. KR. No one should jump the gun on this. No one should be in this yet at all. 55 by 27 is still on though. Okay, we can do 69 by 27. 69 by 27 KR. I hope this sets up. No, it hasn't triggered yet people. I don't know. So every number I'm giving is off. You can't be in it yet. We can do 27.05. 69 by 27.05. I don't know if that's even going to hit. No one should be in it yet. 69 by 27.05. I'm just going to keep changing it until it sets up. Okay, we can do 75 by 27.10. Let's do. Oh no, that's off too. No, I'm not in it. No one should be in this and that's why you cannot take a trade until it triggers. Every number I give you is off. Oh crap, if it doesn't set up, there's nothing we can do. 75 by 20 we can do. 75 by 20. 75 by 20 if it hits and I have no idea if it does KR. I believe this is the last chance for this though. Not off of it yet, but 75 by 10. No, 20. I'm sorry. 75 by 20. Here take it. Get in right now. Just take it. Get it in. Set 20. 27.20. 27.20 is a stop. Just take it. It's going to hit. Geez, this is the last chance for this. Let's just double check. 27.20. Yep. Here, be in it. I already did it before it hit. You can be in it. This is it. Woo. We almost didn't get it. It almost wasn't even going to trigger it, but we did, we did, we did. Here's the market. Okay, fine. Here, KR. What do I have with this first target? First target has to be 26. We're going to get right there. In fact, I'm not even going to be a piggy piggy today. Anything through the loam just could take the whole darn thing. Here, pay attention because I honestly don't even know what the market does today. Did everybody get it? I couldn't have been more perfect of an entry. Woo. Okay. I did say $25 for this, but here, here, here, KR. Let's see if we can get down to 26 and then I'm all out. Didn't break the low yet. Come on. I hope everybody got it. Here. Nice treat. I'm on my game today. Here we go. See if it breaks 30. See if we can get out of it and in the teens if it doesn't go right down to 26. Nice rubber band in the daily chart. Here, here, here, here, here, here. You could get out of the whole thing if you want. I'm going to hold it for a baby, baby, baby more. That's going to try to hold. I don't know if it works today. Ables out. Well, you didn't kill it. You got out of it with profit. You killed it.  You didn't kill it. Suzanne made 1400 bucks. Congratulations. You're all out. Nice call. Chinchilla's out too. Here, KR. This is it, people. Come on. You're still in it with me. Pay attention. I really think this is one more leg down, but my hand is in the button. Here, here it goes. This is it. This is it. This is it. KR. I don't want to let it get over 30. I don't want to let it get over 30. Try, try, try to hold it, but I'm not letting it get over 30. I think I'm going to just put this stop at 30. Here, here, KR. I think it might bounce. I don't want to let it get over 30. If you're still in it, you believe it's going to 25. That was a nice trade. Nice trade. If you're, here, oh, good exit. Great. Day is done. 9.39, Sunday, day, June, Father's Day weekend. Here, $1,000 pyro, great. Yes, you killed it with profit. If you're still in this, you believe it's going to 25 or something crazy. Let's look at it. Here, it might. If you're still in it, you could be really, really tight and put this stop at 40, but I think you're going to get dinged out. Frisco, nice job. Let's take a look at it. Do we get a good day this week? I knew we get a big one. I knew it, but we were very patient. We did everything right. Made money. Here's the bounce. Woo, look at that. All right, let's take a look. It's definitely going to go to 26 today. It almost got there, but I really feel like 25 is, it could be in sight. Broke early. Here, let's take a look at the market. Woo, look at that. 58 it touched. Market, market's, market's going to hold. It's just, you know, so tricky, so tricky here. Again, I don't pay attention to reasons for things, Fed fell for this, for that, whatever. Market gap down into support is strong to be in with. Just don't see it going anywhere to the downside. So the question is, let me just look at everything else. The question is, do we hold today strong or do we hold today weak? That's the question. We will hold today. I mean, I can read it right now. So the question is, do we hold strong or weak? I won't know until we close. Good job. Is anybody still in KR? I don't think you should be unless you believe it's going to some crazy number, but is anybody, anybody at all? What happened yesterday to cake, IBM, HRB? We'll look at them now. Apple looks terrible. The pool, baby. Let's look at Netflix. Do bots got out? Gosh, tomorrow must be Friday the 13th. You always hold. Netflix, let's look. You missed the whole trade? I'm sorry to hear it. Here, Netflix. I'll go over the trade in a minute. That stinks. Netflix, Netflix, Netflix doesn't look good either. It's still going. It's still going here. It looks like nobody's in it left, but it's still going and it's going to get to 26. But again, do you want to suffer through a bounce? I didn't feel like it. Looks like the market's going to hold. Nice trade no matter what. Perfect entry. Disabled dude still in half. Wow, you're getting nuts. If you want to, you could put the stop at 65. Anyways, I stayed, I was right on top of this thing. I was on top of this thing. I'm so glad I didn't give up on it, but it was almost, I was one millisecond away from moving off of it. One second. Here it goes through the low under 20. Disabled dude, I guess, is left in it. He's the only one. Here it goes. In fact, I think it breaks 26. I just don't know if it gets all the way down to 25 or if so what time of the day. Here it goes. Anyways, I called this trade in here 75, but I ended up taking it beforehand here. Look, wow, nice move. Here it goes. Disabled dude's getting it right down to the number. Anyways, I grabbed it and just said to everybody take it. I saw it was going to hit. So I got it at a better price than 75. Either way, didn't matter. Drop broke. Literally perfect exit in here before this bounce, but it's still going. It's still going and it looks great. Look, here it goes. KR, nice move. Did everybody get it? Did anybody not get it? You all should have gotten it. Here it goes. KR, down to 26 and I think it breaks it. Disabled dude's the only one left. Any questions from anyone about the gap or anything? My scoring system is superb. Thank you, Susanna. I 100% agree with you. I cannot disagree. You are correct, lady. Oh, Trader Laxie said she's not feeling the best this morning, so you didn't think you should trade. Probably was the best idea because when you're sick you might not do the right thing, but here this is going. This is going on the other end. This could get to 25 today. It really could. Here, today's a perfect example of a stock that's down a lot that people want to buy. They think it's going to fill the gap, market gap down too, and they think it's going to rally. I think the market's going to rally and disappoint, which it is, and they think KR is going to fill the gap and it goes over the high. People buy it over the high. It goes over the high again. It makes a series of higher highs right in here and higher lows and we're on top of it and it breaks. Here it goes, under 26. Anyways, I was right on top of this. We could not have gotten a better entry in this if we tried. If we'd shorted anywhere in here, we would have been down before we were up. We got the perfect, immediate entry and it just sold off right with us. Do you see here? I'm going to blow this up just to show you something here. This is when I talk about this all the time. I talk, talk, talk. We're shorting selling action. We did not make this happen. Okay. This trading room did not create this. Here, look, it goes down to 26. I'll go over. Two people are asking questions about the rating and the entries. I'll answer in a minute. But anyways, this, this is selling action. We caught it right once the selling started to come in. I mean, how great is that? So then the selling action just carries the trade right on down. So it just carried us down. So we shorted. The selling action is coming in. We got it right at the top where the selling action comes in and the selling action carries us into profitability. That's how it works. Genius. Okay. This is not short action that created the sell off here. This is selling action. We got in it short and the selling action carried us down. And that's how, that's how we make money. The fastest, the easiest, the best. This is what we look for every day. Now, not every day do we get such a swift fast move. Obviously, this one here cake. Oh wait, I'll answer questions in a minute. Let me just finish getting to my point here. Cakes looks lower today even still. But the day that we did the cake, the 13th, let me get back in the morning, the 13th. See, see, see, this was just so, I mean, this didn't have a move down here, but unfortunately, it happened so quick, so fast. This bar was more than a buck. You know, with the entry in here, it just, I mean, how could you have got in and got out in one bar? I mean, you could have, but theoretically, but it was impossible. So anyways, then if you were in it, some people did get out in this drop here. It never ended up breaking 2526 area the whole day. This was the low of the day and the stop that happened right into the open. But you know, this in here, we just didn't get the swift fast movement that we wanted. It was there. It just didn't go as much as we wanted it to go like KR. It was there, not as easy to spot or read, not as easy to spot or read as today's swift sell off. So this is what ideally, in an ideal world, oops, where are we today? We would have every day. Here, discipline, dude, did you get out? It did bounce a 26, I would be out. I still think this could go, but Gush knows what time. Does anybody, hold on one second. Does anyone still in this? Is this one dude or you're still in it?


Do I have these three characteristics?  If you support an oppressor, what does it mean by supporting an oppressor? It doesn't mean by supporting Yazid Saddam Namrud Throne, is that just oppression? No.  Let me give you an example then think within yourself if you have these qualities Your sister has a fight with her brother Your sister has a fight with her husband your brother-in-law, right? What happens straight away without even asking you take the side of your sister? What have you done? Volum, you've become an oppressor. What happens on the moment of your death? You could die a kafir because of that go into the Rwayat and see you've done oppression What does it say in the tradition a qadi a person who is adjusted? the justice you could say the Qadi what is he?  They still support them You know recently a person came to me and they said to me child They said our mother and this is the flip side of it says everyone's children or everyone's mother support their children Our mother doesn't always support us whenever we do something. She asks us question. She interrogates us She does the just thing, but if you look at other people's mothers, they support them point blank I said you should be thankful and grateful that your mother has justice Because she's paving her way towards heaven Regardless of whether it if it's my son or your son the fact of the matter is that when they're wrong They're wrong do not be one of the oppressors and this is one of the reasons why I wanted to mention this because in every mosque not just In Shea more Sunni mosque you find in every institution and Again, no one's told me about the issues you may have it So I'm not going to raise any issues her as far as I'm concerned. There are no issues in Bathurst So I'm going to go next door to the other centers which are next door and I'll mention them when two parties are fighting When presidents are fighting when groups are fighting. What is our responsibility in that our?  Why are you aggressive because I've had a bad day's work today I got fired or whatever happened the minute you come into the house you start taking it out on your wife and your children What have you done you've oppressed them?  It's possible you die the death of a car for do you want to risk all of that?  The threshold for problems when they come in your life to tackle them are taken away You know you find problem upon problem comes for that person who's an oppressor Do not do them then in the same way that you find wives as well Straight away they start abusing without knowing it They start abusing and raising their voices and saying things to their husbands not realizing that they're doing it Sometimes the people that we care about the most we take for granted Make sure that you don't oppress your wife your children or your husbands. You see it happens in our daily life Oppression is something which is open to us It happens in our mosques. It happens in our madrasas. It happens amongst brothers and sisters But be a person like Amid al-Mu'minin. That's just Develop that justice in yourself that even when it comes to his own shia, you know what he says he says that I'll treat you with justice Treat you with justice Regardless of whoever you are whatever you are second thing one oppression second thing false statements How many times do we swear or we say a custom or We say something And we don't live up to it false testimony in a core of law Even if it's going against you Don't ever lie. They say lying is the key to sins of the minute you begin to lie The Imam alai salam is saying there's a tradition that says it says my she has made sin But one thing they don't do is they don't lie My she has made too many things. They may be very sinful all sorts of sins But the one thing that they don't do is they don't lie. They're truthful Second thing painful death if you have that vice that you lie. You're not a shia Remove that within yourself But then the Imam says another thing and this gives us hope he says it may be my she is well sin They're not infallible.  You say that, right? I feel embarrassed. How can I face my Lord? I've just sinned and I was sinning yesterday as well and I'm sinning today But Allah says he says even if you sin, don't turn away from me my servant come back to me Even if you've sinned make sure that you repent straight away Regardless, yes, you feel embarrassed is good to feel embarrassed Is the day when you don't feel embarrassed is a day that your heart is now being closed? second thing Third thing see Thorba is a very powerful thing. It takes you back to Allah. What are you saying? You're saying I repent and I come back to the Creator again So make sure that you make a covenant with yourself deep down whenever I sin I'll repent straight away The question is asked a lot of times the youths ask the question, right? How about if we're persistently sinning does Allah still forgive us? The answer to that is Allah will continue to forgive you if you make the intention that I'll never do it again Be remorseful cry be embarrassed and then say to Allah I will never do it again if you have that hundred percent conviction that you will never do it again Even if you were to sin again, but that conviction was there the certainty was there Allah will forgive you and if again you repent with hundred percent sincerity and again your sin Allah will still forgive you even if it's a thousand times Allah will forgive you a thousand times the difference is the state of mind You need to make sure that I'm trying my best that I will never sin again and see what Allah does He will help you then he will push you a question was asked They were asked how can we know that Allah is accepting us and our sins are being forgiven in the traditions It says if a person is enjoying praying if they have that Lezzah while they pray if they have the pleasure while they pray The more the pleasure increases the more you realize that Allah is accepting your prayers and Allah has forgiven you from your sins But the more you find that you are distracted and pushed away from your prayer You find that the more you are moving away from God This is why no one thing someone came to the great master of Irfan Said Ali Gazi that mountain of Dohid the teacher of Allah Mata Bata Bayi the teacher of Ayatollah Bachar the teacher of Hassan Allahi the teacher of Ayatollah Khoi comes up to him and he asked him He says tell me say it tell me one thing if I want to reach Allah if I want to gain Allah if I want ma'rif of Allah If I want to be an Arif if I want to be like you tell me one thing that I can do just the one thing I have time for nothing else Give me that one thing that I can do that I can reach Allah said Ali Kadi replies and says if a person For 40 days praise Oh well it worked on time and if he doesn't see spiritual gain or the fact that they're moving Maqamat He can come in he can spit on my grave if he has to do that It's the power of a person who's praying There's a handwritten note from say that he guarded that I have a photocopy of it says this if a person takes care of his prayers Everything else takes care of itself if you are having financial difficulty Make sure that you're praying on time that you make the axis of your life your prayers And you see all of those things all of the problems trials and tribulation are alleviated from your life This is why one thing we say and that thing is this that regardless of who you are How big a sinner you are whatever you do and don't give up on your prayers You know a lot of times people will say to you look at you your sin, and you still pray What kind of a believer are you don't be disheartened by them whoever you are however you are whatever sin You are doing continue to pray to Allah the minute your prayers become cover and the minute you forget your prayers No, the mercy of Allah has been lifted up from you when that mercy is lifted Where you're gonna go then to what doorstep are you gonna go when problems before you you have moved away from the mercy of Allah? So make sure whatever happens however sinful you are make sure you pray for God's sake Don't leave one thing and that's a threshold of prayer as long as you have that prayer What did Amir al-Mu'minin say battle of syphine is going on swords are Flushing in the night sky Amir al-Mu'minin turns out he says it's the time for prayer a person comes to him and says to him Amir al-Mu'minin We're in the middle of a war He says what are we fighting for we're fighting for this prayer. He says you continue I'm going to pray Allah Akbar. He starts on the battlefield praying. That is Amir al-Mu'minin Go back and see say the Shahada our time comes. What does he say he says it's the time for prayer But Mola is a battlefield He says that we are doing everything for this prayer the purpose is this prayer Later on a person comes to Imam Zain al-Abudin alaihi salam He says to him after Karbala comes to me says Mola tell us who won Yazid or your father?  He says now Mola tell me who won Imam says Do I need to tell you who won the fact that prayer is still established means that my father won and Yazid lost The entire battle is for those two units of prayers Those two units of prayers Symbolizes to heat when a person comes to the Imam and he says you have given us the kabir the major sins Where is not praying? You know you said the first thing is shirk Where is it that not praying the second thing for example is losing faith in God and then after that lying and alcohol and all of these Things then in the kabir the major sins The Imam replies. He says not praying a shirk comes into the first category Why?   That means your entire life will be spent in buying that Ferrari and buying that big house and having that wife and Having those children that she was wanted you forget the idea that the purpose is not the wealth The purpose is have wealth but have it for the sake of Allah Second thing now, let's go to the third thing from false testimony if we move forward third thing usurpation of the right of orphans How many people do that in a day in a lifetime in a month in a year? Let me give you an example those olama of Najaf, right? When a father would pass away and he had small children they wouldn't even eat at that person's house You know why not even a glass of water because they would say just in case that's the inheritance of that child That's how strict they were they were strict to such an extent that they didn't even take the wealth of an orphan just in case You see if these three characteristics are there of a person you find they died a death Very difficult death


Hello everyone and thanks for joining us today. Today we're going to talk about the Falco Playground, which is a new project we recently launched, which involves Falco, an amazing open source project here at the CNCF, and WebAssembly, which we successfully employed in our community over the past few months. First, let's spend some words about us. Hey guys, my name is Rohit and I'm a 2023 Google Summer of Code contributor at Cloud Native Computing Foundation. During this period, I was responsible to build Falco Playground with Jason as my mentor. As the program ended, I maintained Falco Playground and contributed to Falco repositories. Now, as a member of Falco Security, I am excited to share my work done during this period. In I am Jason, I work at SISDIC as a senior open source engineer and I'm a full-time core maintainer of Falco, being in the community since about two years ago. Now, quick disclaimer. Before starting the WebAssembly project we are about to present, we had zero knowledge about WebAssembly. The only thing we knew was some high-level information you can read about online, about the technology and how amazing it's becoming. But we also think this is the beauty of the session. We want to share our story as beginners of the field and how WebAssembly is helping us, filling an historical gap in the Falco project, with the hope of inspiring others like us doing the same in the future. If we made it, you can do that too. So let's start. First, let me give you some context about Falco. Falco is a cloud native runtime security tool incubated by a CNCF and we are currently attempting to achieve the graduation level, so stay tuned and wish us luck. Falco monitors everything happening in your system and sends you an alert whenever something suspicious is detected. It is a powerful, efficient and expressive rule engine for runtime security rules. The main use case of Falco is to observe high-volume strings of events that are security relevant by collecting them very close to the edge with resource usage kept to the bare minimum. Think of it like a security camera but for cloud native environments and applications. Traditionally, this happens by instrumenting the Linux kernel and by collecting events generated from your system. Intercepting the system calls of the system gives you major visibility over every single process, file, container and how they behave around time. In Falco, kernel instrumentation happens with either a kernel module or a BPF, of which Falco is a great adopter. A nice feature of Falco is that the Falco libraries also allow recording security streams of events into capture files for later inspection and forensics. This feature will become relevant later in the presentation. And although the main focus of Falco's tool remains container and endpoint security, Falco also is dramatically expanding its use cases in the space of cloud security. For example, Falco can now also collect cloud logs from AWS and GCP and let you write runtime security policies on top of them too. Falco is also the most widely adopted runtime security project for Kubernetes and it is of course a first citizen integration that we offer. So yeah, this is just some high-level information about the project and of course I don't expect any of you to have everything figured out throughout from the beginning and this is not really relevant to the session anyways. But I firmly believe that after working in the project for about two years, the best way for understanding how Falco works is by taking a look at a real-world example to have a better feel about what the experience is like working with the tool. So let's take a look and here it is one. So what you're looking at is a real-world example of a Falco rule set. So Falco rule sets are the basic way by which you configure Falco to work at runtime and they just define a group of security rules that are evaluated one by one for each events of the data streams that Falco serves. So Falco rule can have a name, a description and an output that is formatted with information and metadata about the event whenever a security alert is triggered. Every rule has a severity level which you can configure as a minimum level for Falco to trigger so that you can make it noisy just as much as you need in your system. You can have tags and any sort of meta information to better manage your rule sets. And then there's the most important part which is the triggering condition of the security rule. This is evaluated for every single one of the events that Falco monitors at runtime and for every security rules in the rule set. It is a very simple Boolean formula in which you can use a rich set of data fields describing information about the event plus some more information which is remembered by Falco in a stateful engine given all the events that it saw in the data stream from the past. So the context of every event is much more richer than what the event contains just itself. For example, if you read through a file but you opened it before, Falco will remember right away what the name of the file was. This is very powerful. There's also more features like the possibility of grouping Boolean conditions with macros or lists and make them expanded around time whenever you load the rule set. So as you can see, the biggest challenge of using Falco is actually writing the proper set of security rules for it to evaluate a runtime. We as a community and maintainers provide a rich default set that is useful and acceptable for most environments. But of course, users usually write their own rules, but that requires some level experience. Amazing. So you got Falco, you got your own set of security rules. What do you do with it? The first thing that people do is usually testing that the rules actually work. And you can do that by running Falco as a process in your local Linux system and trying to reproduce some suspicious activity and check if the rules actually trigger. Once you're sure, you can just deploy Falco in your environment in your cluster. You can do that by installing that manually on every single host. You can run Falco as a container or just use Kubernetes like most people. We as a community provide a pre-built and ready to use own charts and deployment manifests. So let's say that you got Falco running in every of the nodes of your cluster and you want to open a shell. You do that and then you start typing something to do some potentially suspicious activity. If you got a rule configured in Falco for detecting that attack pattern, Falco will let you know instantly because it will see the event happening around time by looking in the system right in the moment you do it. And then Falco is also supporting a rich output framework in which you can just pipe the security alerts whenever a channel suits you better. And remember the possibility of capturing the stream of events in capture files that, well, Falco is also capable of reading those instead of actually doing live capturing the system. This is tremendously useful for testing the security rules worse as expected on a stream of events that you recorded. And there we just got closer to the problem we're trying to solve with the Falco playground. So one of the things you want to do for the playing Falco is writing rules and testing them. And how do you do that? Well, you define your rule set in a YAML format that Falco supports and use the Falco tool itself for validating that the rules is okay. If it's not, Falco will give you a rich output of everything that doesn't work with errors and warnings either in text role or machine readable format. And once the rules is acceptable by the tool, you get around Falco and then the configure that with your rules and start doing activity manually trying to see if the rules you wrote actually match the attack pattern that you want to detect. So it's a bit trial and error process. You have to go through the whole loop and it's not very handy. It requires a tiny bit of experience. And we didn't want that bar to be high. We actually wanted our contributors and our practitioners and users to have a much more easier life in testing that their rules at work and everything works as expected in runtime detection. Okay, okay. Wait a second. Hold on for a minute. Everything is interesting so far. Falco is of course a fantastic project. But isn't this a WebAssembly conference? What am I doing here? And what even is the Falco playground? Okay. Assume that I want to solve the gap that I just talked about. And I want to create an easier solution for people to write their own Falco rules and test them before deploying Falco to staging or production. Right? Other projects have something similar.  Can we do something similar with Falco? Answer is yes. Falco is the tool responsible of both validating rulesets and giving you indications in case something is wrong and then configuring those rulesets to be matched against security events at runtime testing that everything works as expected. We will probably need a backend server to run Falco into and then some sort of web platform for our users to use in order to play with Falco. Right? That is a solution but it's also costly to develop, maintain, and also deploy because we need servers in our open infrastructure. Can we have an alternative? And then it hit me. WebAssembly lets you compile programs in most languages in something that runs natively in your browser client side. C++ with which Falco is written is not an exception. So that's what we did with the Falco playground. This is the idea that I proposed as a Falco contributor and maintainer to the Google Summer of Code and we got selected. Here is where the collaboration between me and Rohit started. The Falco playground has been his project for Google Summer of Code and it's the new platform that we just bootstrapped for let people play and learn about Falco rules and testing them. This is all client side without the need of any backend thanks to the power of WebAssembly. I will let Rohit speak about this project from now on. Thank you Jason for the detailed explanation. Now allow me to introduce Falco Playground. Simply put Falco Playground is a web application used to validate Falco rules. A good example might be any online co-editor available on web which is similar to Go Playground or a Java compiler. The key difference is that while online editor or compiler use a backend server to compile its rules, Falco Playground uses WebAssembly to validate its rules. How is it validated? Well, the rules written in editor will be sent to Vasem module for further validation. In upcoming slides, we'll explore how Falco Playground functions in more detail. With Falco Playground, you can edit, create, import and update your Falco rules. It provides a quick, seamless way to compile Falco rules without the overhead of installing Falco itself. Moving forward, working of Falco Playground can be simplified into three components. The editor component, the memory component and the Vasem component. The editor is a client-side-facing application where you write all your Falco rules. The rules are written in the form of YAML file and stored in memory. The file is then fed to Vasem module that is loaded into the browser. And finally, Vasem module validates the rule file and provides the output. Now let's dive deep into each of these components and see what is going on behind the scenes. By now, we know that mscripten emits a JavaScript file and a Vasem file after a successful compilation of C++ code into WebAssembly. The JavaScript file contains information about the Vasem file, like its location and exported functions. It also contains information on how to instantiate the Vasem module into the browser. During this process, the exported functions in the Vasem module are mapped to individual JavaScript functions that can be referenced by Falco Playground whenever it is required. In almost all cases, an inbuilt function namely instantiate streaming can be used to fetch Vasem module. The next essential step is to store all the Falco rules within a single YAML file. Typically, this file is named as rule.yaml which is then supplied for Falco for validation. However, when using a web browser, things can get tricky because browser restricts direct file writing, updating, or storage. To come back this, mscripten offers a file system API that allows us to temporarily store files in memory. These in-memory files can be then seamlessly provided to Falco for further validation and processing. Here, we use memfs or memoryfs that comes packaged with mscripten. Now that the rule files are stored in memory, we have to supply these rule files to Falco for further validation. After supplying the files, we have to extract the information that Falco provides after validating the rule files. Falco being a command line tool, it outputs information in terminal as a standard output. However, in a current setup, this information gets displayed in browser's console, which is not really helpful. To solve this issue, we take a different approach. We override the print functions provided by mscripten and instead of directly printing the information to the browser's console, we store it in a local variable. This allows us to capture and manipulate Falco's output within our web application, making it more useful and accessible for further processing and displaying. In essence, we are just redirecting Falco's output from console to a place where we can work with it effectively. Now, let's set our focus to the error handling part of Falco Playground. These errors are displayed in multiple locations, the errors in the editor are displayed as quickly lines, and in the terminal as just plain text. The errors in terminal are also color-coded for visual cues. To list this further, let's look at two examples, one where the rule validation is successful and the other where it is not. In successful case, the console message on the right-hand corner of the screen displays output in a reassuring green color. This signifies that the validation process was successful. On the other hand, when there's an issue with the rule syntax or configuration, you'll immediately notice a different set of indicators. To gain more insights, let's look at a quick demo of Falco Playground. Upon loading, Falco Playground contains an editor, a terminal, and a group utility buttons. When you load the website for the first time, you can see an example automatically loaded into the editor. Now, let's try to create our own short and simple rule. This rule alerts whenever the file is opened or modified at a certain directory. First, we use fields such as rule name and description to tell Falco about a rule. Then, we use condition to write a logic. Output to display when a rule is triggered with some additional metadata, and last but not the least, the priority. As you can see, the editor behaves similar to autosave and auto compile features of a code editor. Autosave? Yes, all updates to the rule file is stored in a local store object. Okay, what about auto compile? Well, Falco Playground also listens to changes in the rule file and automatically violates it. Moving on, let's now talk about the terminal. The terminal is essentially the standard output of Falco. It contains messages emitted by Falco after validating the rule file. The validation can either be a hit or miss, which is indicated by using colors. In addition to squiggly lines inside the editor, the terminal provides additional contacts about the error. Falco also provides output in JSON format. It contains location of specific error in terms of rows and columns. This information is then provided to the editor and the editor displays the squiggly lines. Now, let us go over some of the utilities that Falco Playground has to offer. We know that Falco Playground automatically violates the rules whenever there is a change in the rule file. If in case when we would read to run it manually, the run button can be used. We can also import YAML file containing the rules. This, of course, is understood as a change in the rule file and is compiled automatically after importing. We can also easily download the rules written in the editor by using the download button. The file is then downloaded and named as rule.yaml. If you are testing a short rule, it can also easily be copied using the copy button. Falco Playground also has an option to load multiple examples. Each of these examples provides a base and a starting point to write your own rules. How do you check if a rule works? Well, Falco Playground provides a functionality where you can validate rules by using a SCAP file. This SCAP or syscall capture file contains kernel events that is occurred over a certain period of time. This helps us emulate kernel events without the actual need of kernel. We get a response whenever a rule is triggered against the event in the SCAP file, indicating that the rule was working as intended. What if you want to share your work? Well, Falco Playground also allows the user to share the rule file. This is done by encoding the entire rule file and creating a link. The link can then be shared and the rule's original return can be retrieved. Last but not the least, we also have an option to test our rules against our own SCAP file. In this example, the SCAP file contains kernel events emulating a socket event. When we write a rule to trigger on a socket event, we get a response containing important information about that event. While Falco Playground's file form might look simple, it was not all sunshine and rainbows during the development. To talk about this, I'll let Jason take over from here. Over to you, Jason. Thanks, Rohit. I guess it's time for the closing remarks. Let's go through some of the challenges that we found along the way. First, much of the code of Falco was still tied to the kernel-side system monitoring use cases. We use CMake as a project manager, given that Falco is a C++ project, and everything was a bit tied together, so we needed to modernize it in order to compile just we need and exclude all the parts of code and dependencies that were not compatible, either with WebAssembly or with the Playground project. Second, a big chunk of the Falco features is developed using multi-threading to achieve optimal performance, and we have to exclude that because we couldn't make it work with WebAssembly so far. Maybe it's our limit or our limit of the technology we want to find out in the future. Another big gap is that Falco recently to use over the past two years a very rich feature named the plugin system that allows users to load and run Falco's extensions around time and make the tool more powerful. We couldn't replicate that with the Falco Playground in WebAssembly yet, so that's a point of improvement we want to work on in the future. Speaking of the future, what are the next steps? First, we want to start supporting official web packages distributed for Falco built in WebAssembly target so that people can use that in their own projects they want alongside with the JavaScript loader. Second, we want to allow people to record their own capture files in data streams and then upload them to the Playground so that people can actually test rules not just against some of our example data streams but also with their own. Speaking about examples, we plan to provide plenty of more and improve the ones that we have with better documentation and comments. Last but not least, we want to integrate all these examples and snippets in our website and tutorials so that people can share pieces of Falco rules and play with them interactively while learning about the project. And then we look forward to have new contributors. So, if you're a web developer, you like frontend and you're interested in the WebAssembly space or you want to contribute to a CSF project, please reach out to us. We will be super happy to have your help. And thanks a lot for listening so far. Last, don't forget to come in our community and say hi. We meet every Wednesday in the weekly community call. You can find us on the Falco website in all the public channels or socials or on the official Slack channel in which we chat. We are super happy to make our first steps in the WebAssembly community and we look forward to have you as a new community member and contributor. Let's talk soon. All right. Thank you, Jason. So, this talk was a little different than some of the others, more about a high-profile use case for a CNCF project adopting WebAssembly and using it to improve their developer experience. Anyone have questions for Jason? I've got one, Jason. What about integrating the tools and this virtual platform layering into the CICD for organizations? Is that a valid use case for this? So, there was an argument about trying to install Falco inside the GitHub actions to create that action potentially to protect those. That is not strictly related to WebAssembly but we actually are exploring the possibility of using the fact that now Falco compiles to a native WebAssembly package, basically, to implement that as well. From the point in which we recorded this, now we have a pipeline for actually publishing those packages. So, we don't have official ones, meaning that they don't follow our official release schedule, but we have that packages for whenever we do changes, basically. So, that is fully integrated in the release pipeline of Falco as the other regular executables that we provide to people. Those are picked up by the CI of the playground page and, yeah, that's pretty much, it is self-sustainable from this point on. Any other questions? Oh, in the front, John. Hey, so, great talk. I think, were there any lessons learned that stand out to you in the process of porting, you know, a large native C++ code base to WebAssembly? I know, you know, kind of taking what originally was a native app and getting it to work and work well and have feature parity in scripting is something that a lot of people do, but I think a lot of people also learn a lot of hard lessons along the way. That's a good question. Thank you. Lessons learned. This is actually what we wanted to bring to the table. Like, this may be probably in the presentation less technical than others, but we wanted to share our experience actually using the technology first. Falco is a pretty large code base in its entirety. It's more than, I think, 300K ISO code. And it was like a challenge that we wanted to take on. Falco truly believes inside the playground to run in a Linux system entirely. So it just does everything that it does usually. We needed to strip off, of course, the connection to the kernel share buffers. So system call collection doesn't really happen, but most of the features, actually more than 80% of the features are still in place. For example, if in the capture files you do container executions and stuff, that is actually available in the Falco playground. The one thing we needed to strip off is the Kubernetes metadata support, mostly because it was very hard to isolate, but most of our entirely code was able to compile without too many issues with them scripting. With the exception, of course, of the multi-threading parts, which are there in some places in the Falco code base. So that was the biggest challenge, probably. Are you running just single-threaded, or were you able to use one of the various threading solutions for WebAssembly today? It is mostly single-threaded. I mean, the event processing model of Falco is single-threaded, luckily for us. So that was not a big issue. So this mostly works in that way. Another point in which we really struggle is the plugin system, which in Falco natively runs a shared library. And that was probably a cool use cases mostly because if Falco runs in WebAssembly, then you could potentially create maybe a plugin, like a Chrome extension that actually watches activity as you're running the tabs. That was a cool idea that we got, but we didn't explore that yet. So the option that we have right now is to statically compile plugins inside the tool. But that's not super easy because the plugin system is multi-language, and some of those are written in Go. So then you have a totally different challenge. Exactly. It just buys up. But yeah, we explored this as well. Thank you. A lot of great lessons learned. Any last questions for Jason? Thank you, Jason. Thank you.