So good morning, everyone, from me, too. Start. So first of all, it's great to see so many people here today. And with all the Boston parties going on, that's kind of a surprise, right? Because people don't tend to show up for the morning sessions after drunk, for example. So thank you very much for coming here today. But before we start, who can tell me? Louder. Louder? OK. OK. So before we start, who can tell me what's in the picture here? Any guesses? Shout if you know. Right. Excellent. That's the venerable, electronic, and numerical integrator and computer. And that's a photo vignac from late 40s, early 50s in the US. And I find this picture very, very fascinating for various reasons. The first is all the wires. They are just mesmerizing. And I don't know if I should be ashamed or proud of my desk looks like this sometimes. But the most important thing here are the two programmers. In particular, the programmer on the right, who is Betty Holberton, and is the creator or rather the inventor of the breakpoint. The breakpoint is this fundamental tool of debugging, but also of testing, especially in those days. Because how did you do testing in those days? Well, you could test end-to-end and test the end result. But if you wanted to test anything internal, then you just had to stop the world and check the hardware state. And that's where the breakpoint is very useful. And we have come a long, long way since then. We have better tools. We have better processes and better improved practices. But at the same time, it feels that we may be a bit stuck in this era also. We tend to forget to underutilize the tools and forget all the lessons. And in this talk, I'd like to explore this from a free software perspective, where things I feel go wrong and how we can improve. So this is a picture I took perhaps 10 years ago from a tour shop. And that sign in the picture had caught my attention immediately, even though I hadn't realized what was going on from the start. And take a minute to see if you can find out what's going on wrong here. But this was my subconscious telling me, ringing bells and alarm bells, something is wrong, danger, danger. In the same way, over the years, I had internally developed this impression that not everything is rosy in the automated testing world concerning free and open source software. It was mostly back then based on anecdotal evidence of a general feeling that I was seeing project bugs that were inconsistent with having comprehensive automated testing. And this kept bugging me for many years. At some points, I decided to explore. But how do you explore this? How can you make just a large scale survey and have some kind of conclusion for false in general? So the canonical metric for test comprehensiveness is test coverage. But this is quite hard to extract from various code bases. And for example, you have different languages, different tools, different build systems. So I was thinking, what else can we use? And I considered two metrics in the end. So the first is test commit percent, and the other is test size percent. So test commit percent is the percentage of commits in a code base, which affects the test in some way. And it makes intuitive sense that if this number is large, then the tests are being taken care of, that they are developed in sync with the code. And thus, they are probably more comprehensive. And similarly for the test code size, neither of these metrics is fail-proof. But I think they are good enough for at least large scale surveys. And then the other question is, on which projects do you run this whole thing? Do you extract the metrics from? And I decided to use the GNOME and KD projects, basically all the thousands of sub-projects that make up these top-level projects. And the reason is that they contain a wide variety of sub-projects that range from, for example, end-user applications to core infrastructure libraries, to graphics libraries, command line tools, so a bit of everything, basically. And yeah, I run some tools I developed to extract the metrics. And who wants to hazard a guess what this was going to look like? OK, no brave man here. But this is what I got. So basically, notice the very tall line at the zero point. That means that about 50% of the projects don't have any testing at all. And that's kind of sad, right? And then the other line at us, 80%, tells us that in 80% of the projects, at most one in 10 commits affect the test. So think about this for a minute. For every nine changes that you make to the code base, bug fixes or features, you only have one commit that touches the test. And that's a very big red flag. I mean, it's not the end of the world, perhaps, but something's very fishy here. And I got similar results for the test code size ratio for this project. So one thing I also did was I got ratios for other projects that I knew that were better tested just to have something to compare to. And you can see that the metrics are much better here. And this is a good sign that our metrics are actually working correctly. So OK, so we have some indication that not everything is correct in the free software world concerning automated testing. But why is this so? That's the burning question, right? And there are various reasons. There are some reasons that are not particular to free and open source software. For example, many people feel that testing code is not worth their time. Or perhaps it's too expensive, especially in the beginning. And that doesn't really have to do with free software or proprietary software or any other development model. But I believe there are a few reasons that are particular to free open source software that are worth exploring. And in order to do that, I want to go back to the past, back to 1968, when this conference happened. This is the first software engineering conference ever made. And it was organized by NATO. So there are many of the big minds of the era gather and discuss all the things that they thought need improvement in the field. And they came up sometimes with solutions. But often with very witty and insightful codes about the state of things. And if you haven't read the proceedings, I highly recommend that you do. So here's one interesting code from the proceedings there. This is from Alec Galini. He's often credited as being the first creator of the first compiler. And he said, software manufacturers should desist from using customers are their means of testing systems. And in the 50 years since this was written, I'm not sure that we have learned the lesson properly. And sadly, I think that for free software, it's a bit worse than the general industry standards. So why is that? You see, in free software, having a bug in the code is often not considered to be such a big deal, right? The software is provided as is and without any warranty. And to be honest, that's completely fair. Myself, as a free software developer, I wouldn't have it any other way. But at the same time, that means that there's this conception that fixing bugs, that bugs are cheap and fix them is also cheap. And in reality, that's a somewhat pragmatic attitude to have because why spend resources, precious resources, trying hard to prevent bugs when fixing bugs is actually quite cheap from the developer perspective. But here's the caveat. This is a very developer-centric idea. And from the user perspective, things may not be so simple. For example, if as a user you have lost data, if as a user you have had your system compromised because of a security bug, then you certainly don't feel that bugs are cheap. And yeah, at this point you may say, okay, so are you saying that there's no, that free software sucks in terms of quality? No, because there's another thing, pulling the rope in the other direction and that's professional pride. Free and open source software has a lot of that. And the developer is in the spotlight for the good and bad things, right? We have good blame, we have good praise. Everyone knows what we're doing. So it's just that many incentives in free software seem to point to a more reactive rather than proactive approach, right? So, and this is something that we're going to see also in the next topic. And moving to the next topic, I want to go back to the future, to 1999, when this book was published. So this is the Cathedral and the Bazaar. This book explores two different ways of developing free software, the Cathedral model and the Bazaar model, and this book in particular supports the Bazaar model. And it contains a number of quotes or lessons, as they're mentioned, about how free software works or should work. And here are two very interesting ones in the book. Every good work of software starts by scratching a developer's personal itch. And the other, release early, release often and listen to your customers. So, for the first one, you may, first of all, you may have doubts about the absolute terms in which it's phrased. But one thing that is true is that many software projects in the free software world start by scratching a developer itch. And often they start small and without any plans for significant growth or adoption. And at this point, the incentives to have an automated test suite to spend time on this are limited. At the same time, even in cases where projects start with more lofty adoption goals, then, you know, this is, they may follow to a great extent, this mentality, release early and release often. And this mentality has great benefits, but if followed to an extreme and also if followed very early in the project development, leads to projects placing the focus too much on features, too much on becoming as relevant to the public as possible as soon as possible. And often the incentives again here, from that perspective, spending limited time and resources on writing tests may seem like a bad use of time. But regardless of how a project starts, typically if it starts to grow large, then bugs start creeping up. And at this point, developers say, okay, so perhaps now it's time to have an automated test suite. But, you know, it's too late by then in most cases that the test, the code has become test and friendly. It's difficult to add tests at this point, typically. And most projects just don't do that. So again, we see here, this idea of tests as a forethought compared to tests as an afterthought. So like a reactive versus proactive approach. So, now that book contained another very interesting code which is probably the most well known in the free software world, given enough eyeballs, all bugs are shallow. And this is called Linus's law in honor of Linus. Linus didn't say that, it's just in the book there. So, and it refers to code reviews. So, let's see, code reviews, free software is very privileged because code reviews are in the heart of their development model. And that is because only limited people have access to the code base. So, every change, every merge request, pull request that needs to come in needs to be reviewed at some point, right? Unfortunately, some projects take again this to an extreme and the trust on code reviews is so great to that other practices include automated testing are forsaken. So, don't get me wrong. Code reviews are one of the best ways to maintain quality in the code. They help maintain a design, a sane design. They ensure that all the changes align well with the architecture of the project and the overall goals of the project. And they also help catch bugs, but only some of them, some of the time. And the problem here is with not the code review idea itself, the idea of code reviewing, but the fact that we are doing the code review humans. And humans, we have inherent limitations, right? Our brains are limited. We are great at creative thought, but we're also great at overlooking details. And also when there are gaps in our understanding, we are very happy to fill them with our own unicorns and rainbow-based reality of things. In addition, as the code base grows, all the interactions and the possible states grow sometime exponentially. And it's very difficult for us to keep all that state in our mind. And so follow the code paths and the implication that one chains may have. And so in theory, this problem of human limitation is offset by the open nature of the code and the fact that we have enough eyeballs. But what number is enough? Even the biggest free software project, Lynx Kernel, for example, only have a limited amount of reviewer checking the changes. So it's good. I mean, more is better than one, right? But at the same time, that enough is very indeterminate. So sometimes it works, sometimes it doesn't. And that means in the end, for all the reason I mentioned, that code reviews by themselves, as excellent as they are, cannot stand as the only tool. And we need to be careful not to place all our trust in code reviews and forsake other tools that we have. So for the next topic, I'd like to explore more fundamental question. And that is the question of learning. How do people learn in general? They basically, and in particular, how they learn that some software practices are beneficial to them so they can follow them. So they learn by example. They learn by mimicking what the best in the field are doing. And they learn about this from books. They learn about this from videos. They learn about this. If they are lucky enough, they have a mentor. And again, free software is very privileged here because we have this huge library of Alexandria of code, right, that we can go into this library and explore. And this is indeed what many people do. They explore this library and try to imitate what their role models are doing. And when they go into this library, what do they see? So based on the graphs I showed you earlier, then they see a big pile of nothing in terms of automated testing. And on the other hand, the other extreme, they have this like monstrous code basis with huge test suites and arcane test suites. So this is an example of a test that belongs in this category. On purpose, I made the small font very small because it didn't want to scar you for life. So please don't read it in detail. And the whole thing, this creates a negative network effect. So why should you bother doing automated testing when your role model project doesn't or when you see something like that? And I mean, this is ugly.  And we need to be very, very careful with the examples and the culture we create and promote because it's really a slippery slope and things can get really out of hand. I'm sure the 80s started with all the best intentions and then we got this, right? So this is not something that we want to happen to free software and automated testing. So it's very important that we should create more and better examples. And as the saying goes, be aware of advice but follow good examples. So I'm now going to break that rule a bit and because I'll try to give you some advice and starting with this, embrace automated testing from day zero. So as we talked about before and perhaps many of you have experienced, the larger project gets without testing, the more difficult it is to add, more difficult is to add testing after the fact. And this is particularly important for free software because as I mentioned before, the incentives are there for being reactive rather than proactive. So having tests from day zero is an important step. But it's not enough to just start with tests. We need to maintain a good testing culture for the lifetime of the project. And this is where the next piece of advice comes in. So we need to set the bar high first for ourselves as for example, maintainers of the projects and also set the bar high for contributors also. And so yeah, basically we need to lead by example. And it's often the case that contributors may need some help to get over that bar. And we can do that a bit proactively. For example, we can have a very nice and clean test suite, easy to understand. So people can just jump in. We can use frameworks that testing frameworks are well known so that the barrier for entry is low for people. And sometimes someone will come to the project, will have an interesting bug fix, but they're not interested in writing a test. They just throw it at you. And it's up to us to try to encourage them, but if that doesn't work, we'll write the test ourselves and this is fine. And finally, the last point here, be humble. And you may wonder, what does humility have to do with automated testing? And I say basically everything because automated testing is an acknowledgement of our inherent limitations. Like as I mentioned before, in ourselves and the limitations to invariably create infallible complex systems. It's basically humility in the face of overbearing complexity. And we need to be humble in order to accept all the help we can get from tools like automated testing, like code reviewing, whatever works for people. So an interesting note here, when I started out programming many, many years ago, I had the impression that the more experience I got, the more I got exposed to projects and people and teams, the more confident I would become in just sitting down, getting in the zone and streaming out, super correct code, right? And that didn't happen. Actually, the exact opposite happened. The more experience I got, the more I realized how fragile this whole process is, how intricate the act of writing code is and how I needed to depend on other tools, external tools to help me maintain the quality. So closing, I would like to mention one last thing. Free software is a culture of openness. It's a culture of cooperation. It's a culture of respect. So we want to promote automated testing, but we cannot demand it from others. We can only encourage it, but most importantly, we need to lead by example. We need to be the change that we want to see. So, thank you. Right. Is there any data to factor in this nice old-flight code? I see those 50% of projects with tests that they are hard to maintain because of these other metrics or because of these problems that arise or because of these amount of work requests or something along those lines. Okay, so the question is, we have all this data that tells us that projects don't have tests and does this correlate with projects actually being harder to maintain? That's the question, right? So I don't have exact data for the maintenance side of things. At least hard data for this, but I do have personal experience in this. And yeah, it's about the question, right? We need to have data like we've got data for this. Is the correlation there? But no, I sort of don't have data. Like a number of bug reports or, you know, that'd be one of... So supposing for a moment that all tests are written properly, what would you consider to be a healthy percentage? I mean, of course, if I'm not testing the robot, so like 40% and 60% just in terms of general, generally, what do you consider to be healthy? Right, so there's no good answer here because, yeah, sorry. The question is, what kind of percentages would be normal for healthy projects that have like a good amount of automated testing? And there's no good answer here. For example, look at this graph here. There's a variety of projects spanning, you know, all kinds of things from database to display servers to core libraries, which are considered well-tested. And their ratios differ dramatically, but they are all high. I think we can perhaps set a minimum amount. Like we can say from the graph here that 20% at least should be something that we should aim for. For example, notes the MIR project there. You notice the very high test commit ratio. And that is because I know that it is using test-driven development. So that's an indication of that. And the exact numbers also depend on the commit practices, right? For example, some people, you know, may squash the commits or it may have separate commits that are merged. So there's not really a very good answer there. It's just a feeling of being comprehensive. And by comprehensive, I mean having at least the core functionality covered. Because in my experience, something that actually started this interest for this topic for me was I was getting projects. I updated them. And then something very core broke. And I was asking myself, did no one test this? And of course, the answer was no, right? There was no testing there. The testing the test or the testing framework? Oh, the test. The test themselves. It depends, right? So I normally don't do that, to be honest. Unless I feel that a test may be too complex. For example, I may have, for example, test doubles that try to imitate some complex part of the system. For example, in one project, I had a test double for D-Bus, like for interactions with T-Bus. So I actually wrote tests for that, right? To ensure that my double was working correctly and then the test. So probably only for the more complex parts of the test. Because then, when do you stop, right? Testing the test and the test, you know, you stop nowhere. Sorry? Yeah? Yeah, if that makes sense for that project? Yeah. So yeah, one of the questions, the comment that the Linux kernel has tests their tests. So yeah, that's a great thing to do if it makes sense for your project. So I guess it depends, right? Yeah, sorry, the question is, is there a way out of the misery of not being tested? And so for, there are some, you know, books and articles about dealing with legacy code and that perhaps should help there. Like, you know, you consider this project legacy in some way, right? Not tested. And you go through the process of figuring out what, first of all, what it should be doing, right? Some tests for this. And then you start refactoring it to be even more testable and go through the cycle. But in most cases, I would say no, unfortunately, you know. I don't want to be not optimistic, but I haven't seen that very often. Unless it's a very high profile project, you know, that someone is very interested in. Yeah? Yeah? Yeah, the thing is that for many people, if it is too late, then it's not worth it to go back and add.  You don't have all the internal interfaces to check things. But of course, it depends on the project. If you can do it, that's great. That's awesome. Thank you.


So, now we have to ask the reverse question which is for every mixed strategy, does there exist an equivalent behavioral strategy? So, let us first do a simple lemma, so if player i has perfect recall, then for any two nodes x and x dash in the same information set, what can you say about this, so but can you tell me why, so player has perfect recall means what, so these are what is gamma i of x it is the set of pure strategies in which a player i takes actions leading to node x, now x dash is another node, but it lies in the same information set as x, in the same information set of player i, so these two are in the same information set of player i, now if these two nodes are in the same information set then gamma i of x is equal to gamma i of x dash which means the set of strategies that get you to these two nodes has to be the same, why is that, go back to the definition of perfect recall, see perfect recall was asking that if two nodes are in the same information set and one of them has a precedent predecessor, so x and x dash are in the same information set, x has a predecessor, let us call it x bar then x dash will have a predecessor x hat suppose and x bar and x hat will be in the same information set and moreover the action that you take here going leading up to x has to be the same as the action that you take leading up to x dash, what does this mean, that means if x and x dash are in the same information set of player i, you look at any preceding information set in which say x has some predecessor here, the action that you would take to lead go up to x is the same as you would take the as you would at x hat, so in short this same thing now I can keep repeating all the way back, so not just for this predecessor all the other predecessors of x also, I will have the same problem essentially, so what this means is the fact that I am going to x and the fact that I am going to x dash locks my actions essentially I have the, if x and x dash are the same you are in the same information set from root down to here player i should have taken the same sequence of actions to get to these two, so consequently it means that as far as the path going from x, going from root to x is concerned and the path going from root to x dash is concerned the same sequence of actions are being chosen, on other paths the player can do whatever he wants, so therefore this essentially is ensuring that gamma i of x is equal to gamma i of x dash, the set of all such pure strategies is actually the same. So, this is quick lemma, so now let us write out the theorem and hopefully let us see if we can prove this today. If player i has perfect recall then for every mixed strategy of player i there exists an equivalent behavioral strategy, so for the proof, so first let us set up some more notation, so suppose for any node x and action let us say a in let x superscript a be the game reaches a is played at x, so suppose you have a node and you have an action that is available at that node, so node x and an action a that is available at that node then when the player takes action a the node that the game reaches is denoted by x a, x superscript a, so now what we want to do is we want to start off with a mixed strategy and show that there is an equivalent behavioral strategy, one other little thing related to this let me write this out, so can you tell me what is this, so if a is an action that player i can take at an information set eta i of x then what is gamma i of x superscript a, what is the set of pure strategies can you express this in terms of gamma i, x superscript a is this node that the game reaches when a is played at x, so can you write the set of pure strategies in which player i takes actions leading up to node leading to node x a, now express this in terms of gamma i of x action a at x right exactly, so this is gamma i in capital gamma i of x such that gamma i at the information set eta i of x is equal to a, so all those pure strategies which specify this particular action at this information set all those pure strategies from gamma i of x which specify this particular action, so this will give us some structure, so now let, so step one, let sigma i be a mixed strategy of player i, now what we will do is we will define this in the following way, we will define a behavioral strategy, the probability of taking an action a at an information set eta i, this I am putting this notation like this because I want you to see that this is actually a conditional probability, so this is the probability of, this is is the probability of taking actions leading up to node x a under the mixed strategy sigma i divided by the probability of taking action, of taking actions leading up to node, so this is eta i and let, so here is how I am defining my behavioral strategy, so for any information set eta i I look at a node x in it and I do this, I take the ratio of the probability of by that the mixed strategy specifies of taking an action leading up to node x a, where a is the action of that, so for any information set eta i and an action a at that information set, the behavioral strategy I am defining is going to do this, it is going to give probability, the probability it is going to assign to action a is this, so it will take the, it is the ratio of the probability of taking an action leading up to node x a under the mixed strategy divided by the probability of taking an action leading up to node x, so it is essentially the conditional probability, given that you have reached node x, what is the probability now that you are taking action a, because this is the probability of reaching node x and then taking action a, this is the probability of reaching node x, is this clear? Okay, one subtlety here, I need to worry about what happens if the denominator is zero, say for example, there is no pure strategy, so rather there is a mixed strategy, the mixed strategy I am choosing does not give any probability to pure strategies that reach x, okay, so if the denominator is zero then what do I do, so for that, so this is therefore defined only for if denominator is greater than zero, now if the denominator is zero, then what you do is simply choose an action uniformly at random, so if this, if you are denominator which is this summation, if the denominator is equal to zero, okay, now here is at least we can complete this one part today which is this, so now I have just constructed a behavioral strategy from this mixed strategy, right, it specifies this as the probability of taking an action in a certain information set, now you do you see something odd in this, in this construction, so that is something very odd actually if you look at it, see here on the left hand side I have an information set and on the right hand side I have actually a specific node in the information set which is x and I said I will let x be any node in this information set, so this is a well defined definition provided the right hand side is actually independent of x because eventually a behavioral strategy should act only on the information set not on the specific node, right, so it has to be invariant with the choice of the specific node in the information set, so I need to first show that this is in fact a well defined behavioral strategy because it has to be independent of the choice of x, so long as x is in eta i, is this clear, so why is this now independent of the specific choice of x, so that needs to be shown, so first to begin with for this to be a valid behavioral strategy, so first let us now take, let us take two x and x dash, so step two showing that bi is a valid behavioral strategy, so now if let suppose x, x dash are in the same information set, if x, x dash are in the same information set what did we just conclude, layer i has perfect recall, so we just concluded that we just concluded this, we also said that this particular way of expressing gamma i of xa, so consequently what happens is if you look at this denominator here, if I replace x by x dash this denominator is going to be in the same because gamma i of x is equal to gamma i of x dash and in fact numerator is also going to be the same, right, so this follows from the lemma, so therefore this in eta i then this follows from the lemma, all right, good, so now this means that it is in fact a function of just the information set, I also need to argue that this is in fact a behavioral strategy which means that if I sum this over a I should get 1, it is clearly greater than equal to 0, I need to show that also need to show that sum of bi of a given eta i a in ui eta i this is equal to 1, how do I argue that? That is actually again straightforward from the definition of gamma i of xa, we also need to show as I said we also need to show that this sums to 1 and the reason this sums to 1 for that all I need to argue is that the numerator when I sum, numerator depends on a, the denominator does not depend on a, here this numerator depends on a, denominator does not, if I sum the numerator I should get back the denominator, right, that is all I am looking for, so that is actually easy to argue basically what I have is remember if I have two distinct actions a and let us say a dash, so these are say two distinct actions then this is or rather why distinct actions if I in fact I do the following, this if I take the union of all of these over all a in my action set at the information set eta i this is a disjoint union equal to gamma i of x, so for distinct actions these are disjoint for distinct a, right, so if you take because after all at eta i I am asking you to take an action a, if the actions do not match then obviously the pure strategies will be this different, so this gamma i of x a actually if I take the union over a it is actually a disjoint union and that gives you gamma i of x, so that from here it follows that therefore that the if I sum the numerator over a this is in fact equal to the sum over this is in fact equal to the denominator itself, okay, all right, so this is just established that we have a valid behavioral strategy, okay, step 3 is this, so suppose x x i 1 to x i li x, suppose these are the nodes at which player i acts leading to x, now if I look at the let us say the l plus 1th node in this, this is actually nothing but the, so the pure strategies in which player i takes actions leading up to node x i l plus 1 is actually nothing but the pure strategies in which player i takes actions leading to node l and then takes action the action specific, the action that takes you from x i l to x i l plus 1, right, so this a where a is equal to a i of x i l going to x i l plus 1, okay, all right, now let us just calculate this probability and that is that will be it, so probability of reaching node x under a behavioral strategy bi, this probability is equal to the probability now of taking the required actions, the probability of taking action a i of this is the probability of taking action leading to node x at the information set eta i of x i l under the behavioral strategy bi where behavioral strategy bi was defined in this through this whole formula here, okay, through this two case by case formula, okay, so then this, so now, now there are actually two cases, one in which the denominator is 0, the other is denominator is not 0, let us just do the denominator not equal to 0 case because that is the more complicated one, the denominator equal to 0 is actually kind of degenerate and it works out easily, okay, so this therefore is summation of gamma i of capital gamma i, so let me denote this guy here by a l, okay, a l is the action, the action that you take at node l going to node l plus 1, so a l is here, okay, so this is a l, so this is just substitution so far, but notice that what is the set of pure strategies in which you take actions leading to node x i l plus 1, it is the pure strategies where you take actions leading to x i l and then take action a l at that node at x i l, so what is going to happen is you have actually this product now over l, but then the numerator and denominator of consecutive terms are going to be equal, you are going to get cancellations, so this here is the, for any l is actually going to be the numerator of the next term, right, because you keep on dividing by the probability of reaching a particular node and then in the next step, you have probability of reaching that node divided by the probability of reading the previous node etc, etc, so this actually telescopes and eventually what you are left with is equal to the probability, so you are going to be left with this summation, you are going to left with summation gamma i in capital gamma i of x because that is the last node you will reach, that is the last node divided by sum over gamma i of the probability of gamma i, let us say x i 1, now so what you are left with is this term where the numerator is the probability of taking actions leading up to the node x that you are concerned with, denominator is taking the probability of taking actions up to the first node where you have and what is that? That is actually the set of, this gamma i of x i 1 is actually the set of all pure strategies because this is the first time you have, right, so this is actually the set of all pure strategies, so the denominator is in fact, this whole thing is in fact equal to 1 and so therefore, you get that the numerator, so the probability of, so what we get is that the probability of reaching node x under behavioral strategy B i is equal to probability of reaching node x under sigma i, this remember is nothing but the probability of, so we get rather let us say we get this and this is nothing but this probability, that is all, so that is all there is to it, so this ensures that we have that for every mixed strategy, that is actually a behavioral strategy, so you can see the main thing we used is really this lemma to be honest, perfect we call what it ensures is basically this, you know that is all that is being used, all right.


Welcome back to the queue. We are live at Pure Storage Accelerate 2018. I'm Lisa Martin with Dave Vellante. We are here in San Francisco at the Bill Graham Civic Auditorium, which is where we're sporting some concert t-shirts. Who? The Who and the Clong. Roger. I really view technology as being a three-legged store, compute, networking and storage. And storage didn't keep up at the same time that data was exploding. We spent a good chunk of time troubleshooting issues directly related to storage before, whether it was storage creep, where we had too much data versus the capacity of the array or the input-output problems in terms of IO, latency, those types of issues. We don't see any of that anymore. Pure has always said we're going to make Flash cheaper then or as cheap as spinning disk, and we're going to drive performance and we're going to differentiate from the market and we're going to be first. Right now, only about a half of 1% of the data that companies have can even be analyzed because it's being kept in cold storage. And at Pure, we believe in no cold storage. You know, it's all got to be hot. It's all got to be available, able to be analyzed, able to be mined. They talked about going all in on shared accelerated storage. It's going to be multi-cloud. And so, we wanted to provide an architecture to platform that removed the trade-off from the bottlenecks, while also being open and allowing customers to take advantage of container technologies and platform as a service technology. As a CIO, I would imagine you don't want to wake up every day and think about storage with all due respect to our friends at Pure. Storage should be self-driving. Infrastructure should be self-driving. These are not things that, you know, in a boardroom, people care about. What they care about is, how can they change their business and have a competitive advantage? One of the things that really impresses me is their focus on sharing with multiple workloads in one place.  We went from 40U of old school spinning disk, lots of complexity in cabling, administration, down to two, three U M20 arrays. They're more heat tolerant. I have two power cables in each and two network cables, so complexity is gone. They're providing the pickaxes and the shovels and the basic tools, but the real challenges of AI are where do I apply it? How do I infuse it into applications? How do I get ROI in it? How do I actually have a data model where I can apply machine intelligence? If you understand the way machine learning operates, it has to practice on tens of thousands of millions of samples. It could take all year, or it can take hours. And what you want it to do is take minutes or hours. Those things will start to identify patterns and genomic sequences that humans aren't, you know, finding with their typical approaches. Our genomic platform is built up to the point where they have enough sequences in them to do that sort of analysis.  You can add capacity and upgrade your software and move to the next generation non-disruptively. Why is this a big deal?  So Pure solved that problem with its Evergreen model and its software capabilities. Every three years, they swap out your controller as part of your support and maintenance agreement, which is, you know, huge for us because we don't have a lot of money. We have, budget is very small for IT. The Evergreen model was brilliant for us, but simplicity was critical. I can't just keep adding staff to look after a new technology. It needs to look after itself. No uplifts on pricing for NVMe, so everybody's going to follow that. The Evergreen model, they can do these things and claim these things as we were first. Of course, we know, David, that you were first to make the call back in 2008 on Flash and the All Flash Data Center, but Pure was right there with you. We've always wanted to be the pioneers. You know, we always wanted to be the innovators. We always wanted to challenge convention. The other piece that they've done really well is marketing, and marketing is how companies differentiate today. You've seen that sea of orange that's here. It's a bit infectious. People have become dedicated, you know, not to an entity. They become dedicated to a cause. Enabling so many, 4,800 plus customers globally to really transform their businesses. And that's one of the things that I think is cool about this event is not just the plethora of orange everywhere, but the pride and the value of what they're delivering to their customers. Congratulations. Thank you. We're just getting started, and we really appreciate all the work you guys do. So thanks for being here. Thanks so much, Dave, for joining me all day. The who to my Prince symbol. David, thanks for joining us in the wrap. We appreciate you watching The Cube from Pure Storage Accelerate 2018. I'm Lisa Martin for Dave and David. Thanks for watching.


My voice is very bad. So This would be mostly gameplay You don't want to be listening to my voice anyway. I just got a whisper in this game.   I have no voice So silent stream.  I've lost three drones man. They're not good Can I lose that?  Oh shoot voice Actually, well, okay, my voice sounds pretty rough So that's what I haven't been able to Shoot any new content like in the past couple of days Because my voice is just a mess Hopefully it'll go back to normal soon All right. Thanks everyone. I'm gonna rethink what I did in this game Have a good weekend Gonna get some rest and then have a good weekend You Mura worth it. You sing the voice All right, I had to rethink how about that. I'm how I'm approaching this game Bye guys


This study found that the greater consumption of ultra-processed foods in Brazil is associated with a decrease in the quality of the dietary nutrition profile. This includes increased energy density, higher overall fat content, higher saturated and trans fat, lower levels of fiber, protein, sodium and potassium, and higher levels of free sugars. Additionally, the study found that the consumption of ultra-processed foods leads to a general deterioration in the dietary nutrition profile when compared to the consumption of processed foods. The study concluded that the replacement of traditional meals, based on natural or minimally processed foods, with ultra-processed foods is leading to a decrease in the quality of the dietary nutrition profile in Brazil. This article was authored by Maria Laura de Castelluzada, Ana Paula Bortoletto Martins, Daniela Silva Canella and others.


Welcome! Are you interested in the meaning of words, sentences and utterances? Would you like to know how humans convey meaning to one another? Do you want to understand the principles that underlie conversation? Well, then this is the perfect open online course for you. The VLCP MOOC, Linguistics 103, The Nature of Meaning. If you have a virtual linguistics compass account, which is of course free, accessing the class is quite simple. Just log in with your personal data and you will find the class on your personalized VLC start side under your current classes on the virtual linguistics compass. A click on the class name leads you to the class start side where you have access to several class related links, for example to the bibliography, the links section, of course the class description which is this video and links to the social media, for example to the Facebook group associated with this class. Furthermore, and this is a novelty in the world of online courses, your class is a permanent MOOC, a PMOOC. But how does such a PMOOC work? Here are the central principles of using a VLC PMOOC. Central to our PMOOCs is the idea that you have access to all units of a class at any time. However, if you wish you can also define your own fixed rhythm using the class timer. Let's say you want to go through the class on a weekly basis, then select the seven days rhythm. If this is too short for you, go for the ten days rhythm. If it's too long, select say a four days rhythm. Please note that the rhythm is just a guideline for you. It marks the unit you should work with in red and makes available the practical solutions in time. Whenever the red marker moves on, you will see these clickable symbols on the practical sheet. But note that of course you are free to change your rhythm whenever you like and you can always override it at any time and access any unit of your choice and the components within it. Let us now look at the content of Linguistics 103. The class consists of 13 units where the first one, the class preliminaries, informs you about some general aspects of the class and discusses what it means to study online on the virtual linguistics compass. Well, the last one is your option to evaluate the class. The remaining units exhibit the content of this class, which is subdivided into four main parts. The first part looks at word meaning from several angles. In part two, we will deal with the meaning of sentences, which involves an X-course into logic. The third part focuses on the meaning of utterances and discusses the principles underlying conversation. Beyond these three central parts, we will look at additional phenomena such as ambiguity and vagueness or meaning from a historical perspective. And our teaching and learning concept? Well, studying on the virtual linguistics compass simply means go through each unit at your own pace. Make use of as many VLC options as possible and if you don't know what to do, use the advice options on each unit start site. And if you want to contact your peers, either use the class-related forum or the Facebook group MOOC Linguistics 103. And if you want a certificate, well, here are our options. The simplest option is the statement of participation issued by the virtual linguistics compass. You will receive such a certificate for regular and active participation, including the submission of at least one worksheet and for free. Once you have successfully submitted a worksheet, you will be eligible for such a certificate and can open it by hitting the open statement button. The second option is the statement of accomplishment, also for free and issued by the virtual linguistics compass. To be given such a certificate, we not only want your regular participation, but we also want you to do the mastery worksheets, our electronic tests, one for each unit. And we want you to achieve an overall score of all the worksheets of at least 60%. A simple click on the open statement button and the certificate is yours. If you want to obtain a graded statement of accomplishment, select yes down here. This most advanced option of certification includes your precise grade, the workload in hours, and a complete list of all the tasks you successfully submitted. This graded statement of accomplishment is issued by Marburg University in conjunction with the virtual linguistics compass, and it involves a fee of currently 45 euros. Once you have satisfied the conditions and have decided to obtain such a certificate, you first have to open the invoice and transfer the money to Marburg University. And once your payment has been accepted, you can download your personal graded statement of accomplishment via a mouse click. Well, that's it. In case you have more questions, do not hesitate to ask us, for example in our Facebook group. The rest is up to you. So, thanks for your attention and see you soon.


Live from Las Vegas, it's theCUBE. Covering Discover 2016 Las Vegas. Brought to you by Hewlett Packard Enterprise. Now, here's your host, Dave Vellante. Hi everybody, we're back. This is theCUBE. We're live here, day three of HPE Discover 2016. It's my pleasure to welcome back Patrick Osborne. Patrick, you know, longtime, Cube, guest, Cube alum, saxophone player. We can't get enough. Let's talk about that a little bit. He's joined by Michael Lindsey, who's a system architect at RNDC out of Atlanta. Welcome to theCUBE, great to have you on. Yeah, you like Lenny Pickett? Love Lenny Pickett. He's like the original, right? Yeah, of course, Tower of Power fan. He's on Saturday night. He's the saxophone player on Saturday Night Live. Big inspiration, he's good. Awesome. Okay, well, let's start with Michael, because Patrick, we talk all the time, but so. So Michael, tell us a little bit about RNDC. What do you guys do? You're liquor distributor, but tell us more about your business. RNDC's second largest liquor distributor in the country. We're across 20, 22 states. I can't remember the exact number. We've grown over mergers and acquisitions. Started out as an East Coast primary organization and kind of spread out from there. We run the gamut of HP products. We started out as an old deck customer, went to Compact, followed Compact over to HP, and have been going strong. So they still sell billy beer? You guys are probably too young to remember what that is. I know what that is. Okay. Chibi Carter's brother used to have a beer for those young people in the audience that don't know what I'm talking about. So your role as a systems architect is basically to architect the entire infrastructure, or are you mostly focused on storage? We can talk about that a little bit. I architect the entire infrastructure, anything aside from networks. And wireless communications. So storage, servers, virtualized systems, hyper-converged systems, backup and recovery, BCDR, remote office, that's all under me. So paint a picture of what your operation looks like. Infrastructure. So we have a primary data center in Atlanta, Georgia. We have a secondary data center for disaster recovery in Houston, Texas. And then we have remote offices all over the place, sales offices as well as warehousing offices that run local systems, file services, domain services, some SQL services for the warehouse systems there. And the apps that you're running, maybe talk about those a little bit. Are they custom? Are they off the shelf packaged? You run Oracle database? A lot of stuff that we have is custom. One of our primary order to cash systems that we have currently is on OpenVMS, written in die ball, which is a very old language. It's a cold ball derivative. We actually own the source code for that product because the company has been out of business for so long. So we have quite a few developers that have learned that language. And right now we're bringing in younger people and teaching them that die ball code to continue to program on that. So people might think, wow, why are you doing that? That might be crazy because it's adding value to your business and to convert off of that would be insane. We are actually getting ready to ramp up conversion to get off of that system as well as get off three other order to cash systems that we have. We just recently signed a contract with Oracle and have brought in Superdome X into the environment. So we're going to be running everything off of Oracle EBS and SOA suite for an integration bus. And real time processing. So we have about a five to seven year project to do that. Okay, that could be another 20 minute conversation. So we'll just stay away from that. And the storage infrastructure that's supporting these apps is consistent or is it a bunch of stovepipes? How does it? Not to be pejorative, but that's how it works. For me it's consistent. It's HPE. Our tier one storage is XP P9500. Okay. Our tier two storage is three par 7400. So we just got into three par two years ago. We came from an EMA system years back when we were running Alpha processors. Moved to an EVA, outgrew the EVA and decided we needed something that was a little bit more stable and rock solid for replication and went to the P9500. Okay. So you hear a lot of talk about software defined. Maybe Patrick you could talk a little bit about that.  Give us the update on what you guys are talking about at the show, what the reaction has been with customers. So we have a number of customers like Michael who you have your core IT, right? And you're using technologies like all flash to take cost out, accelerate, you know the performance of those applications regardless of their sort of legacy apps or if you're moving to Oracle but that's a core IT that we're looking to accelerate with three par and all flash. For a lot of customers like R and DC they've grown through acquisition. You've got a ton of IT operations that are outside of your core data center. So we're really trying to help customers take cost out in those areas and also drive simplicity. So Michael started a journey with using our store virtual technology, right? So bring in store virtual which is a software defined storage layer putting that on servers for the purposes of putting a number of workloads on there that I wouldn't say they're tier one workloads but they're pretty important, right? So file services, print, some SQL, right? Taking that and it's very simple. It's, you know, you've got servers co-locating storage with your compute and then to further that journey since Michael doesn't have a ton of IT staff to manage this and build these things on their own moving that model. It's the same architecture but moving to an appliance model, right? So the hyperconverged appliances that we have. So HC250, HC380. So you get that same experience and the same architecture but in something that's very easy to deploy less than 15 minutes, right? You can scale that out. Very intuitive user interface. And then you don't have to really deal with it at a local office of patching servers, updating disk firmware, dealing with your SAN, right? It becomes all collapsed, very simple infrastructure. So that's kind of what we're doing right now with software defined. So Michael, you mentioned you were on a panel earlier this week. Panel is next right after this. Oh, okay. Patrick and I spoke about hyperconverged yesterday. Oh, okay. So what was that conversation like? Share with us what you guys discussed. Any questions you might have had? Kind of our journey, where we started five, six years ago. We needed to replace all of the physical servers in our remote locations. We don't have a lot of expertise in every remote location. We have some tier, some first level support in those locations.  So we look for a high availability solution. One of our partners said, hey, have you ever looked at VSA? Said no, and I don't know anything about it. He's like, well, let me show you. So he said, take two physical servers, put this VSA software on it, and you've got a cluster that you can fail over, you can upgrade without any downtime. He said, okay, we like that. So let's start deploying that. So we started deploying that with Gen6, DL380s, kind of grew those, increased memory on those, distrives on those as the use case built out, and continued those through Gen9s. So we even deployed some brand new systems last year that were dual Gen9 DL380s. And all the time we're looking for the next best thing, that gives us more consolidated systems because we don't have a lot of room. Each one of these locations does not have data centers. They have a closet that they have a two-post rack, and that's really all the space. Some of them have a table. So we're putting servers on tables. So we needed something that was a little more compact, but also had the high availability resiliency. And one of our storage guys from HPE came to us and said, have you heard about this hyperconverged thing? No, tell me about it. He said, well, we've got this HC242 system. And we looked at that and thought, it's not quite a fit for us, because they didn't have a lot of the, I guess what you would call special sauce built in yet. And he said, well, hold off for a little bit. We've got this new thing in the works, HC250. So when that came out, they started talking to us about it. And we said, we like this. This is great. It gives us everything that we need in one package. We've got one software package to deal with. We've got one firmware package to update everything. It's all inclusive. Our guys in the remote locations don't really need to know anything about it. We can deploy it. It's invisible to them. It's invisible, right. And things just run. When you say it didn't have the secret sauce, you've been talking about the maturity of the stack, or is that- The maturity of the software. The one view instant on piece and the management capabilities.  And you couldn't manage in one location. You had to manage each individually. So we waited for centralized management. You didn't have the resources out there to do that. We have two people. One of those is me and one is one other guy that works with me. The administrative assistant managing the servers. How do you back all this stuff up? We back everything up with store once and HP Data Protector, or excuse me, HPE Data Protector now. The documentation still says HP, probably. Right. We haven't updated that yet. Okay, so- We started that journey. We had Barracuda appliances. And we've had those for five, six years. And things just didn't quite fit for us. Their trickle out to the cloud did not work well for us. We never could figure out why. So we wanted- What was the issue? Just the performance or the backup window? It was a performance. A lot of those appliances weren't right sized for the locations. So we ended up filling those up and having backup retention policies of two weeks or some of five days. So we wanted to move to something that we used in the data center, which was HP Data Protector. So we used that in our data center for all of our systems aside from OpenVMS and iSeries that we have in there. So we wanted one stop shop for the entire organization so we could manage it holistically. So you had mentioned earlier that you're not responsible for the networking piece. But when you talk about, when you hear a lot about the hyper-converged, converged infrastructure and storage networking and compute coming together, do you see a day when that networking piece is all under one roof, as well as the compute in the storage or small shops? We are investigating software defined everything. I would say we're in our infancy on that, but our networking team is really on board with that. They see the value in it and they're fine with it. We have virtual connect now, so my team still manages some of the networking for blades and things of that nature. What's the appeal of that software defined vision and what are your concerns about it? My concern is the size of our staff and all the back end work to get that up and running. The appeal to it is, I think it will greatly simplify our disaster recovery and our ability to transition to an agile deployment for systems. Right, okay, so it's the learning curve of getting there. And then what about Flash? Are you guys investing in Flash at all? It's an interesting story. Three years ago, my director purchased a pure storage device and a month ago I pulled it out of our infrastructure. Really what? I pulled it out because of the price. The price point for the performance that we needed for the application just, it didn't match. But it was overkill. It was overkill. But you acquired the system, so you're gonna use it somewhere else? No, we're not. Our support runs out early 2017, so we're gonna go ahead and retire it. It's already depreciated off of our books. Okay. But we are gonna introduce some SSD Flash into our three-par array and take over that piece. Okay, and see how that goes and then evolve. Patrick, what else are you hearing at the show from customers? Day three now, so you must have a three. Good read on things.  Things feel pretty good. Yeah, things feel great. I would say that we have a number of customers that are in transition to, Michael has your traditional IT apps, that you're always gonna have to keep up and running, you have to cost optimize them, and we're gonna help them do that with things like upgrading his three-part, all flash and things like that. But the vision around automation and making things simpler for customers is that's becoming a reality here. So everyone, software defined storage is in slideware right now. We have people that are doing it at small scale, they're doing it in remote locations, they're doing it at remote offices, smaller data centers. We have people moving to hyperconverged, so that's at node scale, and they are absolutely doing that in the core data center and then being able to take that same experience in the same software stack at rack scale on composable and synergy is, that is for me that's super exciting because not only do you solve a bunch of problems around simplicity and cost, so we have this model of disaggregating servers from storage appropriate for a lot of workloads today, like obviously that's where you're gonna run your Oracle on, a lot of other workloads that you can deploy on servers with this stack and co-locate compute and storage together at a different price point, but be able to automate that is, I don't see anybody else that's gonna be able to pull that off in the industry. We have the portfolio to do it and that's what excites me about the portfolio today. You hear a lot about digital transformation and every conference you go to, that meme is, they hit you with that, is, what does that mean to a business like yours? So I would say for the last couple of years when you've heard that, for me it hasn't really resonated because we don't have a really agile development cycle. We stand up an application and it runs for years. I've got some application teams that are asking for that, but we are feeding out a lot more information to mobile apps and those things change quite a bit. So the digital transformation for us is trying to become more proactive to deliver that content to our employees, our customers, our partners, and that's what it's gonna mean to us. Service excellence. Yeah. Yeah, great. Excellent, we gotta leave it there. Gentlemen, thanks so much for coming to theCUBE. Quick last words, your thoughts on 2016 Discover? 2016 Discover has been incredible. I think for me, the market and most importantly, our customers have voted with their confidence in their business and their dollars with HPE, especially on the storage side. So for me, that's been just a great realization of a strategy that we put into place a number of years ago. So for me, it's just every presentation we give, every panel, every interview, we bring a customer along with us to tell the story, not coming from me, coming from folks like Michael, so that's really important. Charlie Parker or LP? Well, I'm a Coltrane guy. Yeah. And Michael, your thoughts on the event here, your things you've learned, things that have excited you? I think it's been great. It's really good to see where HPE is taking their business and steering customers and they seem to be listening to what the needs are for their customers and being able to provide solutions for those. Great. All right, we're here live at theCUBE. Thanks very much gentlemen for coming on. You're at HPE Discover 2016. We'll be right back right after this short break.


What's up, everyone? It's your girl Kenzie here from Leighton Sports Cards and I'm ripping a personal for James P We've got a 2022 Panini immaculate football hobby. All right. Good luck James. Thanks so much for your order Let's see we can get here for you See a big true RPA First up we have an Aaron Rodgers. That's gonna be 56 out of 99 and Rodgers next to 99 Antonio Gibson commanders Two-color patch 20 o Gibson running gamer events We've got jumbo patch Shannon sharp. That is 38 out of 49 Broncos Patches past and present to 99. We have Donovan McNabb and Jalen Hurts. That's pretty cool one color in two color Sick one here for you James. How about horizontal rp8 at 25 Kenny pick it There you go 14 to 25 on that one beautiful Kenny P Heck yeah, get that one in a mag for you and to end it. We've got eye black RPA to 99 Wanda Robinson Wanda Robinson on the silver rookie eye black RPA Alright congrats again on that pick it to 25 gonna get that right in a mag for you and we'll send this right out to you Congrats


What's the worry y'all welcome back to another recap episode ladies and gentlemen We had a nine game slate and though I didn't watch all nine like literally as I'm recording this the Phoenix Suns are playing over here They are by 20 and a half time I don't really have anything to say about that So we just go talk about all the other things we saw leave it like subscribe But let's get into today's sponsor and y'all know the sponsor is of course prize picks They've been a percentage sponsor of this channel for the entire season Be sure to hit that link in the description down at the prize picks app and use code Because you're matching up to a hundred dollar deposit for all new players price week has been one of the most exciting things about this NBA season Because it's me versus the numbers. So since we had nine games on today I was heavily invested so I put together two different lineups Let me show you how they did five pick flex play Jay shantae hit is over on the sis recent is over on the sis Jared Allen hit is over on points grace and Matthews over on points and he killed it And Jair Vanderbilt was just two rebounds away from getting over but since this was a flex play I only needed four things to hit so I was in the green number two another flex play Kevin Durant assists over Chris Middleton needed one more sis for it for this to be a perfect five for five But Freddie Kirsten Lever in dear Fox all came through for me today again It's just you versus the numbers But you do have help you can join a discord server with all the other people that are playing prize picks and they throw picks They help you put together the perfect lineup for yourself And I really really recommend all y'all to hit that link in the description download the app and use code Kenny because again they're matching up to a hundred dollar deposit for all new players It's so many people in the Kenny for real universe that are already tweeting at me their pics and their hits and everything just join in I think I want to start today's episode talking about the Dallas Mavericks because if you didn't know they went into Indiana and lost To the Pacers shots of the Pacers they decided they want to blow things up and they lost the game since it's kind of crazy I things like that can work care subvert names and trade rumors and he's been killing I showed you my prize picks I took the over and he hit that 26 points I love the transparency that we're getting from Miles Turner and his interviews earlier He was talking about how he wants to be more than just sit in the corner He loves the monster bonus, but he believes in himself He believes they could be better a bigger role in different places which I respect and today He kind of showcased some of the 17 points 10 rebounds He did more than just shoot threes which is good for him and ended up winning the game shout out to him But I really want to focus on the Dallas Mavericks and their struggle so far this season man This is a team that was just in the playoffs that was taking um The clippers to a long series With poor zingas going down an injury like this is a team that had pretty decent expectations coming into the season And so far they have been well under them Now some people did see this coming because they didn't make any change to the roster no significant change to the roster at me I did see this coming but it started off the season 12 and 13 and very early on in the season We were talking about how they're one of the worst good teams in the league They beat up on the bad teams but once they go against real competition they struggle today They could not shoot the ball and that's just not a today thing like we got more cubing going on to twitter You know make it tweets about the change in the ball or how much that's impacting this players in and having them shoot so terrible Today these boys shot 13.8 percent from three 13.8 percent from three is ridiculous Eli Kenny that's a one-time occurrence teams have bad nights It's not a one-time occurrence for the Dallas Mavericks this the other day on national tv against the brooklyn Nets they shot 19 percent from three this happens over and over and over for them And there's been a lot of criticism from for lucadonches this season Right came into this year out of shape and we're accorded the way through the season He still doesn't like you play Lee himself even late in his game He twisted his ankle and I don't know what the heck is going on with that because he just came back from an ankle thing But him being out of shape And him coming in bigger than what he normally is is not the sole reason why the Dallas Mavericks are bad right now I look at this roster and I try to think to myself What could they do To continue to build around what might be a generational player lucadonches for him to get a championship And they don't have draft picks left. They don't have any draft picks left They don't have a ton of assets to go in buy in I don't know what the Dallas Mavericks do from this point on to get to a championship quality team in a year or two Down the line. I don't know what I don't know what it is And again when you have a player like luka who might be generation will show that he could be generational You want to be able to build a team around him? I know he is still young and he just signed an extension But you still want to continue to put pieces around him for them to be successful And right now you're you're seeing that the pieces around him aren't good Reggie bullock played 20 minutes didn't hit a shot And that's kind of been a consensus for reggie bullock this entire season He ain't been able to hit nothing during fitty smith though. He only had four points today. He has been your best shooter That's a problem and I like door fitty smith. He's a solid really good ropel I would love to have him in chicago looky, but he should never be the best shooter on the court ever That's a problem that they're dealing with and I don't know what the solution is All right, let's talk about number two game number two of the day for me was the cavaliers beating the minnesota timmills This was basically a 30 point win. I don't care what the final box score says This was a 30 pointer where they pulled the start is pretty early on jared Now all you had to play 26 minutes every mobility 24 lorry market at 21 This was a legit blowout blowout, but I guess the third stringers of the minnesota timmills are go to and they made this look respectable It was not this is a very very bad loss for the minnesota timmills So you like kitty why are you talking about this 30 point win? But I just saw something on red before I hear record that it's incredible That maybe really want to talk about the calves more y'all know I've been backing the calves all season long and I think in the video where I was talking about every single team For a minute that was like a few weeks ago The calves were in a rut colin sexin had just got announced he was done for the season Every mobily had held hurt his elbow and they were starting to slide I think at one point they got to like a five game loser streak But since evan mobily has been back in the lineup they have been incredible They are 15 and eight when mobily is in the lineup That is a rookie caliber player And we already legitimately have a conversation trying to figure out If evan mobily deserves to be an all defensive player and he has a real life He has a real life case to be an all defensive player as a rookie And all the other players that have made an all defensive team as a rookie Let me read you these five players that have done it so far David Robinson Kareem Abdul-Jabbar Tim Duncan Hakeem Elijah want a manubo who is a kind of an ally but you know manubo blocked every shot he ever seen so But the four out of these five dudes are legendary players now, of course, we're jumping a gun I think last episode we made a joke about evan mobily being generational regardless This team is not just a team that you look at. Oh the young core They're gonna be good in a couple years. These guys are good right now Kevin Love in just a season's time went from a dude that was turning the ball over on purpose because he was frustrated To being able to come off the bench and play his role He wasn't minnesota today So I kind of expected him out of the game and he did off the bench because that's where it started off Minnesota But the calves again are a team that I really really enjoyed watching I ain't even mentioning a derrius garland and I could have made seven tweets today about derrius garland in his one hand It passes as aliou's or his logo three that he hit and it's a real conversation trying to figure out Which one of the two players between jared allen and and derrius garland deserve to be an all star this year because the way They're playing right now in my mind. They they they should get an all star. It might be j a or it might be Derrius garland. I don't really know that just felt weird to say do people call him j a i'm not gonna do that That's that that's j a just doesn't know is it going to be the frail Or derrius garland that's better. All right, man. Let's talk about this hornets keem's game I immediately knew this game was not going to have us a lick of defense It was the opposite of the type of game that I normally like but since I like diarra reaches the homie And then myos bridges a kelly uber or fun to watch.  I'm jumping a gun a little bit the martin brothers The martin brothers I made a tweet how they're climbing up the ranks of the best, um Brothers in the nba and when I tweeted that people were giving me their rankings and I forget there are so many brothers in nba So maybe they like the the ninth best duo of brothers in nba, which is still good I mean calip had I think it was calip had his career high against the bucks the other night And then today kody had his career high of 19 and so you had to play Kody marty gets it down low He gets fouled and goes up in my mind and everybody else is minding the arena It's an one I need to see that last two minute report because I don't know how you can say he wasn't in the Art of shooting or the actor shooting but regardless they were in the bonus. He misses one of the free throws He is the second boom He was also a guy that was three for three at the free throw line before that and there's a good three point Shoot a free throw shooter whatever and then right after I tweeted that this man and his brother are Climbing up the ranks. This man does a take foul When they didn't have any more fouls to give Blew the game. He sold the game at that point and deary fox a for a from the free throw line now deary fox Is not a guy that's known to be a 90 3 point shooter or free throw shooter But at that point he was a for eight this season. He's shooting a career high 75 percent from free throw So like he was already a for eight. These are just going to be too easy ones, right? He missed the first I'm like, okay. I guess that makes sense. He's you know, I'm saying he's not 90 percent And then he misses the second And he couldn't do nothing but smile let it bro They were hand at this win and deyara missed the two free throws Super unfortunate super unfortunate deyara the next one against the hawks I don't have much to say about this other than kevin rand is so fun to watch and great Trey young was great in this one and then kevin direct got switched on to him And they were like, you know what kevin you guard tray and you get it to his head You hug him a little bit and whatever people do when they're mad at each other, but they show love after the game So I guess they were mad um Completely neutralized tray young for the last couple minutes of the game Him or kevin rand and nicholas collapse to playing great defense on tray young and then you hit a couple big shots I think it was even kindred perk is that went up to twitter is like, hey, man Y'all not showing kevin rand enough love for defensive player of the year I wouldn't go that far I definitely wouldn't go that far But he is a definitely a good defender at this point in his career, obviously And he's selling his prime, which is crazy to say another player selling this prime lebron james 33 6 and 5 There's a staff from stat muse lebron james just played 15 games of season He has scored 30 plus points and almost half of them. He turns 37 this week Um, yeah, enjoy basketball y'all and and I know that lebron james has a lot of people that don't enjoy his game Or don't like him as a person regardless He's 37 years old. He's still putting up great numbers and still fun to watch Just enjoy it while you can if you want to hate him after words do that But just I mean it's great basketball at the end of the day I was so close to making a hit piece on the lakers after yesterday's loss And I was waiting. I'm like, you know what if they lose to the thunder again I'm ready to go all in anti lakers narratives and stuff, but they won today. So we're gonna have to hold out on that Yeah, people gonna take that way too serious the nicks lost to the rafters and it is the same old story every time You watch the nicks they start off a quarter terrible And I even made a tweet how horrendous they were at one point It was like 30 to 10 in the first quarter And then the second unit comes in and makes it a little bit better Then they fall all the way back to this game and at one point they hit the lead But then they get down to stretch and they forget how to play basketball and they can't get a rebound And they lose the game gary trip big old shots fray van vleet double double scotty barns with another double double This is what he do 15 rebounds this time and he realized it was 15 12 and 15 from scotty, but the nicks are um The nicks should be looking to make moves Is that weird to say alec burks didn't even realize he played 36 minutes hit a free throw One of them the nicks should definitely be looking to make some moves. Um, December 15th There was even a report from woach about a team or Group of teams that are looking at been cementing there might be a trade on the table immediately as December 15th When everybody's available to get traded I'm not saying that the nicks are the team or whatever But the nicks need to be making some moves because obviously this team doesn't have the same exact feel from last year That made everybody fall in love with them and shout out to the to the Rockets, man I legit thought that the bucks would go in and kind of blow them boys out and it wasn't a blowout It took all of yannis's powers 41 17 5 2 blocks 3 steals 5 Oh my god, he was just incredible tonight Um, it took all of his powers and chris middle to hit a couple clutch shots to put away Um, the hottest team in the league gary burr was still hitting the shots You got christian wood playing solid sin going off the bench doing big man moves against bobby portas But yannis is a different beast, bro Yannis is just a different beast when he wants to score There's not many people in the league that can stop him from doing that thing I guess pj tuckers on that list now because the other night against the heat that yannis struggled But there's not many people that can stop yannis when he wants to score And he wanted to score a lot, especially in that fourth quarter Then I saw that the suns didn't have deandre aiden of course. Devon booker was still out And I was not invested at all so my apologies and the other game I wasn't invested in was the pistons versus the pelicans I'm sorry I couldn't get myself to watch that game while the other games are going on You know what I'm saying like if I got a close game somewhere else of teams that I actually enjoy watching I'm going to watch that over two teams that I don't necessarily enjoy watching so my apologies. You know what I'm saying?