Welcome. So, in the previous session, we looked at control flow constructs in Python and we also saw a few examples. We gave you a few exercises that you are going to solve and we solved them and showed you the solution. In this session, we will have a practice session where you will try to solve a variety of problems just like we did for the basic section we are going to do practice now. So, on the interface again, when you sign up, you will see a practice quiz that you can take, start that and start solving the problems as we had done before. So, before we begin, let us look at some preliminaries. Once again, if you are using Python 2.x on your interpreter, as in when you are testing, if you are installed Python 2.7, remember that you must use raw input instead of input in your code. On the interface, we are running Python 3. So, you can use input just as we had used in the previous session. And for the print statements also, the examples that I am going to be showing here are assuming Python 3, but if you are using Python 2, you need to do from space double underscore future double underscore import print function. Just remember this, if you are trying this code on your own computers. I strongly recommend that you open a terminal with IPython and or an editor. If you are using canopy or spider whatever it is you are using, make sure you have an IPython session available and perhaps an editor. So, that you can try these problems, type them out in the editor or in IPython and then make sure it works and then put it on the interface and try it out on the interface. So, let us begin. We will start with a very simple problem. So, as before we ask the user to enter an integer. Again, do not give any prompt, just ask for the integer and the user will give you an integer. If the number is positive, print positive, remember input will only give you a string. So, the number is positive, print the string positive exactly as you see here with P capital. If the number is negative, say the number is minus 10, let us say the user gave, you must print negative of 10. So, if it is negative of 5, if it is minus 5, if the number is 0, print 0. Finally, after this is done, print on a separate line done, the string done with D capitals. Please try this. I will give you two minutes. It is a very easy problem as an exercise for using if. Once again, remember when you are doing this, the interface will tell you, it expects some output and you have given it some other output. Make sure you type it exactly as requested. So, for example, if it is positive, you must print positive with P in caps and it is negative space of 10 and remember negative of 10, it is not the negative number that you print, actually print the positive part of that number. Also, remember regardless of what code is executed, you must finally print done. Whether the number is positive, negative or 0, you must always print done in the end. Also, remember when you do multiple arguments to print, it will automatically insert a space. So, I hope most of you have tried this and attempted it. Let us look at the solution. It is very easy. You simply say x is int of input. If x is less than 0, so it is important that you convert this to an integer because input will give you a string. If x is less than 0, print negative of, notice that there is no space after the off here. We use the a, b, s built in to give the absolute value. If x is positive, we print positive, else print 0. Notice that finally, we print done because if you look at the if, if, else construction, only one of these will be executed. So, if you just print done here at the end, that will make sure that it always gets printed. So, I will give you 30 seconds to try this and make sure you get it correct. So, you can move on to the next problem. Please make sure you finish this. So, we can move on to the next problem. So, let us move on to the next problem. We now have another problem with if. So, first ask the user to enter two integers, one on each line. For example, you say x and y, which means you need probably two inputs. If x is larger than y, print the string first without the quotes, store the value of x in a variable called highest. If y is larger than x, print second, store the value of y in a variable highest. If they are equal, print same again without the quotes, store either as the highest, either x or y because they are equal. Finally, print the square of the highest. Again, it is very easy practice exercise for using conditional flow. Please try this. Once again, if x is larger than y, print first, y is larger than x, print second. If they are equal, print same. All of these without the quotes, finally print the square of the highest. Give you another 10 seconds. So, let us look at the solution. It is very simple. We first say x is int of input, y is int of input. If x is greater than y, we simply print first, set highest equals x. If y is greater than x, print second, highest is y. Else, print same, highest is equal to x or y, it does not matter. Then print highest into highest. That is all there is to this. Now, some of you when you are doing this, you may run into some peculiar problems. It is very important that you learn how to read error messages and understand them. So, when you get error messages, you have to understand what the error message is saying and interpret it as such. For example, if you do something like this, I made a mistake. So, the mistake is what? It says syntax error, future, feature, print, functon is not defined. The important thing when you are looking at error messages is to read it very carefully. So, you may think you typed it correctly, but what is the mistake I have made here? I have mistyped print function. So, the function I have said functon. So, you have to read this. What does it say? It says syntax error, future, feature, print, functon is not defined. So, when you read this, the first response you will say, you will probably think is, oh, I did the right thing, but in reality you probably typed something wrong. So, read it carefully and then look at what it is saying and you will find your mistake very often. So, now to correct it, I will write it correctly. Now, let us say we did this. If I said print 1. Now, what does it say? It says syntax error, invalid syntax and it tells me print 1, this is wrong. Why? Because print is now a function. So, whenever you get an error message, notice that when you get an error here, it actually shows me saying print 1 and it highlights exactly the character where there is a mistake. So, when you see an error message, often if you are given a program and the program is failing, nobody is going to help you with this. So, you have to be able to read messages and be able to figure out what the problem is. So, it is very important you read the message, understand what is going on which is why when you type this on the interface, you will get the errors as such and you have to interpret those errors and fix the errors. Going back, so this is the solution. I will give you about 15 seconds to finish it and make sure you get it to progress to the next problem. I hope you have all done this. Let us move on to the next problem. So, now, we move on to while loops. So, use a while loop to print the numbers from 1 to 10 and it is important you use a while loop for this. There are many ways to do it obviously. This is just a practice exercise. So, we want you to use while and learn how to use while to print the numbers from 1 to 10. Please try this. Remember, you have to print the numbers from 1 to 10 both inclusive as in 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 and you have to print these numbers 1 in each line. So, 1, 2, 3, 4 in series. It is a very easy exercise. So, I hope you are done. So, let us look at the answer for this. It is very simple. So, first you set x is equal to 1, then you simply say while x less than 11, print x, x plus equal to 1. That is all. Remember here, indentation is very important. This is also true for our previous solution. If you go back to the previous solution, remember that this print highest was done in a separate line at the same level as the else. Even here, if you notice, highest is x is inside. It is indented 1 to the right. So, this indentation is very important. You should be comfortable doing the indentation. Similarly, in this case, this while loop, again it is all indented. So, it is inside here. So, please finish this. I give you 10 seconds to finish this. It is too easy. We will move on to the next problem. So, let us move on to the next problem. Now, do the following. Use a while loop to print the odd numbers from 1 to 10. That is, print all the odd numbers from 1 to 10. Very easy exercise. You should take no more than a minute to finish this. Once again, very easy. The same as the previous. All we are asking you to print the odd numbers from 1 to n. It is very easy to do. I will give you another 10 seconds. You should not have to change too much from the previous solution. Probably one character you have to change. That is all you have to do. Let us look at the solution. Solution is very simple. As I said, there is just one character changed. It is all the same. We just increment x by 2. So, this will give us the desired answer. x is equal to 1, while x less than 11, print x, x plus equal to 2, which means every time x is incremented by 2. Let us move on to the next problem. Now, use a while loop to generate the numbers from 1 to 10. If a number is divisible by 3, print 3 stars. If a number divisible by 5 is found, print 5 stars. If a number divisible by 5 is found, print 5 stars. Otherwise, just print the number itself. I hope you have got this. Let us look at the solution. It is very easy. Start with x is equal to 1, while x less than 11. So, the looping part is the same. All you do is if x percentage 3 is 0, double equal to 0. Remember, 2 equal to 2 is to check equality. Print 3 stars. And if x percentage 5 is 0, print 5 stars. Else print x and then increment x. And please remember, this increment line has to come outside the cells, which means it should be at the same level as the cells. Otherwise, you will end up with an infinite loop sometimes. It may never increment or it might increment only some of the times. It may do all funny things. So, make sure x plus equal to 1 is done at the same level as your if. Do not put it inside the else. It is very important to learn how to indent your code correctly. This is important for multiple reasons. One is firstly, your code will not even execute if you do not indent it properly. You will not get the correct results. Secondly, because it is indented, everybody can read the code. So, anybody you give Python code to will be able to interpret and understand what this code is doing. So, please type this. Make sure you get this. And let us move on to the next problem. I will give you 20 seconds. Let us move on to the next problem. Now, use a while loop to generate the numbers from 10 to 1. For each number, print that many star characters. That is, if the number is 1, print a single star. If the number is 3, print 3 stars, etcetera. Remember, use a while loop to generate the numbers from 10 to 1. And for each number, print that many star characters. Again, this should take you no more than a couple of minutes. Please try it. So, let us look at the solution for this. Very easy. Start with x is equal to 10 while x greater than 0. So, now this changes. So, it is now greater than 0 instead of less than 11. Print star into x. So, this is the only trick in this question, which is if you multiply a string by an integer, it will make that many copies of that string. So, here the simple way of doing it is to simply do print star into x. And then you have to remember to decrement x by 1. So, x minus equal to 1. You could have also written this as x is equal to x minus 1. So, I give you 20 seconds. Please type this. Make sure you get the correct answer. Move on to the next question. All right. Let us move on to the next problem. So, the next problem is ask the user for an integer, say n. And we will assume that the user gives a number that is greater than or equal to 2. Now, use a while loop to print n numbers uniformly spaced between 0 and 1. You must include both 0 and 1. So, for example, if the user entered the number 3, you should print 0.5 and 1.0. Once again, you can ask the user for an integer greater than or equal to 2. You do not have to give any prompt. Use a while loop to print n numbers uniformly spaced from 0 and 1. So, if the n is 2, you will only have 0 and 1. Otherwise, if you have n is 3, it will be 0.51, so on and so forth. So, you will get more numbers in between 0 and 1. Please try this. So, let me give you a hint. Remember, you have to basically increment the values. So, you need to find a suitable increment such that you can add it to get to 1. So, let us look at the solution. It is actually very easy. So, the first thing you do is you get the int n. Then you need to compute a dx, which is 1.0 by n minus 1. Why does this work? Supposing n was 2, what should the increment be? Exactly 1. What is the number of 3? Then the increment should be half. Then you start with x is equal to 0, while x is less than 1.0 minus dx by 2. Why are we doing this? Well, because we want to print 1.0 at the end. And with floating point numbers, you can never be sure that when you add these little numbers dx, you may not get 1.0 at the end. So, we do while x is less than 1.0 minus dx by 2. Print x, x plus equal to dx to go to the next value. This will exit before it hits 1. Why? Because it will not print when x actually reaches the value near 1. So, we finally print the value of 1. Once again, all we are doing is we start with x is 0. We keep incrementing by dx. And this dx is simply calculated as 1.0 dx by 2 divided by n minus 1. And when typing this, remember do not do. If you are using Python 2 especially, 1 divided by n minus 1 will give you 0. So, make sure if you are doing in Python 3, this is alright. But if you make it 1.0 divided by n minus 1, you will get a floating point. So, I give you about 10 seconds to finish typing this and get it correct and move on to the next problem. Let us move on to the next problem. We will now move to for loops. So, in this problem, you ask the user for an integer. Again, use no prompt. Use a for loop to generate the multiplication table for the number up to 10. So, if the user entered 5, print the following. 5 into 1 equals 5. Remember that there is a space. 5 space x space 1 space equal to space 5. 5 times 2 is 10 so on and so forth all the way up to 5 times 10 is equal to 50. Please try this. I give you 2 minutes. Remember again, if you are using range, remember that range starts from 0. So, you need to start from 1 all the way up to 10. Let us look at the solution now. It is very easy. We say n is int of input. You have seen this many times. For i in range 1 comma 11. And why do we use 1 comma 11? Well, we have to start with 1. We have to go all the way up to 10. And remember that the last value is not included in range. So, for i in range 1 comma 11, print n comma x comma i comma within string equal to comma n star i. So, it is very easy. It is just three lines of code. I give you 10 seconds to finish typing this. Get it correct. Move on to the next problem. So, let us look at the next problem. Ask the user for an integer n greater than equal to 1. Now, print the first n numbers of the Fibonacci sequence. Now, you have already done the Fibonacci sequence example, the previous session. This time, we want you to make it so that the user can give a number n. And then it will print the first n numbers. Please try this. If you remember, Fibonacci sequence starts from 0. So, remember to print the full sequence. All right. Let us look at the solution. I am going to go over this quickly because you have already seen this several times. Say n is int input. a comma b is 0 comma 1. We have seen this before. Print a, that is the starting value. Otherwise, you will not get the first value of 0. For i in range n minus 1, y n minus 1, well, range will give us n numbers. We have already printed one of those numbers. So, we want to do n minus 1. Print b, a comma b is b comma a plus b. That is it. So, I give you 30 seconds or 20 seconds to finish typing this to get it correct. And let us move on to the next problem. Let us move on to the next problem. This one is an extremely easy problem. So, we ask the user for an integer n. We use the range function to create numbers from 1 to n. Print each value in this, in a separate line, in this list. So, for example, let us say user enters 3, print 1, 2, 3. This is very easy. So, I give you about 30 seconds to finish this. Let us look at the answer. All we do is n is int input. For x in range 1 comma n plus 1, print x. The idea here is, in Python 2, for example, range is actually a list. Python 3, that is not the case. So, when you are iterating over a list, you can simply do for x in whatever list you give. We have seen this in previous sessions, in the initial sessions that we were looking at numpy lists, etcetera. So, remember that you can iterate using a for loop over all the elements of a list also, with the same syntax that you use with range. Let us move on to the next problem. What we want you to do is, we want you to loop over an array using the for. So, ask the user for an integer n. Use numpy's linspace to create n points from 1 to 2. If you remember linspace, you give it 3 arguments, starting value, ending value and the number of points. Print each value in this, in a separate line, in this array. For example, let us say the user enters 3. We want you to print 1.0, 1.5 and 2.0. But we want you to do this using linspace. So, please try this. I will give you a minute. Again, it is a very easy problem. Remember, you will have to import linspace from numpy. And remember, you have to create points from 1 to 2 and use a for loop. Let us look at the solution. So, first we import from numpy linspace. We say n is int input. Then we create this data is linspace 1, 2, n. This gives us n points including 1 and 2. Then we say for x in data, print x. Notice again the syntax. Even though we are not using range, data is not a list. We can still iterate over every element using the same notion. This is true for any sequence. So, any sequence type you can simply do for x in that sequence type and it will iterate over every element of that sequence. Let us move on to the next problem. I will give you 10 seconds to finish this to make sure you get it correct. All right, let us go to the next problem. So, now ask the user for a list of fruits separated by a comma. Print each fruit in a separate line. So, for example, let us say the user enters apple comma pear. Then you should print apple pear. All right, so let us say the user enters apple comma pear. That is all. You should print apple in one line, pear in one line. Again, very easy. I give you a minute to solve this. Remember that they are separated by a comma. Okay, let us look at the solution. It is again very easy. So, first thing you do is you get the input. You say fruits is input. Then the important part is you need to split this into a list of individual fruits. So, you split it based on the comma. What will this do? This will give us a list of fruits each separated inside the list. So, which means you will get apple pear as two elements of a list. Then you can simply iterate and say for fruit in fruits, print fruit. I hope you understand the process. Fruits itself is a string. Now we are resetting this, we are generating a list based on the input string. That is now a list. So, fruits is now a list. We can now iterate over every element of that list and print each of these elements. So, in the first case, you will get apple and pear. So, I give you 10 seconds to finish this and move on to the next problem. Alright, let us look at the next problem. What we are going to show you now is how you can loop over a string. So, ask the user for a string, print each character of the string using a for loop. Remember, I told you for loop can be used not just for lists, not just for arrays. We saw that we can do it for numpy arrays as well. Turns out you can do it for a string also. So, for example, let us say the user prints gives you box B O X. You should print B O X. Please try this. I give you 30 seconds because it is a trivial easy exercise. I give you 30 seconds because it is a trivial easy exercise. Okay, so let us look at the answer. It is very easy. You simply say S is input for car in S, print car. So, what does this do? So, what you should learn from this is that when you iterate over a string, the iteration loop will give you every character in that string. On the other hand, if you go back to the previous example, when you had a list, it will iterate over every element of that list. Alright, so when you did fruits.split, we converted that long string into individual elements that sit inside a list, which means if you had apple and pear, you will get apple as one separate element, pear as a separate element. On the other hand, in this case, when you just say S is input, you get a single string. And when you do for car in S, it iterates over every character of that string. These are important things for you to learn when you are writing your code in the future. Again, I want you to notice that the syntax is the same for character in some sequence, for object, for x in some sequence, it will iterate over every element of that sequence. That is the important lesson I want you to learn from this. Let us move on to the next problem. This one shows you how you can write nested for loops, which means a for loop within a for loop. So, let us say that the user supplies an integer n. Okay, give it again an empty prompt. Print an n cross n matrix where each entry is the sum of the row plus column. And remember in Python rows and columns start with the number 0. So, for example, let us say the user enters 3. So, you should give me a 3 by 3 matrix. And you should print the following 0, 1, 2, 1, 2, 3, 2, 3, 4. So, for example, this is the 0th row. This is the 0th column. So, if you look at this value 4, this is row number 2, column number 2. So, the sum of these 2 is 4. This is row number 1, column number 1. So, the sum of these 2 is 2. Please try this. I will give you a minute to finish this. I will give you a hint. You have to do a nested for loop. Remember it is an n cross n matrix. So, it is not 3 cross 3. This is just an example. Make sure it is an n cross n matrix. And each entry is the sum of the row plus the column. Now, there is one small trick here that you should remember. When you are printing out a row like this 0, 1, 2, we do not want you to print it in one separate line. We want the entire row to be on the same line. And then you should go to the next row. So, you have to print row number 1, row number 0, then row number 1, then row number 2. Remember print takes extra arguments that you can use. If you remember the slides, there is an argument to print called end. Takes an extra argument saying n equal to something. But then remember after every row, go to the next line. I have given you a lot of hints. Remember print takes an extra argument saying n equal to something. Try that. Remember we want each row to be printed like this. So, let us look at the solution. So, the first line is simple n is int input. Let me say for i in range n. So, remember this is the row for j in range n. Now, notice that this for is one level indented to the right, which means this for will be run for every row. It will run n iterations over j. Then inside this we say print i plus j. And then we say n is equal to space. This is not the empty character. It is space. There is a single space. So, this will give us. So, now how does this work? Well, it starts with i is 0. When i is 0, it will start with j is 0. So, then we will print 0. Then it will go to the next value of j, which will be 1. So, you print 1 followed by a space. Then it will print 2. So, if n is 3, so you will get the first row. Now, j is finished. So, it will come here and print this empty. What is print? Open close bracket do. So, if you do not know what this does, try it on an ipython session. You will see that it just prints an empty line. So, this will print you an empty line. Go to the next line. At which point it will loop back to i is equal to 1. Then start with again j is equal to 0, 1, 2, so on and so forth for all of these values. So, this is how you create nested for loops. You can nest them as much as you want. I hope you understand. I will give you 10 seconds to finish entering this. So, let us move on to the next problem. So, now we want you to find the first number in the Fibonacci sequence divisible by 4, but greater than 8 and less than 500. So, find the first number in the Fibonacci sequence. So, which means you have to generate the Fibonacci sequence. As soon as you find the number greater than 8 that is divisible by 4, you must stop. Find the first number in the Fibonacci sequence divisible by 4, but greater than 8 and less than 500. And obviously, we are expecting you to print that number. Please try this exercise. Since, this is based on the Fibonacci sequence which you have done many times before. I am not going to give you too much time. Let us look at the solution. So, we say a, b is 0, 1 just as before. While b is less than 500, we start the loop. If b modulo 4 is 0 which means if b is divisible by 4 and b is greater than 8 print b and very importantly we break here. Otherwise, it will continue to do the looping unnecessarily. No need to do extra computations. Now, if this is not the case, if this condition is not true, go on to compute the next value which is a, b is b, a plus b and that is it. That is all there is. The only thing here is you are using a break to actually find the value. So, I think the answer you will get is 144. So, I give you about 30 seconds to get this, try it and make sure you get it correct. And notice again that we are using and here. Once again, if you want to make this easier to read, you could put brackets here, b percentage 4 equal to 0 and b greater than 8. But in this case, it is all right. So, this ensures that both b is divisible by 4 and it is larger than 8. Remember that 8 will be one of the values. So, it will immediately exit. We do not want the value 8. We want the next one which is 144. So, that brings us to the end of this programming exercise. I hope you have gotten a feel for programming using if, l if, ls using while loops and for loops. And finally, we looked at how to use the break statement. We have shown you various examples of for loops, how you can iterate over various sequences using for. We iterate over a list, iterate it over an umpire array and we iterate it over a string. In each of them, you have to understand how the for loop is going to behave. So, we hope that this has given you a good exposure to loops. Thank you very much.


As a designer is never too late to learn a new tool. Try a new technique. Teach yourself using the internet. Document your process. Create content online. Redesign your portfolio. Have a career change.


Live from Orlando, Florida, it's theCUBE. Covering Enterprise Connect 2019, brought to you by 5.9. Welcome back to Orlando, Florida. I'm Lisa Martin with Stu Miniman and we are live on day one of Enterprise Connect 2019. You can hear a ton of people behind us in the Expo Center as it's getting busier and busier throughout the day. We're welcoming to theCUBE for the first time John Bourne is Senior Vice President of Global Channels and Alliance is at Varrant. John, thanks for joining us on theCUBE this afternoon. Thanks for having me. So I know we're in 5.9's booth, so graciously hosting us this week. Varrant is a partner of 5.9 which we'll get into in a second but give us a little bit about who Varrant is, what your main brand is and how you're helping customers. Sure, so Varrant is branded itself as a customer engagement company. We do employee and customer engagement solutions. We sit on top of CCAS vendors like 5.9, although 5.9 is probably our biggest and most strategic partner in the space and we provide everything into and including workforce optimization which was our legacy but now we also provide digital feedback and outbound surveys and bots and AI and all the other things everybody else is talking about here as well. The thing that makes us different is we're completely agnostic to the infrastructure that we set on top of. And we'll mix and match pieces of our portfolio with the vendor's pieces as well. We have an IVR but we don't use our IVR with CCAS vendors, for example, we use that. Just an example. What a pivot on the word legacy that you mentioned because you have been to this event which has been around for a very long time. Many years. Many years back when it was VoiceCon so you've seen a lot of vendors that probably weren't even here five or 10 years ago. Tell us a little bit about the evolution and communication and customer experience as table stakes for a business. Let me talk about the industry for a bit because I'm fascinated by this. As an English guy we don't get excited very often. Now let me tell you, it's a really exciting time to be in this industry. It's, I remember when we went from TDM to voiceover IP and that was the biggest thing that ever happened. If you think back to that, what's happening now it's unreal, right? There are more vendors, more players, more solutions, more good stories that are talking about real customer outcomes today than there ever were before. And if you have to remember our industry is quite conservative, with sort of laggers, quite conservative. We build bulletproof systems that work and the phone always worked and dial tone was always there but it's a whole new world. And as you know, right? John you bring up some great points here. I mean I think about networking and telecommunications. We used to measure these things you'd put it out in the decades of change. Absolutely. We go through this and then the standard rolls out and then the customer adoption. But you brought up this excitement here when I look at my career and you scroll back a couple of decades ago, the importance of data, the importance of intelligence of the systems, we actually talked about some of those terms. It's different now. Very different. Explain a little bit why it's so much different. It's not just billions of customers out there but why is it so exciting today? If you look at our industry and even true for us, we really didn't even know who the customer was. We only cared about the interaction and we were building systems that would optimize the performance of the agent or we'd make sure there were enough agents with the right skills at the right time but it was all about agents and interactions. But now we're seeing the confluence of customer engagement management which means we're more integrated with CRM systems. We care about the customer's journey so our perspective has changed. It's much more than just the agent but we're not forgetting the agent. So customer experience is very important obviously but so is the employee experience as well. It's both. So we cater to both sides of that. When you're having customer conversations, I'm curious, where does that come up in terms of pivoting or maybe over rotating towards improving customer experience because we've spent historically time ensuring that the agents are properly trained or they kind of over rotating back because they're so closely related. It's a great question. Let's talk about how the buyers changed, right? And you'll remember this, right? In the old days you were selling to the techies or IT especially through with 5.9 and many other. We're now selling to the business. We're selling business outcomes. They don't want to know about the technology underneath. They want to know what sort of experience their customers are going to have when they interact with them as a business, right? So providing their seamless journey regardless of the channel they're using. So voice is obviously still big. Voice is not going away what anybody may tell you. Voice conversation to get more complex but there's so much more self-service now but both reactive and proactive, right? So it's fun but tying it all together, this is hard, right? It's hard. So one of the things in this space is these are not, push button simple solutions that are rolling out. When I talked to 5.9 getting ready for this, they said, look it's in the cloud and could somebody do this on their own? Sure, but we white-glove it. We really engage there. As a key partner of yours, how do you see that? Where does that tie into what Barron's doing? So what we do with 5.9, all of our technology is deployed, co-located with 5.9's environment. It's the way we get the tighter integration. It's the way when we're provisioning new tenants that everything gets done at the same time. It's much easier to do it that way. And again, I'll come back to the buyer, right? The buyer's the business and they're saying, this is the outcome I want and I just want to deal with one vendor and I want to pay per agent per month for everything, right? And that's the thing that's so different, right? So it's an OPEX budget as well and that's where the world is going, right? I think perpetual licenses will be gone or should be gone in the next two or three years, but they're still out there and still out there. One of the things I'm curious about is, we've been in this multi-channel world. We're now in an omnichannel world that all of us as consumers are demanding, right? We want to be able to not just be able to talk to a contact center and agent on any channel that we want, but we want to have that conversation integrated so that there is progress from issue identification all the way to resolution. Where are businesses on that maturation of actually delivering an integrated omnichannel experience? I think that's a really good question and I think the truth of it is it's still fairly early for most businesses, right? Because what it's hard to do, right? If you look around the show, there's all sorts of vendors here that who do one point solution, one piece, right? And to make this work in a true integrated journey, the bots and the IVRs need to be communicating with the digital channels and email and chat and the self-service channels on the web as well as the voice, right? Because ultimately it really matters to us as consumers when we do actually end up talking to an agent, we want them to know everything we've already done and quite frankly, we didn't really want to be talking to a live person unless we absolutely have to. So repeating all that is the biggest frustration out there. Getting all that tied together, that's what Verrent does with 5.9 together and that's really what makes this different and that's hard, right? It's hard. When you look at, you know, these are business buyers needing to, you, to deliver business outcomes, what are some of the key metrics that customers use? I mean, we think of context and we think of customer lifetime value, net promoter score, what are some of the key indicators that you help them? Those are exactly it, right? It's customer experience. It's however they decide to measure customer experience. Like I said, some of them like a net promoter score, some of them have far more complex scenarios. This is all this stuff about average handle time, first time resolution. It's not important, right? It's all about what was the experience the customer had as it seamless and are they going to be loyal? But everybody measures it differently. It's not from what I've seen anyway. John, one of the things I love coming to an event like this is you get to talk to some of the users and hear from some of the users.  Maybe give us a little insight, some of the flavor of what customers are going to be talking about here at the show this week. We have several customers that are doing sessions here. We've got one of our customers is talking about what they're doing with speech analytics and the ability to understand the conversations that people are having. It wasn't that long ago, you could go to a contact center, a supervisor or a manager and say, well, what conversations are your agent having? I don't know, I don't care, right? That's all change, right? Now people really want to understand what are people talking about? The sentiment analysis is incredibly important. That's where things like speech analytics comes in, right? And then we've got other people here that are talking about their digital experiences, how they're marrying together the web interactions that customers have with their contact centers. A couple of years ago, that never happened either. I mean, contact centers were always very insular and were always the cost center. People are starting to realize, intellectually they've always understood it, but somehow they haven't capitalized on the fact that the contact center is the one place that is the face of the company for most consumers, right? Are you seeing- We need to get serious about that. Absolutely. Are you seeing this as a horizontal opportunity that lots of industries are taking advantage of? Or are there some early adopters who have a really serious need to pivot quickly? It's another really good question. It is a very horizontal play, but I'll tell you, the way the banks move, the big banks or the big insurance companies move is different from maybe some of the smaller retail players. And I think there are, even though the technology is the same, there are still some tweets you can do. What people have on their desktop, what agents have on their desktop, for example, varies quite a bit. So a lot of retail companies have Salesforce on a desktop or Zendesk or one of those types of products, which obviously we all integrate with. The bigger companies are still running, like the banks and the insurance companies and the telcos, they're running mainframes still in the background and there's all sorts of stuff on the agents' desktop. So it's different, it's different. They're all active. I wouldn't tell you that they're any laggard industry verticals, but they're all coming at this in a different way. The banks especially need this, the insurance companies need this, right? Loyalty is so critical to them. And then retail, obviously, they want to sell stuff, right? And they want you to keep coming back and buy more stuff and they're competing with people like Amazon, right? So, and Amazon does it really well. Yeah, it's interesting, you know, the question is sometimes if I'm smaller or a younger company that doesn't have all of the, you know, legacy, then a lot of times I have an opportunity to be able to do things the new way. That's the beauty about cloud, right? Now, probably for the first time ever, I can be a relatively small contact center and I can get all this functionality at an affordable price. I couldn't do that before because it was all-premise base, it was big tickets, seven-figured items. It's just not possible. Now, it's a huge advantage for them now. Huge advantage. Well, John, thank you so much for joining Stu and me on theCUBE this afternoon and sharing what Varen is doing with 5.9 and also the experiences and evolution that you're seeing in enterprise communication. We appreciate your time. Thank you very much for having me. Of course Stu Miniman, I'm Lisa Martin. You're watching theCUBE.


Good evening and welcome to NewsClick. As you might have read or heard, in the past day or two, the HRLC sent several notices to JNU students to try and understand the issue more and to know why this has happened. We have with us JNU student activist, Umar Khalid. So, Umar, what exactly, if we can start with, is the HRLC? And why were these notices sent and what is the role? I mean, before I go into the history of the HRLC, just to sort of give an immediate background, two days back, notices were issued to us. It was on the same day that I was clearing my dues in the university, preparing to leave the university. Two hours later, I get to know that there have been notices issued based on an inquiry which has been going on and on for the past two years, on and off, I mean, despite intervention of court. And I was told that I've been rusticated for the next semester. And I also have a fine of 20,000 rupees. The next day, I got the notice, I went to the university admin block and I got the notice. And it said that this was on the basis of the 9th February incident and that they've been inquiring into. Now, this HRLC was constituted on 12th of February, if I'm not wrong, 12th or 13th of February 2016. Just the day Kanhaiya got arrested. And during the period when we were in jail, this inquiry happened in our absence. And then it came out with a verdict sort of finding us guilty. A couple of months later, they pronounced the punishments and they pronounced us guilty. Now, as people might have heard in the news reports that this HRLC report expels me or rusticates me for a semester from JNU. I want to make it clear that this is not the first time that they've rusticated me. This is actually the third time in the last two years that they've rusticated me. And twice already, the court has sidelined it and sort of wrapped the JNU administration for not following due procedure for inquiry and not having a fair probe. Third inquiry, they once again go back and stick to the same kind of, the same set of findings that they had. I mean, these are all pre-determined findings, so nothing changes. And the entire inquiry procedure is just also a formality that they go through. So, without giving us a chance to depose, without giving us a chance to cross-examine, without giving us a chance to actually know who are the people who have deposed against us, they once again pronounce us guilty. And like the previous times, we are going to challenge it in the court and we are confident that this will be the worst. So, talking about the inquiry, taking from that, you have made several claims and when we previously spoke, you said that the inquiry, during the inquiry period when the HRLC report was being conducted, it was quite unfair. So, do you want to throw some light on that? Why do you think the whole, I mean the committee meetings and the inquiry, why was it unfair? See, any inquiry, any trial has a very important basis, the principle of natural justice, which is that the person whom you are accusing of should know what the accusations against him or her are and should have a fair chance to sort of defend himself or herself and present their side of the story. We never had that chance. So, the first thing I said was that the HRLC started the inquiry in February 2016. So, it ended on the 14th of March. We had returned from jail on the 18th of March. There were many processes like this, dates like this. For example, on 26th of February, we were called to a deposition. At that time, we were in jail. We couldn't come to a deposition and this is known by the GNU administration. 18th of February, 16th of February. That was the time when there was such a special atmosphere that we were in hiding for a few days. At that time, we were called to a deposition. GNU administration knew that we couldn't come to a deposition at that time. When we came back from jail, they could try to give us a chance to listen. But that chance was never given. And that chance was not given until today. That we could protect ourselves. We know who are the people who have deposed against us. We can cross-examine them. Because all these things are different things from our country. There are different bodies of justice in the university. These are all established procedures. They violate all those established procedures. And today, I was reading in the telegraph report. That this inquiry process relies on a guard testimony. The guard testimony which was made by the D.M. report by the Delhi government. He told us that these are false statements. Because when the guard was told that he didn't know who Umar Khalid was. He said that Umar Khalid was wearing a national dress. He saw the video and asked him who Umar Khalid was. He didn't know who Umar Khalid was. If he was punished based on that, then you can understand that this is a fairness. And I have told him that this is a politically motivated. It's a biased inquiry. It's an inquiry which is done with a lot of vendetta. Because they have to, by hook or by crook, prove something that is not there. So when you have to prove something that is not there, you sort of invent things. And that is what has happened from day one. So in the backdrop of... I mean, okay, if you look at it, your PhD subject, and a lot of others is just a few days away from today. And what a few months away are the student elections in January. And the new semester will start. So we see that now you've talked about vendetta. We see that the HLEC report has come up in this backdrop. So what do you have to say about that? One thing I would like to say, this is not just about me or about the 10, 15 people who have been punished by the HLEC. This has become a pattern in January. It's become a pattern where people who students who are raising their voice, not just in JNU, actually, across the country. But if I specifically talk about the JNU model of witch hunt that is going on, is... Whenever a voice is raised, before the semester starts, there is a punishment on it. There is a fine on it. There is a suspend on it. And the registration of the semester is made contingent on it. If you pay fine, you will be allowed to register in the semester. If you pay fine, your MFIL PhD will be submitted. It's so criminal that most of these inquiries are just what do I say? These are predetermined inquiries which do not follow any procedure. And then you exploit the vulnerability of a student that if he has to submit a PhD which he has worked for 5 years, he will have to pay fine. He is accepting guilt for something that person has not done. So this is what the vice chancellor has been doing. And it is like every July, every December, you will see 20 people being fined, 20 people being sort of punished in some form or the other. Also, you spoke about the JNU-SU elections. Now the JNU-SU elections, the guidelines, the Lingto committee guidelines say that if you have been punished by the JNU by the university administration, you cannot contest elections. So what they are also doing, that all the opponents of the ABVP, from all left organizations, from bed current organizations, they have ensured that they are disqualified in the election procedure. So ABVP never gets punished for whatever they do. Let's take the most stark example of JNU, Najeeb Ahmad. He was beaten up. There were 22 people who went and deposed. Najeeb went missing the next day. The previous night, there were 22 witnesses who deposed the fact that these people were giving him life threats. They were abusing him on communal lines. There were so many witnesses. They went and deposed. Nothing came out of that inquiry. Nobody was punished. Some people were transferred to a different hostel. We thought that was punishment initially. But when the very same people who were involved in beating up Najeeb, they started contesting elections and some of the students went and inquired in the admin, how come they can contest elections because they have been punished? They have been given a hostile transfer. The JNU admin said, no, that was never a punishment. You look at their orders. We have not said they have been punished. Only for precautionary measures, we have shifted them to another hostel.  That person is missing. But nothing happens to them. On the other hand, you have protested against the vice chancellor. Whether you have protested, you have not protested. Many a times one person has been punished that you were cooking biryani in the admin block. Now the fact is that that person was not even there. But what if he was there? I mean, he is cooking biryani or a crime. You were shouting slogans against Atul Johari. Now Atul Johari has been found guilty and not guilty. In fact, there have been so many allegations and all through the way his conduct was. So can someone be punished for shouting slogans against Atul Johari? You have been shouting slogans against the vice chancellor. Is that a crime? You are protesting for student rights. Is that a crime? Is that a crime? So on the one hand, ever since this vice chancellor has come, you will remember a slogan from ABVP after 9th February.  This vice chancellor has actually been shutting down JNU. Last year there were 1200 seats that were cut from JNU. There was a massive seat cut. 84% seats were not there. That was like shut down JNU happening in actual terms. Reservation has been violated for past two consecutive years. So all of this is happening.  So this admin has come with an agenda.  And that we have to understand. So in that context, this punishment should be seen. It is not that this punishment is different. Exactly. So taking from what you just said, we are seeing that if we can maybe talk about this assault in light of everything that's been happening in India, especially in the past year, this assault on higher education or maybe just the whole political climate in India. All on central universities and then you said JNU in particular. You see whether it's autonomy, whether it's seat cut or whether it's just this crackdown on student leaders and activists. So do you think like you said, do you think the government is actively now trying to set a narrative or an agenda for the elections that are coming up in 2019? Look, I would like to go back a little bit in this. If we can add one more question to this that why is this kind of intense attack on students? In 2014, when the government came, a lot of people were saying that there was no opposition in the country. On that occasion, the students of this country from different educational institutes played a role in that opposition. Whether it's FTII, HCU, JNU, AMU or Ilhabad University. A lot of people came out of that and they said that the opposition is still alive in this country. People still talk about the right and justice in this country. After that, what was followed, after that, to attack the opposition, FTII, Ilhabad, JNU, HCU, you will see a pattern. That the same things are happening everywhere. The way I am politically motivated in Rohit Vemula's case, when Rohit Vemula was alive, all these cases, all these documents came out later. In such a way, M.H.R.D. has written letters to the administration. You punish them. And that same thing is being done here as well. I mean, I don't have the letters to show you. But if someone comes to the court tomorrow, maybe something is coming out. What kind of interference is being made, the people sitting in the administration, who will talk about the entire government. And today, when elections are about to come, and we are increasing the number of elections, we are increasing the number of elections. So, the narrative of the Indian party is for this election. And if you compare it to the last election, I was saying that there will be good days, there will be development, there will be 15 lakhs for everyone. Every year, there will be 2 crore workers for the youth. The prosperity of the farmers will be over, there will be a minimum support price. There will be a decrease in the number of women. These were all of them. There were a lot of women. Now, the Modi government. Now, all these promises have come true. When we were talking about the elections, the elections in this government happened that Maliya Neerab Modi, Lalit Modi, all these people are sitting outside. Mevl Chowk, all these people are sitting outside. They are going to have different races and races. They are talking about the women's support. They are taking out the MLA rally. Women are getting almost every day incidents of different types of sexual violence. They were talking about the 15 lakhs of workers. The workers reached this level that our Prime Minister would say, sell your bangles at different times, they are workers, there is no data of workers. So, they don't want this debate to happen. We are talking about the minimum support price that you had promised about the farmers. What happened to that? That is why they will make some interesting stories. Sometimes they will talk about JNU, anti-national NRA, sometimes they will talk about Jinnah in AMU. And we have to trap people. We have to trap people in a scenario where they are dying daily. No one has to take the life of them. So, the questions raised on those questions, which the anti-people and this anti-national government has filled the nation and its people. So, now it's sort of conjuring up anti-nationals everywhere. Whoever opposes them is an anti-national. So, we know that now the action against you is that you've been rusticated from I think applying from next semester onwards.  So, what is the future course of action? What are you looking at? I mean, what exactly do you think you can't submit your PhD dissertation?  You've played guilty. So, what do you think is going to, what are you going to do now? Look here, it's a matter of principle. We have not done anything wrong. We will not comply with any unjust punishment. And that is my answer. Because it's unjust, we will not comply with it. We will explore all legal possibilities. We will explore all political possibilities. We will fight this distance. Accepting this is to accept falsehood. It is to accept all the propaganda that has happened against GNU. All the propaganda that has happened against me personally from day one after 9th February. So, accepting this is out of question. And we'll fight this. I will submit my PhD, but not at the cost of accepting this falsehood. So, let's see in the coming days. We've already been vindicated twice in the court. I think it's almost comical. It's that GNU students, and I think I've been a university student at some point. So, we've been told that students, the job of a student is to study. The job of a student is not to be in politics and to not. And in a time like this when you're just a few days away from submitting your PhD dissertation and how when we spoke to Anirban and you've also said this multiple times that studies are informed by our politics and our politics at the same time you know why servers are informed by our studies.  So, how does this look? But what am I saying on this? Sometimes I used to think that my PhD will stop. Then I thought that in the lynching cases the people who are accused in lynching support them when they leave the bail then they give them a government job. So, when people die on women these people support them then this is a very small thing according to them. So, I was shocked when my PhD stopped and I thought that my five years of hard work these people are putting a lot of work into it. So, I remember on February March 2016 our vice president Mr. Nidu said that studying and politics is not a job.  The vice chancellor chooses which government does the most. It is not politics. It is politics. It is not that the money is being cut but when the fees are increasing and people are protesting against it it is unaffordable. So, this is politics. The way Atul Jori came in front of them until it was happening it was not politics. When politics is our future it is important to do politics. We have to do politics based on the truth. When we do politics it is something else and studies are different. I remember when we came back from jail a journalist said how many days you were in jail. And after five years I have learned as much as I have learned in that PhD. I don't know whether I will submit or not. If I do it then it is good for the people. It will be in public domain. People can access it. That is the biggest validation someone can get from the people. Thank you Omar it was great talking to you. Thank you for


Natural vanilla is the second most expensive spice after suffering. Just one kilo of it can cost hundreds of euros. Most natural vanilla is produced in Madagascar by local farmers. Farming and curing vanilla beans is all done by hand and vanilla orchids only allow a 24 hour window a year to harvest their fruits. Freshly plucked beans also begin fermenting immediately so farmers have to sell them quickly before they go bad. Despite all this hard work vanilla crops are at risk of being wiped out by tropical cyclones which are becoming more frequent and intense. Yet vanilla is often the only source of annual income for many local farmers making them vulnerable when negotiating prices with the companies that buy it. In fact vanilla farmers only receive around 5% of its export price. The real profit is made later in the chain when beans are sold to traders that export vanilla around the world. But even if vanilla farmers maintain lower profits their income is still high for Madagascar whose citizens live on less than 2 euros per day.  When buying natural vanilla we should try to support fair trade producers. It might cost a bit more but at least we know companies have signed formal contracts with farmers and are paying them fair wages.


Sammy Watkins comments from his introductory presser as a Baltimore Raven should actually do a lot more good than bad. And that's because YouTube team keeping clean what's going on is saying Raven here with another video. And in this video before we get into a shout out to all the team keeping clean patrons I appreciate y'all rocking with us extra heavy. Thank you for that. Thank you for being super supportive. Now in the comment section of yesterday's video when we talked about the Sammy Watkins comments how he mentioned the Ravens receivers don't get open enough. They don't get enough separation and they just need to step it up for their quarterback Lamar Jackson and how he also spoke about Greg Romans offense and really defended Greg Romans offense since he said hey we can blame the offensive coordinators all we want to but it's the players it's the players. Now there were some people in the comment section and on Twitter Facebook all that. They were like man who is Sammy Watkins to be saying this who is he to come into this system and be saying this does he not know what's been said about this Ravens offense from people both on the end and the outside who is Sammy Watkins. But then there were other people who were looking at it from the other opposite end of the spectrum like hey that's that veteran presence that we need that's that leadership that we need. We need somebody who's going to hold guys accountable and somebody that's going to have those uncomfortable conversations and also somebody who's going to call people out and not even calling people out in a controversial way but calling them out to let them know like hey it's time for not only you but for me all of us to step it up as a whole because that's the group that's looked at the most when it comes to the Baltimore Ravens. We're not looking at another quarterback we're not looking at the running backs offensive line that that group gets looked at a lot too but every single year annually it's always the same question what's going to happen with the Baltimore Ravens wide receiver what are they going to do at the wide receiver position and even though a lot of us feel like Sammy Watkins should not be the end all be all when it comes to wide receiver for the Baltimore Ravens we can't deny that Sammy Watkins has certainly in his what it's been a week less than a week since he's been a Baltimore Raven officially he has certainly had a big impact so he came on to sing and he called it out and in him calling out the the Ravens receivers my God night should put it in a he put in a very simple way he said hey he doesn't think that Sammy Watkins was doing this to call out the receivers because he could have had a personal conversation with him on the side could have hit them up sent him a DM or whatnot but he said he thinks that this was really for the fans letting the fans know like hey this is Greg Roman's offense it that's the offense isn't the problem it's the receivers not doing what they need to do now do I agree with that yes and no I think it's a good mix of both there's been a lot of issues when it's come to this Ravens offense and everybody has their hand in the problems Lamar he's made a couple of questionable decisions he made some bad throws he's missed some throws then there's been the receivers sometimes they may drop a pass they in it can be very frustrating and then with with the drop passes you know the Ravens they don't pass the ball so often so those drop passes they hurt a lot more and then there's been play calling it's been some play calling where it's like whoa like what is going on here I don't understand like why we would do that especially the situational play calling that's probably been the biggest issue when it comes to the play calling as a whole so everybody plays their part everybody has their hand in this whole thing but what Sammy Watkins did and what he's doing he came through and he's making himself accountable and with him making himself accountable and all the other wide receivers accountable this can only benefit them it can only benefit them initially it may rub some guys the wrong way it could they could be like who is this guy think he is because of a point that I brought up is that a lot of guys and some guys that have some significant experience outside this Ravens offense like a there's Brian like a Willie Snead these guys talked about how and Steve Smith senior too but these guys talked about how this offense just it ain't it this offense is just not the offense that it needs to be and that's because of Greg Roman now there's Brian he didn't call it by name now Willie Snead he didn't call it by name but you could tell by their wording and what they said that they were speaking about the offense but with Steve Smith senior yeah he straight up called it out by name but one thing that my guy was talking to my guy JT about this yesterday and he made a very very good point when it comes to dares Brian who openly spoke about the offense and when it comes to Willie Snead who openly spoke about the offense he said yeah those guys definitely have experience in other offenses but Sammy Watkins brings a different kind of experience to these Baltimore Ravens because as we know Sammy Watkins has other experience in different offenses but Sammy Watkins has Super Bowl experience there's Brian Willie Snead they got experience but they they experience stops at playoffs Sammy Watkins no it goes through that so Sammy Watkins knows exactly what it takes he knows exactly what it's like to be on both ends of the spectrum but both ends of the spectrum that as far as you can go in the National Football League and what I mean when I say that is that he's been on the side whether his team has won a Super Bowl so he knows what it's where it takes and he's also been on the side where his team has lost the Super Bowl but both times whether they won or lost they got there they made it that far so Sammy Watkins knows what it takes he knows what it takes on the field and he knows what type of character needs to be constructed off the field in order to get there now with these Ravens receivers this could push them that much harder in order for them to just be that much better because they could listen to the headlines and they could listen to different podcasts they could watch different videos they could see stuff all over social media about this and they could be like oh oh he said that oh really okay well you know what Sammy Watkins he thinks it's not the offense he gonna see he gonna see but what I'm gonna do for Sammy Watkins since he thinks that this offense is not a problem he want to say it's on us we're gonna show him we're gonna show him I am go you know what already gave a hundred percent last year but you know what this year I'm giving a hundred ten percent I'm going to step it up that much more this offseason that much more and training camp that much more so I can really try to show out and when I get my opportunity I'm gonna do everything that I possibly can to do my thing when my opportunity comes when my name is called a I ain't messing around and I'm gonna show this dude Sammy Watkins that it's not us it's the offense so what can that possibly do that can make those receivers go that much harder and who benefits from that well the team as a whole the team as a whole if these dudes are really really working on their craft that much more if these dudes are really really perfect in their route running that much more if these dudes are really really working on their hands that much more just working on the entire game that much more it only benefits the team that's all it does it only benefits the team now Sammy Watkins with his comments what he's done he has put a lot of pressure on himself put a lot of pressure on himself and with that cuz again he talked about with the injuries we know that he has been injured a lot a whole lot and then he's his response to that well some coaches they know when to pull me they know how to pace me and I also got to work out right I got to get my massages I got to eat right the whole night so there's that pressure on him to stay healthy now a lot of that is kind of out of their control like cuz somebody in the comment section made a really really good point they said that of course no football player goes into a season and no football play goes and gets hurt on purpose nobody does that so we know Sammy Watkins is not out there like oh what hey what time to get injured no he's not doing that nobody's doing that but so that puts pressure on him was staying healthy I mean but there's already enough pressure on him to stay healthy but where he really put the pressure on himself was he said hey I know what I can do in this Greg Roman offense I went out there and I've done it before but when he said that those guys aren't getting open when he said they aren't getting open enough for Lamar Jackson and Lamar can be an elite quarterback if these guys would just get open for him Sammy Watkins you know exactly what you got to do and what you have to do consistently you need to always be open you need to always be ready to make a play you need to have your number be ready to be called upon whenever it's time whenever 14 is on the field you need to be that guy now can you be that guy we're gonna see and like I said Sammy Watkins is model this entire season needs to be prove them wrong improve me wrong prove us all wrong because there's a lot of doubt in a lot of people's minds right now and it's not about Sammy Watkins ability but it's about his availability that's one of the biggest things but with his words the ability has to show up to it has to show up to because if you're going to defend the offense and if you're gonna call out the guys who are on this offense you are stepping into a leadership role and it's nothing wrong with that that's a beautiful thing that's a good thing and this adds some valuable experience to the offensive side of the ball for the Baltimore Ravens because one thing that they had been lacking on offense was Super Bowl experience they were lacking that last year they they didn't have that they didn't have people with that Super Bowl experience it very very young very very young team and that's can be a gift in a curse all at the same time but Sammy Watkins again he asked somebody that has been there and done that and again going into the season he'll be 28 years old really 28 years young and it's so still always so crazy to think about that because it seems like this dude has been playing the game for a long time but he has been since 2014 so this this is a good thing and I know Sammy Watkins there were some people that were on offense about Sammy Watkins initially when the Ravens first even when the Ravens first had interest in them but I know after Sammy Watkins made his statement he gained a lot more fans and a lot more people were like okay I like this dude Sammy I mean he's from Florida so you got no choice but to like him already but with his comments he just he made you like him that much more but the offseason is for all the talking it's about that action regular season is where he really really needs to show out they all really really need to show out because again the pressure's on the pressure is on Sammy Watkins has not only put pressure on himself but put pressure on everybody else too because you know all the receivers you know they don't like that you know they don't want to hear that like imagine telling the receiver hey you you not getting open enough that's like telling the quarterback you can't throw that's like telling the running back you're a terrible runner that's like telling the offensive linemen you are a terrible blocker and so on and so forth imagine telling the wire see if you ain't getting open you are not getting open enough you need to get open more it's like oh that cuts deep but hey Sammy Watkins was willing to do it and because again he's stepping into that leadership role so what the leaders need to do he needs to lead so we'll see how this whole thing works itself out team keeping clean I love y'all Sammy Watkins again hey a lot of team keeping clean we rocking with you man we're gonna see what you all about coming this football season and just really see what this entire team is all about and see if these receivers this offense can really take that next step forward that next leap forward appreciate y'all yeah