So that's at the stage. Several of the methods, though not that some products here in itself, will reappear today. But we will look at a more difficult problem that of simple linear groups. We see SL2 as an example, but mostly everything, I will say, today generalizes both the proofs and the statements. In simple linear groups, linear groups being matrix groups or groups of lead type, as you prefer. I will say almost, because SL2 and the like are not quite simple, but they are almost simple. That is, they have quotients or subgroups of bounded index that are simple. So we will do things in full for SL2, but that will just serve to make some simplifying assumptions, that's all. So what are the main ideas? So, well, a basic technique, just the first one we will see, which will save us a lot of work, is escape from subvarieties. This is a weak form, as Pivar and Savo have pointed out, of something we will prove using in part escape, namely, dimensional estimates. More about them later. These dimensional estimates will lead to what? Well, one of the center pieces of the entire of all proofs ever since SL2 is the idea that you find tori, in fact, basically all tori, you find tori containing many elements of your set. Or if not of your set, of your set, by times itself, a bounded number of times. a to the o of 1 will just mean a to the k, where k is a bounded integer. And these tori are used for, so once you have this tori with many elements of a in them, so a tori is just a set of diagonal matrices or some conjugate theorem. That's what it is in SLN. So once you have many diagonal elements, what do you do? You use them for pivoting an induction, much like what we did yesterday. Not yesterday, but yes. Whatever it was, yes. Was it Friday? At any rate? No time for a joke involving that. And is pivoting an induction lead to growth? Well, actually, so there was a case of a Spanish poet in the 15th century who said that after being released from the Inquisition's dungeons after several years of torture, and that was seen as a case of great forgiveness, but it might have been that he was absent minded. So at any rate, escape from subvarieties. So all right, so what do we use escape for? It's used to show that there are many, meaning as many as there are elements of a times a constant, elements of a, or a times itself, about the number of times that are generic in some sense, in some given sense. What do I mean by that? Well, just about any given sense. But what do I mean generic? Means in practice, outside a proper subvariety, a subvariety of positive co-dimension. Well, can I be more concrete? Well, say that we want an element, all of whose eigenvalues are distinct. That's a generic condition in the sense that not only are most elements or the great majority of elements of that kind, but the only way not to have that property is to satisfy an equation that is to be in a variety of positive co-dimension. So I will write down the example. So this is what generic means. So for example, a generic G in SLN is regular semisimple, meaning it has n distinct eigenvalues. So to be very, very concrete, ABCD, for example, has two distinct eigenvalues. Even only if the satisfying equation, which is a very simple equation, e plus 2. So rather, if you don't satisfy an equation, you are generic if you don't satisfy an equation. So escape from subvarieties is something that is used to escape from special cases that you don't want to bother about. All right. And how do you do that? Well, here's escape lemma. Let G act on a vector space V mod of k. Let W be a subvariety, a proper subvariety in V of k. That means since vector space is reducible, this means all components are of positive co-dimension. That is, the dimension of each component is lower than the dimension of the entire space. Otherwise, W would be all of B. So let A be a subset of G, as usual simplifying assumptions. Let X be an element of V such that the orbit, remember, this is the orbit of X. That is what happens to X when you multiply it by all elements of A that you might want to multiply it by. The orbit is not contained in W. So there is some finite sequence of A's that, when multiplied by each other and then by X, will give you something outside W. So there exists a way to escape from W. That's all you know. And the conclusion is that for at least constant times A elements, so a positive proportion of elements, in practice, G of A k, or k sub 1, we have that we have escaped from the subvariety. And the implied constants here depend only on the degree and dimension of W. If W is made out of several chunks, I mean the degree and the dimension of all of them under total number. All right, so a sketch of a proof. So first of all, let me just sketch the proof for a case that may look very special. But as we will see later, the idea is generalized easily. Once you put just one x-ingredient, just let W be a linear subspace, or union thereof. No, but let it just be a linear subspace to make the ideas as clear as possible. So suppose we're going to do a proof by induction. So suppose we have already proofed things for all W prime of lower dimension. In the base case of the induction, it will not bother about dimension 0, that you can do yourselves. So very well, we will see. What happens if GW equals W for all G and A? Well, that's an easy case. That will not happen in practice, because in either, you have that Gx is not in W for all G and A. And in that case, you are done, evidently. You are not even stuck in the space. So you don't even need to automatically escape from it. I mean, the conclusion is true for all G and A. Or what happens? Or then you have the Gx is in W for some G and A, naturally. And so, well, A, the set generated by A, the group generated by A, times G is just a group generated by A. So this is Gx. And then Gx is in W. And you're assuming that W is stable under the action of elements of A. And hence, under the action of the group generated by A. And so this would have to be contained in W. But this goes against the assumption. The assumption is that there is some way to escape from W. However long, however rare. And then we will show that it's short and common. So this is a contradiction to the assumptions. So we can assume that Gw is not equal to W. So what do we have then? We let W prime be the intersection of W Gw. Then the dimension of W prime is smaller than the dimension of W. So by inductive hypotheses, just by our assumption here, we have that, well, this lower dimensional thing, W prime, is something from which we can escape in bounded time and in many ways, for many elements H of A. But all right, but this implies, so this statement here, the fact that Hx is not in W prime, implies by definition of W prime that either Hx is not in W or Hgx is not in W. Hg or gh? No, excuse me. That's right because either Hx is not in W or it's not in Gw. So either in the first case, we have this. And in the second case, we just multiply by G inverse and you have this. So one of these two elements is not in W. But then you're done because for every element H that escaped, we get an element either H or G inverse H that escapes from W. Of course, we could have some repetitions, but it just halves the number. And so we're done. All right, so that's about it when W is a linear space. But how did we use linearity ever? Well, we just used the fact that intersection of a linear space and another linear space is a linear space of lower dimension, provided they are not the same. But in fact, that's a pretty weak consequence of being a linear space. You can do something similar for W general. We still have that, say, for W reducible, that the dimension of every component of W intersection Gw is smaller than the dimension of W. And the number and degree of the components is bounded in terms of the degree and so on of W. So this is just Bezu, right? So the first statement here is just common sense. You have any reducible variety. Any sub-variety of it is going to be of lower dimension. And the second statement, it's just a generalization of the fact that, say, on the plane, a curve of degree D and a curve of degree D prime are going to intersecting at most d times d prime points. In general, what you have is that if you have some variety of some dimension and another variety of the degree, say, d and d prime, then the degree of the intersection for some definition of degree will be at most d times d prime. All right. And if that is not irreducible, it's just a slightly more complicated statement. But it's essentially the same. Either the degree goes down or the number of components of maximum degree goes down. So just get the picture. And this is enough to adapt things. Just get the picture right. So this is a variety. Now I displace it. I have another variety. And the intersection is of lower dimension. And so that's enough to make the induction work, simply because dimensions are integers. So the induction ends. All right. So much for escape. All right. Very well. What do I mean by dimensional estimates? Dimensional estimates are, in fact, stronger. They give you an upper bound for how many things can live in a special variety, any kind of variety. And in fact, they give you upper bounds. And in some special cases, we will be able to get lower bounds, which are particularly precious. On this quantity, where, as usual, A is in GK. So this is an algebraic group. This is a field. A is assumed to generate G of K. So this can be softened a little. And W is a sub-variety of G. Very well. So what are our aims? We have aims of two kinds, lower and upper bounds. So we would like to get this, and we will get it, that the intersection of A with W is no bigger than you would expect it. Well, what would you expect it to be? No, this is huge. You expect it. I mean, if something is fairly regular and of a certain size, at least in three dimensions, you expect its size to be about the cube root of the size. So it's the same here. You expect this to be dimension of W, dimension of V. Expect it. What do you know about A? Well, you're assuming nothing about A, say that it generates. But this will be the slower A grows, the stronger the statement will be. Because you have a K on one side and A on the other. And K is some constant. And of course, the other aim would be, and this will be only partially attained for some W, that you have about in the other direction. This will be called proposition one, because it will be an attained aim. So what are the conditions? Well, the ones I have put here, this is achieved for G simple, almost simple. It can be simple or almost simple in the algebraic group. So the history of this statement, I mean, it's developed independently in two ways. So I was always working. Sorry. What is V? V. Where did V go? Oh, oh, sorry. This is team G. My apologies. Thank you. There is no V. All right. Thank you very much. Please correct me in the future. That was a test, an intentional, but still. All right. So all right. So when I was working on these things at first, I was doing it for a special W. Well, as needed. I mean, you gave me a W, and I will prove a result of this sort for a given G. And then say I had to do more and more, develop more techniques. But there was always some ad hoc work involved. Sometimes a bit painful. Lars and Pink, they had proven this sort of statement in full generality for G general, but for a very specific interface, namely AS subgroup. They were not in this business. They were in the business of giving a simpler proof of part of the classification. So what happened here is that Piber Sabo managed to strengthen what I was doing. And in the case of Rear Green Tow, they are using both, basically. It's a combination of ADS in both. So both of these teams have general statements very well. All right. So again, I will start working with a special case, and then I will show you that we don't use this apparently very special condition that much, and we can soften it. Just to make the ADS clear, we will do the case of W one-dimensional. It's enough to construct a map phi from Wk times itself. How many times d equals g times 2g of k? And what kind of map? An injective map. Such that what? Well, it's not going to be an arbitrary injective map. We want the map to map things in A, also in W of k, of course. So things that are both in W of k and A to A to the k. k is some constant. Why do we want this? Then we will have, well, injective maps, again, this is a kindergarten idea, but it's very powerful. Injective maps have the property that the image is of the same size as the main. So W of k over a intersection A to AD is going to be equal to the size of the image because of injectivity. This is d times. And so the other kindergarten idea is that if you have something, it's containing something, it has no more elements of that thing. Yes, so this is the size of p to the k. And now this implies we just take the d-th root and we get that this is at most A to the k to the 1 over d, which is exactly what we want because it's the esteem of W, which is 1 divided by d emoji. All right, how do we construct such a map? Let's leave that over there. May I erase your list? That sounds heartless. I will do that at the end. Very well. All right, so first of all, we don't really, really, really need an injective map. It's enough if it's a map that is finite to 1 or rather bounded to 1 in the sense that every element has a pre-image with a bounded number of elements. And we don't even really need that. We can soften that because we can allow some exceptions and the conclusion will still be true. So we can relax injectivity. Enough if, for every g in g of k, the pre-image has found the size. Or even just the pre-image, intersection with everything except an exceptional set is of bounded size. So W0 here, WD. Thank you. In SL2, it would be 3, but never mind that. Where W0 is a sub-variety of WD, a proper sub-variety. Since it is irreducible, this means of positive co-dimension. So it's particularly easy to see that it is enough, in this case, when W is one-dimensional. Because then, any sub-variety is going to be contained in a union of things of the form, just a point times everything, everything. So this guy is going to contain WKS3 for some s-finance. Very well. So how are we going to define phi? So we're going to define phi to start here, for the reference.  Very well. But what are these GIs? Well, we'll have to choose them. We'll choose them so that this map will indeed be almost injective. How do we do that? Well, what you will see now is that we will, are you going to use genericity again and again? And the wonderful thing about varieties, living in, say, an irreducible space, so you can always reduce to that case, is that as soon as you have figured, as you have shown, that there's a point lying outside the variety. You have shown that the variety is not a whole space. And if the thing is irreducible, it must be of lower dimension. So it's going to be an exceptional case. All right. So assume for simplicity, without loss of generality, really, that the identity is contained in W. So this helps us simply because it will be easier to work with the tangent space then. So let the tangent space to W at E be denoted by gothic W, which I will denote in turn by curly W because I do not know how to draw a gothic W. How do you draw a gothic W? No goths in the audience. At any rate, then the tangent spaces to these other things, G1, W, G1 inverse, G2, W, G2 inverse, et cetera, are just the conjugates of this curly tangent space and so on. So first of all, I will have a slightly more modest goal before going for injectivity. I just want these one-dimensional linear spaces, these lines in the tangent space to be linearly independent, to be in the different directions. So first of all, can I find a G1 such that it is different from W, that it's not W? So the question must be, first of all, is there such a thing? Can this be the case for all G in G? No, it cannot be the case because by assumption, G was a simple or almost simple group, so it's Lie algebra is simple. That means it does not have subalgeras. And so you are not going to have this. That's not how things start. Sable under conjugation, so because all right, very well. So you should say you have some such G1. All right. Can you have that this conjugate is contained in the span of these two spaces? Can you? No, because if these were the case, then again, this space would be stable under conjugation or some subalgeras. I told you it was simple and so on. So there are G1 up to GD minus 1 such that, well, the first one is linearly independent and the second one is not in this span and so on. So the sum is of the right dimension. It's of the full dimension. It's entire space. Very well. Of course, these GIs just exist. They are in G. But what happens? This just means that these are linearly independent things. So the fact that this condition is true is just the same as saying that a certain equation is not fulfilled. So a determinant is not 0. In other words, the good GIs are the ones that live outside of a variety. We have just shown that the variety is not all of G times G times G times G times C because GIs that give you some linearly independent do exist and even over K. So a proper subvariety, not just a proper subvariety, but a proper subvariety such that its values over K do not contain all points of G of K. And so you can escape from it. There are G1 up to GD minus 1 in A to the power of 1 such that star star is true. All right, very well. So we have that. And now what do we have? Well, there's going to be genericity yet again because you're going to have. What does it mean that star star holds? It means that this map phi is non-singular at the origin. That is, its derivative has non-zero determinant. So for phi as in star, we have that d phi at the origin. So e, identity, identity, identity is non-singular, non-singular determinant. But again, there's a being non-singular is a condition of the sort not satisfying an equation. So again, what do we get to erase now? Again, what are we going to be able to conclude? Because the map has non-singular derivative at at least one point, namely the origin. It has non-singular derivative where? At almost every point, in the sense that by definition, you have non-singular derivative on a variety. We have just shown that the identity is not in the variety. There's a variety living in G cross itself a few times, something irreducible. And so this variety must be of positive dimension. W times itself. It's non-singular. W outside, well, a sub-variety, W0 and W3. This is tautological because it just means not being the sub-variety is defined by having zero determinant, but a proper sub-variety. And moreover, W0 and K is not all of W3. But this is exactly what we wanted. This is exactly what we were looking for. And we get that outside that's very wicked variety. The determinant is always going to be non-zero. And if you have a map between two spaces of the same dimension and the map is non-singular outside its forbidden set, then the pre-image of every point is going to have dimension zero. And dimension zero, not just that, but bounded degree because all of these things have degree bounded in terms of each other. And the variety of dimension zero with bounded degree is points are just a bounded number of points. Degree of, very well, which is bounded. All right, so these works, we were assuming that the dimension of W was 1. So what about dimension of W greater than 1? Well, surprise, surprise, we're going to do an induction in the dimension. Let me just give you an example. But it already has the main idea there. Example, let us have, since this is an example, I can assume that d equals 3. Why not? So y of dim 2 and g of dim 3, like a cell 2. Then I can have, yes, phi is going to go from, say, y cross y to g. I can define this to take y0, y1, to y0 times g1, y, g1 inverse, some g1. All right, then what do we have? We do have, by this sort of argument, not that the pre-image of a point is just a set of bounded number of points that will go against the dimension. This is four-dimensional, y times y. This is three-dimensional. But you will be able to show that we can show that phi inverse is one dimension, the right dimension, for g generic. Well, it's just basically a geometry with a sort of arguments using simplicity that we have seen here. So 2, 2, 2, 2, 2, 2, we have another. So what does it mean that phi of y0, y1 is g? This means that y0, g, y1, g1 inverse equals g, what it is given. So this is a variety. So y0, y1, lie on a variety w of co-dimension. Well, what is a co-dimension? It's the number of independent equations you satisfy. g is specified, so there are really as many, the number of equations implicit here is the number of dimensions of g. So this thing is of co-dimension 3. But since y cross y is of dimension 4, this means dimension 1, just 4 minus 3 equals 1 in y cross y. Something one dimensional. We have at any rate of lower dimension than 2. But we're lucky that it's 1. So what we can do now is that we can bound. So w here is just y intersection. I just copied that almost. So we can bound this intersection as above. We have gone down from 2 to 1. The essential thing is that we have gone down in dimension. So phi of y0, y1, this is going to be. So let me just have this outside this special set, this proper sub-variety. It's always some exceptional set. So this set, the preimage of y0, y1 for y0, y1, not exceptional, is going to be what? It's not going to be all right. So it's going to be, no, sorry, the image of almost entire set is going to be what? It's going to be not a over intersection y squared. That would be if it were injective. But you have that every point in the image has preimage of dimension 1. And moreover, that this sort of thing applies. So you have vision by the max for g0 special. A intersection, well, this sort of guy, what we call w there. So and we can bound this from above, as we were saying. This at most, by the argument before, a to the of 1 to the, in this case, 1 over 3. It's a dimension of y divided by the dimension of g. The dimension of wg divided by the dimension of g. So we get that the intersection of a and y of k is at most, well, we just take a square root, right? Here you have phi of y0, y1. But this is contained in a to the of 1, as usual. And here you have the max of a intersection. This is a clear division here, a of w. And we have shown precisely that this is at most a of of 1, 1 over 3. So in fact, there was no need to draw a thick line, because this is just that. Very well. And so we have that just dividing. We get exactly what we wanted. Hence, a intersection y of k is at most a to the of 1 to the 2 thirds. And this was just dimension of y over the dimension of g. And this is precisely what we wanted to prove. So I have given you the simplest case of the induction, but it is paradigmatic. It always goes more or less in this way. So the one-dimensional case, we did in full. And I showed you how to go down from 2 to 1 dimensions. And you do that. That's how you do it in general. You lower the dimensions. Unfortunately, dimensions are integers. Again, crucial fact. Very well.  Namely, it gives you an upper bound. It tells you that the set A does not have more elements. The intersection of the set A with a variety does not have more elements than it deserves. Now, can we give any sort of happy bound, the lower bound, showing you that there are elements of a special form? Well, for some special forms, yes. Thanks to the orbit stabilizers theorem. We can show that for what kind of varieties? It's a centralizer of a certain G. You're going to have that any G in A. You're going to have that the dimension of the intersection of the centralizer, we say square. The centralizer, remember, are all the elements that commit with G. That's an equation. It's a variety. So this will be dimension of C of G over dimension of G times a factor that is very small when they grow slowly, namely A of 1 to the A of 1. I don't think you even need this A of 1, but it does not matter. All right, so how do you prove this? Well, I said orbit stabilizer. How much more time have I got? Excellent, very well. By orbit stabilizer, in the version for sets that we did last time, we have that intersection with C of G. It's at least A cubed. Here's a conjugacy class of G, but this is almost a variety. It's basically a variety. Bar for Zariski closure. This is a variety with dimension of G minus dimension of C of G. And what you do now is, well, in order to get a lower bound, you just apply an upper bound to the denominator. We get this is, at most, A to the K, so the dimension C of G divided by the dimension of G. But we already know what the dimension of C of G is. And so you get that the intersection, we just divide A by this. And we get that this is at least A to the dimension of C of G divided by the dimension of G times A over A to the K. So no one was needed in this case, but it would not have hurt. It's that simple. It's just an application of orbit stabilizer. All right, but what kind of animal is C of G? That means the centralizer. I spoke before of regular semi-simple elements, which, in SLN, are just the elements that have n distinct eigenvalues. And I said that this was a generic condition, which it is. So for the regular semi-simple, which, in SLN, as I said, is just a fancy name for having distinct eigenvalues that is being diagonalizable, what do we have? Well, if you have a diagonal matrix, which is in eigenvalues, the elements that commute with it are just the diagonal matrices. So if we are fancy, we call that a torus, a maximal torus. C of G is a maximal torus. So this shows, in particular, that in fact, for any torus that is the centralizer of an element of A, you're going to have many elements in the torus. And this is really the centerpiece of the proof. And this has always been. So this sort of statement, let me call this statement then from now on, the rich torii statement. Tori is what we care about the most. So this statement, this was already central back in the day. But back then, I proved a slightly weaker statement, unfortunately. OK, thank you. Yes, but since a finite number of connected components, yes, he's not. Yes, back then, let me emphasize this, just so as to my misunderstanding, that back then there was a technical weakness. I proved this. I proved only that for most Tori T, for as many numerically speaking, you're going to have this sort of thing. This turns to have made things more complicated and silly, but that's the way it was. All right, so we finally, just about enough time. Proved that for G is equal to SL2, but the same ADS, it is a modern proof. So this ADS worked for all G, almost simple. K a field, A a subset of G of K, generating G of K. As I said, that can be softened. We assume D, so it's not really necessary. Then either A to the of 1 is bigger than A to the 1 plus delta, or A to the of 1 is almost everything. In fact, it's going to be strengthened. So I will not have time to prove this strengthening, but I will just tell you that this statement, once you have almost entire group, and I mentioned that the first time, you have that A a couple of times more, it's going to give you the entire group. In fact, Nikolov and Piver have managed to make this equal to three times this of 1. All right, very well. So how does the proof go?  The main ADS are the same, and you can actually put the proof in the same framework, and that's what I'm going to do. So let us assume that the first conclusion does not hold. So let us assume that A barely grows, which I don't. And we will derive either a contradiction or the second conclusion. So assume that this is less than A to the 1 plus delta, 4 C large and delta small. So let us show that the second conclusion holds. A to the o of 1 is almost everything, or contradiction. By the escape lemma, there exists some semi-simple element. It's a generic condition. So its centralizer is a maximal torus, meaning it just consists of the diagonal matrices under some basis. Well, coaxi in G at pivot, just like last time, if the map phi xi, defined in this way, induces an objective function from A. This is T of k plus minus C to G of k plus minus C. So this is there in order to avoid this sort of trouble that Emmanuel was referring to, modulo plus minus C. But so we call this a pivot if it induces an objective function, at least when this is new. Very well. All right. This was really BG, but you get my meaning. All right. So there are three cases. The first case is the case when we get really lucky, like last time, in case A. And we do have a pivot in A. By the rich torus theorem, or lemma, there are many elements in the torus. A, dim T, dim G, minus O of delta. The O of delta is coming from that ratio. And this is, of course, just 1 over 3 in our case, just for concreteness. But that's enough. Hence, because since this is a pivot, so the map is injective, we have that phi psi A, this at least 1 4 is coming from the plus minus A. So it's almost at least as large as the domain. And this is a constant to the 4 over 3 minus O of delta. Very well. At the same time, we have that this is contained in A to the 5. So we have that A to the 5 is really big. It's bigger than A to the 4 thirds minus delta. And this is in contradiction to our assumption. 4 delta small enough. So case A was easy. But that's the case B. Case B is the pessimistic case, which turns out not to be the hardest case, really. Namely, the case when there are no pivots whatsoever in the entire universe. Such that. So because there are no pivots, for every psi in G, every psi in G fails to be a pivot. That is, for every psi, there is a collision. That two elements collide under phi. The map fails to be injective. This is just phi psi of A to T2. And this is just phi psi. So it's a failure of injectivity. For every psi, you have a failure of injectivity. But then this is the same as saying that A2 inverse A1 is plus minus E psi. So just as before, the failure of injectivity minus is, well, it helps us get hold of things, so to speak. Because this means that for every psi in G, we can get hold of it in a certain sense. We have that for every psi in G, there is some T in T, namely T2 times T1 inverse, such that, and it's not trivial, such that psi T psi inverse is in A inverse times A. Now, this is about the only place where I will use really the simplifying assumption that this is L2. So the fact that it's not the identity will mean that psi T psi inverse is regular semi-simple. Of course, in the case of SL3, say, you could have two eigenvalues that are the same and a third one that isn't. And you would need to deal with this as a special case. It seems to get a little bit more complicated. So this is regular semi-simple. And so C, the centralizer of this guy, is a torus itself. It's just psi T psi inverse, a torus. So by rich tori, the rich tori lemma, there are many elements in that because psi T psi inverse is indeed in A inverse, say, because we have managed to get hold of it using its non-pivotness. We have that by the rich tori lemma. There are many elements of the torus, psi T psi inverse in A4. So well, we have that there are many distinct tori, basically the G over T distinct tori, psi T psi inverse, just by as psi varies over all psi and G. And they intersect only at plus minus identity. So you have a lot of tori, all of them. All of them are rich. They intersect only the identity. So you've got a lot and a lot of things all over the place. And they are all in A to the fourth, right? This is number of tori times A to the number of things we have in each torus, minus 2. We delete the identity plus minus. And so we get, just to be very concrete, that this is at least P squared A to the 1 third minus of delta. Because the size of G is roughly PQ. Now that this matters. And the size of T is roughly P. We are not using anything in particular about that. I'm just being concrete. And so this goes to that.  Very well. And we are left with the last case, the inductive step, Kc, when there are pivots and non-pivots. And because A generates G, there must be a negative input for the last talk. As in Batman? Very well. Serials. All right. Well, so next time we will, please don't remember everything. Please don't forget everything I said today. And we will do the last case in the last talk. Enjoy. Thank you.


Hi guys, my name is Shashi Gaurav, I started working on Julia last summer as a GSOC student and I made this package called Interact, at least two years after that, today. So I work on this package, I work on UI tools in general for Julia, I think. So let's begin. So when people start using Julia for either, actually half a dozen are all really good packages for originalization in Julia. So I'm going to be going over all of these packages here. So it's not a comprehensive coverage by any means of any of these packages, so it's best if you just take notes and take notes on the dates of these things and check them out later. Okay, let's start. So the first thing people play out when they want to do exploratory data science in Julia is this thing called Jupyter. So it used to be called iPython Notebooks, and they renamed it Jupyter because it also supports Python and R, and it has in Julia Python and R. So the JU in Jupyter is actually, it stands for Julia. So I'm going to show you Jupyter. This is how it looks. It's nothing too complicated, you can basically write an code here and run it and it will show the output. And then, so there are different kinds of values that get converted to different output. So one such example is this thing called Colorant. It's from this colors package, so if you want to see what color this is, if you just create a value, it's going to show the color itself. You can actually put these things in an array. This thing will show the colors. Actually, if I see the type of this, it will tell me it's an array of colors. So Jupyter can show you this way. And there is also other things like Sympyte. Sympyte is a package for symbolic manipulation. So here I'm differentiating sine x squared six times. I can increase it, run it again. I can see the output. You can also, for your own types in your own packages, you can define your own output methods. So there's this function called WriteMind. You just add a method to it and it just starts working. So I created this thing called MyType where I'm showing each character with a different color. So if I create an object of MyType, so it's going to call this WriteMyMind and pick a color for each character. So how do you see data? So I'm using this R data set package. It's used basically to teach, working with table data. So I'm loading a data set from there. The type of this is actually a data frame. Stefan showed this in the morning. So it's the same thing. But if I buy them, it will look like this. I, in Jupyter, it will look like this. Sure. So the other package for the de facto package for plotting in Jupyter is something called BadFly. So it implements something called a grammar of graphics. You might be familiar with the security, how to use ggplot in R. So it's a grammar for constructing visualizations from data. So over here I'm plotting from this iris data set. So for different species of the iris plant, I want to let plot the sepal and then sepal width and color the dots according to species. I can also color the dots according to, say, the line. And it's going to make a continuous scan for being into the plotting. So there are all these features in BadFly that you can use to make very complex plots. So the other plan package is interact. So here you see a simple follow where n goes from 1 to 100. And in the body you are creating a random matrix. So I do this follow by preparing this macro called BadFly. So what happens is n just becomes a slider. You can increase or decrease it. As you can see, the size of the array is varying. So each change to the slider triggers an update to the array. So I can use this. It's not just a slider that you can use it with. You can use it with, say, a text box. So I'm just using the previous type of writeMind method.  You can just give it a list. It will become a selection widget. Again, I can have interactive plots that work this way. One of the very useful things you can do is explore mathematical functions with this, by varying the parameters. So this function is the beta function, and I'm plotting the probability distribution of the beta function. I had no idea what the beta function does before someone showed me this with interact. So basically, what happens is alpha sets how far left the bump is, and beta sets how far... How short the bump is. So another thing you can do is vary the parameters of... I think I need internet or something. Okay, so that's supposed to render as latex. Sorry about that. I can also do... Do you need internet access for MathJax? Yeah, so that's the MathJax library. That's not loaded, I suppose. So that's an animation. I'm just waiting the phase of the side wave according to the time. It's just like, I have a switch, and the switch works since it involves this FPS function, and it generates updates every 30 times a second. That's how it works. My life is working now. It's okay. So in that case, are you regenerating the entire plot, or are you equal to manipulate the entire section? It regenerates the entire plot. But there's some more cleverness going on. I'll come to that. It doesn't draw the entire plot, however. It changes only whatever leads to change. So it kind of generates one section of it? It actually generates the whole plot, and then takes it with the previous one, and then figures out only the part changed, and then updates the part. So that's catalyzed. There are other plot and packages. Pyplot is the binding for Matplotlib, the Python plotting library. And there's Vega, which I'm very excited about. It wraps around vega.js. It's another plotting package from the uwash database group. And there's Winston, which you can use to plot with GTK. And so there's this other package I'm working on. It's called Escher. You're looking at it right now. So this slide shows made in Escher. So it lets you basically build web UIs entirely into the app. And the way you do it is you take simple parts that Escher provides you and then you stack them up and make more complicated UIs. So I'm going to show some examples of this. So the first basic thing you can do with Escher, this is not even Escher. It's the first basic data type in Escher. It's called the LM type. So what it does is it just creates a DOM node. If you're familiar with JavaScript, you know what the DOM is. It's the document object model. It is what your HTML pages become in the browser. So Julia can actually just generate the DOM and then basically draw the DOM on the browser without going through the intermediate results and rating HTML and then if they get back into the DOM. So I have this code editor here made in Escher. So I can edit the style of this thing. So as you can see, I've given up writing of one year and filled it with colored blue. And I can change these things and run it. And that exactly reflects the DOM. Similarly, it extends to SVGs. So if you already see that I'm already starting to create these functions. So I've created a circle function which abstracts out the job of creating a function and then I have a bunch of functions here. Next is... Oh, this predictor is kind of too small for this. Okay, so it also allows you to create custom HTML elements of my own choosing. You can create your own custom HTML elements these days. Okay, 10 months. And here's the latest custom HTML element I created. But in Escher, it's just one download. But if you inspect this, you'll see a million of these things. But you'll have to generate all those things. So that's how Escher works. But there are very high level abstractions. So Escher can convert any Julia value into a UI. For example, here's a simple string that works as you can see. And I can create markdown text. That also works. Let me add some hitting. Some code maybe. Yeah, as you can see, it's all getting converted into Escher UI. And even code is an Escher. It's just one... Showing some code is just another element in Escher. So that's how this code cell thing is working. So I can create a code... Okay, I actually... So the code slide you're seeing is actually a function that is inside this UI. So I can use the code slide to create one more code slide if I want to. So it comes inside that. So, of course, I can use SimPy as well. Yeah, so this is Compose, a very powerful, I think, radio vector graphics package. You can actually do very complicated things with this. Yeah. So the other thing I showed you in the Escher introduction is actually generated in Julia, this picture, from a single fish. So you can do things like this with Compose. If you just Google Functional Geometry, you'll find this codebook where the construction of this artwork by Nancy Escher is explained. So this is the C.F. Binsky's triangle. So it's a recursively defined triangle. So for each triangle, you divide them into three rows of triangles and draw an N minus one C.F. Binsky triangle there. So if I start at zero, it's just one single triangle. It keeps creating those things. And this is the definition of the In Compose because it's actually exactly equivalent. So you can also plot, get like lots and Escher can draw it. You have these things for layouts.  They are not given a layout. That's why they're being shown as code over here. But I can stack them vertically in VBox, stack them vertically and then align them to the center or even horizontally. And since I'm using a powerful programming language to create layouts, I can do other things as well. So I just shuffle the order now. That's how you make layouts. And you can have higher order layouts where you have tasks and stuff like that. And you can make the pages come from below the tabs. And also, there's a type, typography scale that you can use right away. So all these fonts you're seeing are right inside a shell.  Finally, interactivity. How do you do interactive stuff in a shell? So we use this thing called reactive programming. There's a package called reactive.jl which was written to write an interact actually. It's a very general package which lets you deal with values that vary over time. So you can have UIs that vary over time. You must hear this key triangle with this slider. So I'm just drawing this. Okay, sure, thanks. Okay, I'm almost done. So that's an animation. And it's controlled by the switch. That's all the code that was required to write that. There's these things called behaviors. These widgets are nothing special. You can make widgets sort of anything in a shell. So here's a button. You just add the behavioral behavior to it and you can create a counter with it. Here's a counter. So I have these two buttons and they each sort of emanate these constants plus one and minus one. And they go into this input signal called delta and then you fold over those inputs and show the counter in the bin. And that's how the counter works and that's the code. I wanted to show more demos. Let me see into that. I think you have to stop. Yeah. Okay, this is an animation. Whatever, colleagues. Here I'm running a wait. It's just showing the behavior of the first blocking. Okay, I guess I'll stop here and take questions. So if we have time for just these questions? Okay. Yeah. So for these visualizations, you can view only in download or in general. Sure. So for example, Gath like blocks. Thanks to all these people. Gath like blocks you can write them to G files, SVG files, VDF, PGA. So the interaction won't of course be available for you without a problem. What are you using behind the scenes SVG? It's SVG and HTML. Yeah. So that's the show. Thanks a lot. Thank you all for the support of the speeches. Thank you for being here.


Just as a refresher, we had first reading of this ordinance at the last council meeting and we referred it to the Public Safety Committee to review. I have reviewed it and I feel very comfortable with it. We've only made one change in the ordinance and that is to take one word out and number 10 of the deals with academic strangers and needles, we say not the word needles at the request of the state leaders. Let me go back and refresh your memory on some of the reasons we sent it back to the committee. I was concerned that the drug paraphernalia definitions were overly broad and that we would be enforcing the laws on convenience stores and other businesses that may have some of this after being constructed by the chief on exactly how this ordinance was put together. The first section 14351 is part of the definition straight out of the state law and we have adopted those as definitions of paraphernalia but you don't. That does not mean that they cannot be sold. These things can be sold. It's when you put a controlled substance with it that becomes illegal and these things the paraphernalia then kicks in on the state level as a civil crime. What we're trying to do is take the same intent that the state law has and make a city ordinance that like all city ordinances would carry a 30 day jail hour $500 fine so that if a CPD police officer saw or had in his custody a person that had a piece of paraphernalia like a lawnmower or a pike and it had a substance in it that could be a controlled substance and pretty well would be a controlled substance they would not have to wait until it was tested to make sure it was a controlled substance before they could issue a city of Plum Young ordinance violation ticket. This will allow them to get people that are making using controlled substances off of the streets right away what rather than waiting for a test to come on. 14-352 are 14 items that can be considered by the officer to help them make the decision on whether the possession of the items that he is observing or the smoke that he's smelling would allow them to make a city of felony ordinance violation with a $500 fine and 30 days of jail hour and 30 days of jail hour. So this is not intended to be an attack on convenience stores or the big shops unless they have illegal drugs in a container that can be tested. We are trying to work on enabling CPD to take some of the control substance uses off of the sidewalk to the city of Columbia rather than trying to put businesses in our business. And I think that's important Mr. Chairman. That's clear to everyone that what this really is about. Chief do you have any comments on that? Maybe just a couple. One I think you explained it very very succinctly. Bottom line is the instrument as you know as described in the ordinance is in itself is not illegal. It's illegal if it's used to you know essentially in jest we're talking about more of somebody putting a substance in their body but also it would apply to somebody that you know might decide to go into farming inside to grow a controlled substance. But it's use of that instrument in conjunction with an illegal drug to introduce that into your body. You know we spend a lot of time talking about violent crime and the impact that has on our community and often times our our emerging drug that threats get overlooked. We you know we've had a steady increase in overdoses over the years. We've done a good job in equipping our officers with an ARCAN to be able to address that. I think this is another tool that allows us to it does put a criminal penalty but it also allows us to you know intercede in a situation where someone is using drugs on the street. It's not it's very very likely that we encounter a lot of folks on the street that were coming across drug paraphernalia. It's more so makeshift pipes to either smoke marijuana, methamphetamine, crack cocaine, heroin in different forms and oftentimes mixed fentanyl. These oftentimes are proven to be fatal in nature. Almost every fatal overdose that we respond to now we have a response protocol and we find drug paraphernalia and that's you know something that the coroner is a that's a something the coroner will take and and you know when determining the cause of death other than toxicology but it's you know there's a lot of different instruments that people use to ingest but and and almost all of our fatal there is drug paraphernalia and then in our non-fatals where we're able to introduce Narcan and reverse that overdose we typically find drug paraphernalia present there too. Any questions from the committee? Yes I always have to put my public defender hat on just for a moment but just for clarity under 352 section 6 and it says the innocence of an owner or anyone in control of the object as to as to a direct violation of this section shall not prevent a finding that the object is intended for use or designed for use as drug paraphernalia and I'm trying to figure out so how do we use are we saying that what is that saying? It's saying that if your son picks up your bike and takes it out and and does something that the innocent if it's your paraphernalia and somebody else uses it you are innocent of the crime.  Well and I think that's what I was trying to clarify does it does it mean that whether or not you had the intent you could potentially if you determined that the the the the object itself is drug paraphernalia that's what I read it is saying then what though is are you saying that if the drug paraphernalia in possession of drugs and they're good then they are good but the person that's using it is I'm not sure I'm understanding what you are saying. Well that's that's that's kind of why I have the question um this is under information relevant factors that can be considered I'm just trying to figure out um the innocence of well sometimes it's easy to read of an owner or anyone if you see number six chief 352.6 halfway through that as the innocence of an owner or or of anyone in control of the object as a direct violation of this section she'll not prevent a finding that the object is intended for use or designed for use as a drug paraphernalia and that says to me is that if somebody has used somebody else's object that would be considered paraphernalia it would not be an illegal action for the owner of the paraphernalia it'd be an illegal action for the person that got caught. Exactly and even if it's the child and no I think this goes to the point of the concern with the with the vape shops for example that someone is caught with a say has a pipe that that you know they have a receipt for for maybe buying at a vape shop but we find with that pipe that it's it contains marijuana it's you know that it doesn't go back on a vape shop for selling that unless they sold it specifically for the purpose of smoking marijuana. I got you. That is straight out of the state. It can't but I just want to make sure how we interpret it like because what I wasn't clear was if the object itself is deemed drug paraphernalia then what does that mean as far as who found it but I may be over reading it it was just kind of confusing to me. You know you know even if you over read it I think if you circle back to that object that what is being described as paraphernalia you know based on training experience in these various factors has to be accompanied by narcotics illegal substances. It has to be either being being used to consume or or possessed in concert. Big bag of or a brick of cocaine scales packaging material. If you had to independent of cocaine if you just had if we just find a set of scales that's not paraphernalia. Okay I think I'm clear I think I just wanted to make sure that that sentence wasn't doing anything to make the innocent person that they refer to guilty. I think it's the opposite I think it protects that innocent person. Yeah that's that's kind of what I want to make sure okay. This really does center around the word and I mean that's what this whole statue is about it's about the drugs and the paraphernalia together yeah not separately yes sir. Is it the consensus of the committee that this be referred back to the two council yes but my intent is to ask the city council to put it on the agenda tonight like the two-thirds vote for the city council to do that it does not involve finances so it can be done um so no court on why I have the motion to put it on the agenda tonight. We'll get second reading tomorrow. Any further business for the committee? You're telling us. I don't have anything to say. Madam clerk we will stand adjourned. Thank you. Thank you. Mr. Duvall you mentioned something about um and maybe it would be for the the next committee meeting um the taxi cab situation the taxi cab permitting yeah did you want it's going to be on the 22nd 22nd yeah we'll just add that to the the 22nd is primarily uh just a general update a general update and we will just add that to the update. I think we will have um versus it being just a stand alone. I think I'm going to pick a item for the goat ordinance to public safety or environment. The stands of the farming committee. We have a public safety meeting. I'm trying to figure out as we have public safety on the 22nd. I was like so why I'll be here today. May not be here. I'm going to the presidential debate. The first part of the trip of substantial evidence really you can't have anyone in control. I feel like I feel like me and Tim are in this together. He's doing all the hard work so I'm going to give them I'm going to give them support. So I guess that's why we're here. I hear what you're saying in the meeting but I just I'm I'm really concerned Mr. Duvall that we meet again next week. You know what this is right? You know what that means almost that quickly clicking all of those steps. Then I get clicker click regret later on. Discussion you would have to make it could be a where there's a discussion about you can tell where the smoking illegal substance.


and they can do on their own. They don't have to guess in capacity. They can move quicker, which enables a lot more innovation. They get to spend their scarce SDE resource on projects that move the business forward, and they can go global with their application presence in minutes. And this is Silicon Angles the Cube, our continuous production of AWS live wall-to-wall coverage, AWS Summit. We're here at Moscone Center in San Francisco, AWS. Amazon has a number of these events, probably like a dozen around the world. Really keying off its big conference, which is the re-invent event in November. It's in Vegas and a big event. They go to these regional events to really help customers. It's much more intimate, help customers understand what they're doing, maybe make some new announcements, bring in the local ecosystem. And I'm here with my co-host, Jeff Frick. Jeff, we've been here all day going at it. We were at the OpenStack Summit, I guess it was last week or the week before. Tom Shields is here. He's the senior director of cloud marketing at NetApp. Tom, welcome to the Cube. Thanks. Thanks for having me. You're welcome. So let's start with NetApp's cloud play. I mean, how would you generalize NetApp's play in the cloud generally? Yeah, I think we're pretty unique. Unlike some of our competitors, we're not trying to be a cloud service provider. We work exclusively through service providers. We treat them as partners, not as direct customers. And so they are our channel. So for our enterprise users who want to use cloud services, we will promote our cloud service providers to our enterprise as solutions. Okay, so let's now talk specifically about your AWS play. You guys made an announcement in November. Talk about that and talk about how that's going, how it's evolved, and where we're at today. Yeah, we got together with AWS. What we saw happening in the enterprise is that many of our customers were starting to use AWS. They started talking to us about that. They want to get in and use the benefits of public cloud. The flexibility, the cost efficiencies are very attractive. At the same time, they appreciate the performance characteristics, the availability, the security of their NetApp storage. And so for NetApp enterprise customers, we were looking to create a way where they could start to get into the public cloud yet keep the benefits of the NetApp storage. And so that's why we developed the solution with Amazon Web Services. Okay, so talk about what that solution is, what it does, maybe traction in the marketplace, who's using it, how they're using it. We'll get into that whole thing. You can take any one of those questions that you like. We like the portfolio question. Talk about the solution itself. What does it do? Yeah, well the solution is NetApp Private Storage for Amazon Web Services. And what it is, it's a combination of Amazon EC2, Amazon Direct Connect, and NetApp Storage and data management. And what enables it is the Direct Connect technology that AWS brought out in 2011. So it's a high bandwidth dark fiber connection that allows you to connect the core Amazon cloud to a third-party data center. So now what you're able to do with that Direct Connect data center is put a NetApp device in there, connect up to Amazon EC2. The data centers are very close to the AWS fleet, literally across the street. So you have a very low latency, high bandwidth connection. So the whole stack now operates as if it's in the same rack. So you consider it a very high performance low latency stack. Parts of it are in the cloud. You rent those. The storage is NetApp and you control that and own that. So it's a synchronous location. It functions as if it were all in the same rack together. So you can tackle a host of jobs that, you know, you would use a FlexPod for normally on-prem. Okay, and that third-party data center is proximate to the Amazon. Correct data center. Is that right? In most cases, it's right across the street. So we use Equinix. Equinix is one of the partners that we've chosen to go to market with. First here, they have more Direct Connect facilities than anybody else around the world. So we're with them here in the United States, down in the Bay Area, out in Virginia, out in Tokyo, Singapore, and now Australia. Soon we'll be in Europe with Equinix. And so these are all Direct Connect facilities that are close to the AWS fleet. Okay, so AWS, obviously. I mean, Equinix has more data centers around the world than AWS, obviously, right? They've been around for a long, long time. Not all of them are Direct Connect facilities. The ones that are close to the AWS fleet are. So how did you guys come to this? You just sort of one day hit somebody, hey, we've got this relationship with Equinix. We've got AWS growing like crazy globally. We could maybe start talking together and put together this solution. Yeah, I know. I think we found each other through our enterprise customers. As Amazon started to become more focused on the enterprise space, moving from Web 2.0 up into the enterprise, they've encountered a large and loyal enterprise installed base with NetApp. And those customers love NetApp. At the same time, we have fielders all over the place, and we understand that our enterprise customers are using Amazon today. They're doing dev tests with Amazon. IT departments want to do more with it. And they want to find a way to do it and still control the data and have some visibility to what's happening in the organization. So our customers are asking us to work together. That's the bottom line. So is more of the data than going to the Direct Connect data center across the street then? Because it seems like you're still going to have that long leg. Yeah, remember, we're talking mainly to NetApp customers that are moving from doing things on-prem and starting to want to get into the public cloud. So they're moving from an on-prem world, and they're looking to start to use public cloud. For them, it's a nice first step to be able to keep their familiar storage, data management on NetApp, and reach up and grab all the efficiencies and flexibility of the Amazon EC2 cloud. So that's primarily where we see the use cases as people get started. Can S3 play in this equation? S3 can play in this equation. We do have a use case there. Many customers want to replace tape. They want a more reliable, cost-effective alternative to tape. And they can get that in S3 Glacier. And so we do have customers that have one large oil company that wants to consolidate backup and recovery and replace tape. What they'll do is they'll use NetApp snapshots locally in their multiple data centers. They'll consolidate two weeks of backup in the Direct Connect Colo facility. So they get two weeks of restores. That's just happening in real time over time. Yeah, they'll use NetApp replication to move data over to that colo. And then that data that's older than two weeks, they want to park that up in S3 Glacier. So Glacier is a penny per gigabyte per month. Very cost-effective. It's spinning disk, so it's more reliable than tape. And people like that story. It's easier to end-the-life data on that solution. So it provides some nice value there. So there's a lot of interest in that. Is spinning disk really more reliable than tape? I didn't know that. So our customers believe that. Do you have data on that? That sounds like a good sound bite. I didn't know that. But I would think that most customers would want data on spinning disk is the point, because it's so much more convenient. Although my guess is if you put it into Glacier, you hope you never have to go get it. But it's cheap. You know it's there if you do have to go get it. That's right. It seems like a key to your solution is, again, this notion of being proximate to the Amazon data centers, especially from a performance standpoint. If I'm moving data around, I don't want to move it long distances. It takes a long time to move a terabyte. Is that right? And can you talk about the importance of that? Yeah, that's right. Data has gravity, so players here at Amazon have said that. It's not like you move it around willy-nilly, and people like to know where it is. With NetApp, a lot of times what we'll do to get started is make a big data transfer right to that Colo facility. But then once we've got that in place, we can make incremental data changes over the wide area network using native NetApp replication, which just sends change block data over the wire. So you can get a relatively efficient transfer process going. It doesn't cost too much. So you can literally think about the Direct Connect facility and your NetApp on-prem creating a hybrid cloud with the data moving back and forth. You might develop up in the NetApp Private Storage for AWS environment, and then want to move that data back on-prem and run the whole thing on your own stack. You can do that because you control the data flow across-prem and NetApp Private Storage for AWS. So you guys have nice snapshot technology to allow you to do that CDP. Absolutely. That's a core value for NetApp. It's a very efficient data transfer. So the key there for a customer, though, is seeding that installation initially. It's big data, you've got to seed it. What's best practice? How do you do that? Do you have tools to help me throttle? Can you talk about that a little bit? Yeah, there's tools. We'd have to have a longer conversation. Everybody hates this conversation. I know, but for customers out there, it's a big consideration. A lot of times people will just move a filer over from their- Put it on a truck. From their-Prem and move it over to their- Literally put it on a truck. Yeah, yeah. That's probably the best move, right? Yeah, sometimes. When you move a whole lot of atoms or bits, they become like atoms. You know what that's called? That's the CTAM. It's the sneaker net. CTAM. It's a Chevy Truck Access Method. So for all you old main framers out there. Okay. So that's interesting. All right. So that's something that they have to think about. That's probably the best way to do it is if they don't, then they can trickle it over and it takes whatever- Once you've got your data, you know, the bulk of the data over there, then you can really take advantage of the efficient replication data movement that NetApp has. Yeah. It's very inexpensive. Yeah, yeah. Once it's there, it's really some everyday operations. Talk about some of the customers that you have. Name names if you can, if not I understand. But maybe the types of customers and what they're doing. You're right. Yeah, the fun thing about this is that we're discovering new use cases every day. But if I look across our pipeline and the customers that are using it today, several use cases really stand out. DR is really the first one that I'd like to talk about. The best way to talk about it is to use a customer example. So a lot of customers have a hard time figuring out how to afford a full redundant stack in a remote location to use as a DR site. So for mid-sized business, this solution is really nice because they can put a NetApp device in the co-location facility and then they can use reserved instances up in the EC2 cloud, right? And they're very cheap discounted instances, but you're guaranteed to get them if you need them for failover purposes or for testing purposes.  And so it's a much more cost-effective way to go for DR. So that's a primary use case that we see. Another, and it's very common, is just wanting to rationalize compute infrastructure. We have many customers coming from using VMware on-prem today, you know, on their servers, getting a lot of efficiency there. Now they can move stuff over to Amazon. We have customers that estimate they can save 70% of their compute infrastructure costs by moving over and using EC2. Now, why are they using NetApp? Why do they still want to use NetApp? It's for performance reasons. They've come to rely on the performance profile of NetApp for their applications. And then some of them have concerns around security availability and they've come to appreciate the NetApp feature set there. And so they're very comfortable staying with the NetApp storage model and then tapping into EC2 to rationalize compute and save money there. They like NetApp, okay. Yup, so there's two use cases. I've got more for you. The DR one, I'm interested in more but I want to double-click into the DR one. A lot of customers tell us in the Wikibon community that they don't adequately, they don't tell us this in public, not in private but my inferences. They don't adequately test DR because it's too risky and too expensive. So what you're saying, I'm inferring from your comments that you enable more facile, more cost-effective testing so that I can actually go to my board and say, yes, we have a disaster recovery plan. We have tested it. We are in compliance and they can sleep at night. Absolutely. You're familiar with NetApp. We have some technology that enables you to do very low overhead clones of data. So you can literally use that technology, flex clones is what we call it, off that replicated data set. Without breaking the mirror, you can clone that production data and then use that with EC2 to test your DR readiness. You don't need to break the mirror. That's a huge benefit for DR for our customers and it's only available in NetApp technology. NetApp has a lot of inherent advantages because of its architecture and there are probably dozens of examples like that. Other use cases you want to share with us? Sure, sure, I got a bunch. Big data analytics. These are giant data sets. Some of the data is sensitive. Our customers want to keep that on NetApp storage. In some cases, and then buy thousands of cores and use them when they do their analytics runs pay as they go. It's a nice model. We've got an insurance company that's doing actuarial analytics using that model. So that's one. We've got another interesting one. Data center consolidation and migration. We've got a Fortune 50 company. They have a very active M&A portfolio. So they're bringing on, you know, buying new companies. They need to integrate those assets, retire some assets, move the data onto new data center resources. So what they're doing is they're using NetApp Privates Storage for AWS as a migration hub. So they can literally move this data over very quickly and then some of the data will stay there because it's well suited to taking advantage of the benefits of VC2. Maybe a spiky workload that has seasonality in it. Other data they want to move back on-prem into the new data center. So you've got this notion of transient workloads that move back on-prem into a new data center and then you've got permanent workloads that stay within NetApp Privates Storage for AWS. So this whole thing is like a transition hub for M&A activity, for retiring old data centers that are no longer efficient. So that's a pretty cool one. And then you've just got, you know, talked about the backup use case. There's a lot of people that are interested in that one. Excellent. Hi, Tom. Listen, we really appreciate you coming on NetApp. Make it moves in the cloud. NetApp is a company that has reinvented itself many, many times. And you're in that. Going through that process again, actually, with, you know, clustered on tap. And we wish you luck with the cloud initiative. Tom, thanks very much for coming on theCUBE. Okay, thanks for having me. All right, you're welcome. All right, keep it right there, everybody. We'll be right back with more coverage from AWS. Jeff Frick and myself. You can tweet us questions if you want. I'm at Dave Vellante. He's at Jeff Frick. This is theCUBE. Keep it right there. We're right back. So if you're like most businesses, you need lots of data storage to allow your applications to run smoothly and ensure your data is backed up and secure. That means that every time you add an application or your business grows, you need to add more storage. You keep buying storage and hiring more people to manage it.