All right, hello, it's definitely midterm day because like no one's here. So we'll boss through this, and I guess discuss midterm stuff and I guess lab three stuff because some interesting things happen. But let's go through this quick. So locks implementation. Oh God, there's more questions. Oh, and there are two forks. All right, people are still asking midterm questions even though it's definitely a lecture. So we'll get to them if we have time, which we probably will. So locks implementation. So we were talking about locks, we tried to implement that didn't quite work because we still had a data race when we implemented a lock. Well, there's some like baseline things you need in hardware to actually implement locks. So very basic requirements are like loads and stores are atomic. So you can't, you know, they either happen or they don't and instructions execute in order. And then that's all you need to implement locking. There's two main algorithms if you don't have any special hardware support. Peterson's algorithm and Lampard's bakery algorithm which kind of mimics going into bakery and picking a number and then round robinning. We have kind of an idea of that before every thread has its own storage then they all kind of vote. But problem is they don't really scale that well. You need more space depending on how many threads you have and it's pretty awful. So you actually want some hardware support. And we got this yesterday. Some magical instruction. Someone already knew of this, but this is okay if it's your first time seeing it. There is a magical atomic hardware instruction called compare and swap. And it takes a pointer to some value you want to change. The second argument here is old. So it's what you expect the value to be if it's to change it and then new is what you want to change it to. And what will happen atomically is it will try and change the value pointed to and it will return what the original value is. And it does this all atomically. So if our arguments here are L what I want to change and then zero and one, it will return zero only if it atomically changed the value from a zero to a one. Otherwise it's going to return one to say it didn't actually change the value. So now if we have this function and we go and try our lock again because the whole compare and swap is atomic, this is our entire implementation. So before when we had the while loop, we checked, oh, is it one? We just keep on looping until it hits zero and then we would break out of the loop and then change it to a one. Here we can just replace that all with a compare and swap. So it will go through this loop as long as that value is one because compare and swap would return the value that it's pointed to. So it would return one as long as that value is one. And then if it returned zero, it changed the value from a zero to a one and it did it atomically so no one else was able to interrupt it in the middle of that. So if it returned zero, you know you changed it from a zero to a one and only you changed it. So after the while loop, you break out of it, it's a one. Yep, yeah, so this is a, not only is it a real function you can call, it's a real hardware instruction. So there's a CPU instruction called compare and swap. I think if we see it later, sometimes it's called compare and exchange, they shorten it because of course why not, but every hardware has something that's essentially like this. So it is a built-in, you can use it as a function if you want, but it's actually a hardware instruction. So this is actually a good implementation of a lock.  Any ideas as why this kind of sucks even though it works? Yep, the caches shouldn't really matter because it's just one value we're changing. So it has to be somewhere.  So this does work, but it has a bit of a problem where it might waste some time. So, but that lock is a valid lock in some cases. If you know that value might change quick or the lock is protecting something that happens very, very quickly, maybe you don't wanna do anything special. Maybe you just wanna try again and that's the best thing. So that is what people typically refer to as a spin lock and they call it a spin lock because it just spins. It just tries over and over again. So yeah, the compare and swap is that atomic hardware instruction. So here's that name on x86. This was when I tried to pronounce change. It says compare and exchange. Depending on who made the hardware, they might call it something different but it essentially does the same thing. So yeah, like again, like I was saying, if you have one core on your CPU and you can't get the lock, you may as well not try again because you're the only thread running. So nothing's gonna change it for you. On a multi-processing machine with lots of cores, well, maybe you wanna try again. Again, like I said, if it's protecting something very small, if you try maybe a few times, you might get it the next time. So we kind of did this, you implement this or hopefully have started thinking about it at least in lab three. Well, you could just add a yield if you know you can't do anything useful. So I have that same wall loop but instead of just trying over and over again, if I don't get the lock, I will just yield and I'll say, yeah, run something else, hopefully it unlocks it because I didn't get it but that has its own problems. One's like something called a thundering herd where if you have multiple threads all waiting on the same lock, they'll all yield and then it'll kind of just stack up and they'll be like 10, maybe hundreds of threads waiting on that lock, all in the queue, all being re-queued over and over again when realistically if a hundred threads are trying for the same lock, you already know ahead of time that only one's going to be able to grab it anyway so why am I bothering just cycling through like 999 of them that won't get it in the next round? And also with that, everyone's just running this loop over and over again and going through the round robin assuming we're doing round robin and you can't really reason about who gets locked next it's just whoever happens to get it next. So if you wanna be fair and be able to reason about it you need some type of ordering and this wouldn't have it. So we can implement a queue so you can add a wait queue for a locks so it's just like your ready queue or if you have a blocking queue or whatever so I could just say hey for this lock I will implement a queue with it for everyone that's waiting for it. So here I'll do compare and swap and then if I don't get the lock I go into the while loop so instead of just yielding I will put myself on a queue and then use something called thread sleep which you didn't have to implement but it's not too hard to reason about. Thread sleep will put this thread to sleep and put it in a special block queue where another thread has to explicitly wake it up and tell it okay you can go in the ready queue again. So you put yourself, you essentially block yourself you put yourself in a waiting queue that says hey don't execute me I'm actually waiting for something then you put yourself to sleep. Then the idea here is that whatever thread has a lock eventually we'll call unlock it would set it to zero to indicate that that lock is available again and then it would check that hey if there's any threads in the wait queue I'll just wake up one thread and whatever is at the head of the list so you can reason about it so it's first in first out order. So there's two issues with this one is something called a lost wake up and two is creatively name the wrong thread gets a lock so anyone wanna point out to me how like bad situations could actually happen with this code or guess what a lost wake up is? Yep, were you gonna say the same thing? Yep, so that is correct. So what could happen is let's assume we have a thread running that's calling lock that doesn't get the lock and another thread has a lock. Well, what might happen is I check the condition, I don't have the lock so I go into the while loop and I want to add myself to the queue that's my next thing I'm gonna do but I get context switched right essentially I get yielded without consenting to it and it switches to another thread and it could switch the thread that's going to call unlock. Oh yep, oh so get a lock means one thread made it through this lock call so it changed the value from a zero to a one and it's the sole owner of that lock. Yeah, so in unlock if you have the lock and remember when we reasoned about before if only one thread should pass lock and it would set it from a zero to a one and then in unlocked it means hey I'm done with it and it just has to set to zero. Yeah, yeah so if it's locked right now at the global state, somewhere that value of the L is equal to one because another thread would have acquired the lock it's doing some critical section it's doing something. So yeah, so I would have in a thread that is trying to acquire the lock so it calls lock, it would go into the while loop it would say hey it's already locked I cannot get it so it would go here and the next thing it wants to do is add itself to the queue but I could get preempted right before I add myself to the queue and now this is the thread that would have the lock so this is the thread that set L equal to one and if it's going to unlock it well it would set it to zero here because it's the only one with the lock there's no data races because if it acquires the lock it's the only one with it so I can just set the lock to zero and now it's available for other threads again. So it might continue executing if it continues executing then it would check hey is there any threads in the wait queue and right now there is not because the other one hasn't added itself yet and then it wouldn't go into here it wouldn't wake up anything because there's nothing there and then just exit, exit return from this function carry on do whatever it's going to do. Now when we come back to this thread well it is now unlocked so the value of the lock is zero now it would add itself to the wait queue and then put itself to sleep and now nothing so it's just going to sit there nothing is ever going to wake it back up again unless another thread goes and acquires the lock and then unlocks it but it might have missed a single wake up so does that make sense to everyone? Bad things happen so the other one is the wrong thread gets locked and the idea of that is you're supposed to be fair so if you're waiting for a lock and you're the first one waiting for it you should be the first one to get it so there might be a scenario where let's say we have three threads so we have let's see three threads T1 and let's say T1 is already in wait queue so it tried to get the lock it couldn't get it because thread two has the lock so this is our scenario so T2 has the lock it's going to unlock it at some point and T1 is first in line it tried to get the lock it executed it put itself in the wait queue and put itself to sleep so there might be a scenario where T1 or T2 has the lock it calls unlock so right now the value of the lock is equal to one and so T2 calls unlock it would change that one to a zero and at that point it might get preempted so it might get preempted switch to another thread let's call this tricky thread thread three so it switches to thread three and thread three calls lock so if thread three calls lock well it would check the condition right now the lock is unlocked so it would change it from a zero to a one and essentially get the lock and pass lock and now thread three just kind of swooped in there thread one was patiently waiting thread three just came in swooped it up and now it has the lock instead of what we would imagine thread one was nicely waiting so does that make sense to everyone? cool so here is the lost wake-up example so what we just demonstrated we're thread one we have two threads thread one and thread two thread two has the lock so thread one gets into the loop and swaps before it adds itself to the wake queue then t2 unlocks it would check if there's anything in the queue there's not so it wouldn't wake up anything else and then that thread just puts itself to sleep and now known potentially potentially nothing will ever wake it up again and then this was the wrong thread getting the lock there's already something in the queue but the thread two that holds the lock unlocks it and this one I swapped thread one and thread three from what I was talking about but idea is still the same some new thread came in swooped up the lock yep uh so be sorry what do you mean so it's in a queue but if it got preempted here go back so if whatever was executing got preempted before it checked the queue then it doesn't even look at the queue and the other thread would go acquire the lock before it checked the thread that was unlocking actually checked the queue so it would just grab the lock and then it would wake up that thread that was patiently waiting for the lock and then it would just try again in the while loop and it would be like oh crap well it's still locked so I put myself to sleep again but so essentially nothing bad will happen it'll just be in a different order than you expect because one thread was waiting around a long time okay and here's how you fix it so the fix of this it looks really really ugly but it's actually not that bad if you translate some things so basically this uses a spin lock internally and the idea behind that is this these things aren't very big they don't take very long so you can use a spin lock which is a perfectly valid lock even though it wastes some time so you kind of need it so if you see this there's going to be a spin lock called guard that I only use within these functions so if you see this this is essentially a guard mutex that I am locking and if you ever set the guard to zero it means I'm unlocking that spin lock so if you translate it it's a little bit easier to read but this is what the code would look like but of course you could refactor it so in the lock I would acquire the guard lock and both these functions the first thing they do is acquire the guard lock so I can't get preempted in between them so I have mutual exclusion no data races only one thread has this guard lock at a single time so I have the guard if it passes through this while loop so whatever I do is fine in fact it makes your I don't need compare and swap for the actual lock value because I don't have any data races anymore because there's mutual exclusion there's only one thread executing it so makes it a bit easier to read so I check if the lock is unlocked well I change the value from a zero to a one and then I can unlock the guard because I'm done with this function I just immediately acquired the lock I don't have to do anything special and then in the other case where I don't acquire the lock well I would add myself to the queue this is just however you implement the queue and then I would unlock the guard and then finally put myself to sleep and then whenever you call wake up it would just resume like it just returned from sleep so the thread would just wake up here and the idea is we would transfer the lock there because we're we're only going to wake it up from the unlock function and we'll see that so in unlock you have called to lock the guard lock so after that you have mutual exclusion then it would check if the queue is empty if the queue is empty well then I just set the lock to zero to indicate I unlocked it so I change it from one to zero and that's it otherwise I don't set the value to zero I just keep it as one because I'm essentially going to I'm only going to wake up one thread and I know one thread was waiting on that lock so I'll just keep it locked and I'll say okay it's your issue now you deal with it so I would wake it up and take it out of the queue whatever was first in the queue and then I can unlock it so does this kind of make sense yeah yeah yeah so the idea is I'm taking the previous code and fixing the lost wake up thing and the wrong thread getting the lock so I prevented both of those this time because of this guard lock only one thread can do this at a time so if I'm patiently waiting nothing can swoop in because the problem was with the wrong thread getting the lock when the thread with the lock just changed the value then it context switched over to another one that was calling lock but now that can't happen anymore because if the thread that is unlocking acquires the guard and then changes the lock to a zero well another thread can't call lock because it would have to acquire the guard and this thread has the guard so it can't come in and kind of like swoop it right so is there any problems with this code because there's still a subtle data race here so this isn't quite correct but it's actually not too bad yeah no idea okay so if I unlock the guard here I could context switch right another thread could call unlock or something like that so what there's a subtle little bug or a subtle data race here that you could actually detect so it's not that bad so what could happen is say one thread has the lock already and another thread is trying to acquire it so it would grab the guard try the current value is zero so it would come or sorry the current value is one so it would come into here add itself to the queue and then unlock the guard so if it context switches after unlocking the guard and before calling sleep well it's currently not asleep so it's not blocked it's still technically active and then the other thread with the lock can actually call unlock now because the guard is unlocked so it could pass through this while loop and it could it would check well the queue is not empty because it added itself to the queue at least so it would get here and then try and wake up that queue or that thread but that thread is not currently asleep so yeah so it adds itself to the queue it knows it needs to wake something up but that thread might not actually be asleep yet but this isn't that bad of a problem because you don't have a data race involving the queue so you know it's about to go to sleep so I can just try this a few times but you have to be careful because it's like almost right and it you might not switch right before the sleep so it's like a subtle data race but it's not too bad and you can actually detect it so any questions about that we are steaming through this cool all right so that was basically that explanation that there's still kind of a data race where you get interrupted right before the thread sleep and then another thread would do the unlock and then try and wake you up but you haven't fallen asleep yet so but again you know it's about to sleep so you could just try it over and over again until it actually goes to sleep so yeah very important especially for even in lab three where you essentially have very very very well-defined concurrency so you have to yield otherwise it won't be taken away from you you still might need to worry about this in part of your lab three in very special circumstances and again it's kind of tricky a data race is when two concurrent actions access the same variable and at least one of them is a right and you have to be very very very careful about this but that also means that you can have as many readers as you want and maybe you want to implement something like that so you don't need a mutex or any protection as long as everyone's everyone's reading so as long as nothing's writing you can go ahead have as many threads accessing it as you want so you might want to have a lock that allows a lot of readers and only one writer so there isn't any data races and that is what a read write lock is actually this is a good segue so this in lab three remember I was kind of talking crap about like hey no one can cause my thing to segfault yeah that was a bad idea someone caused it to segfault and as a reward I will tell you what happened because it will probably happen to you because it was in my solution and it was in the TA solution so both solutions had this problem and I'm going to imagine yours would too so here we go you broke it so this is likely what happened well this is what happened in mind and I can almost guarantee you have the exact same issue so in what join when you implement that you'll have all kinds of checks for errors to make sure that it's actually running blah blah blah all that stuff so in my code at least when I was keeping track of everything I essentially had a pointer that was like a dynamically allocated array so I had it I said it it was you know whatever and then I had to put this thread to sleep because it was waiting on something else so I would swap contacts away from it and then eventually I would swap contacts back to it whenever that thread actually wakes up and in the between those I dynamically changed that pointer because I had to resize the array so now the value of this pointer variable this one was the old value still the old value even though I changed it because it context switched back here and it was still the old value so whatever I tried to access it only if I resize something between you know when I swapped away from it and when I swapped back then I accessed it and I sag faulted yeah yeah yeah so in this case I had a global variable that was just the whole like basically a global variable that pointed at my dynamically allocated thing and it moved between these so yeah so a resizable point so it just means I was pointing at some dynamically allocated memory and I was using a realloc array so sometimes realloc array when you say hey I want more memory it will actually move everything because there's not enough room to place it where it is so in some cases for me it would move everything so if it needed to move it that value changed and that's a data race because I was essentially changing that global variable and I had two concurrent accesses so one thread was changing it while another thread you know was reading it so it read it here and a right happened in between those and I shot myself in the foot because C is so fun right everyone loves C yep yeah so I had in mine I mean you're going to have to have it too where you have the information that keeps track of all the threads and you don't know how many you're going to have so it's a dynamically allocated array so I just had that and I changed it I changed it between the two calls right so this thread was joining on something it went to sleep and then while everything was executing I had to make it bigger and then when I came back it was like okay yeah I know where it is and it was the old value which is now no longer valid yeah sorry so if you use a link list that's okay as long as you don't it like it's the same data race thing right if you saved some value that could change by the time you come back you'll encounter this problem because I had to make it bigger yeah but it depends like if you're changing what what yeah you could if I save the element of the link list by the time I come back that element could no longer exist depends on your implementation oh god yeah yeah it depends but like if you were keeping track of some other element and by the time you came back it doesn't exist anymore then you're gonna have a seg fault so it depends on your implementation yeah so that that still doesn't help if I just like save the value of that pointer right there's an easy fix to this what's my easy fix that's never the right that's never the right solution yeah I saved it to a local variable so I should just read it again so yeah that was my fix so you just you know you just take this and you go yee yee and just set it again right so you get the most up-to-date one by the time you get back and that's the fix yeah nope well the there's no one test case this really depends on your solution to break yeah yep yeah the basic crux it's a data race so I read a value and by the time I use it again it got modified and I read the old one yeah oh yeah you guys added lots there's gonna be some hidden test cases because some are really big and pretty good so yeah there'll probably be some and like some of this this bug only comes up depending on like where you resize so I resized after like eight or something it just happened that one of the test cases did this with thread eight when I had to resize it so uh like you're not going to be safe if you just make a huge array because it's it's really easy to tweak how many threads you make and it's a lot harder to you know allocate way more memory yeah no I have I have to like manually convert them yeah so they'll probably be hidden test cases that you don't know I might try and add some more test cases before it's due just for more sandy check but yeah the point of that is you made your own test case too and hopefully you got an answer from the solution so you kind of know if you're on the right track or not yeah yeah I have to make it so I don't know yeah yeah sure if someone wants to volunteer for that just do it saves me a lot of time yeah but oh I guess I gave you the solution so you know what it should be we can crowd source in a we can all crowd source and I will oversee it so I can convert some test cases sure I'll just add test cases and people can tell me to add their test cases or not and I'll add it for everyone so you don't have to form little groups and have like a group that does good and a group that does crappy so yeah I guess I'll add more test cases but yeah looking at some of you are not very good at writing test cases or converting them so I will do it so yeah I will add more test cases but unfortunately I don't have an infant amount of time okay any other questions or midterm related or anything like that because it's I guess later tonight which kind of sucks yeah do you need a calculator no type three or whatever basic dumb calculators sure if a calculator makes you feel better go for it uh it'll be like two to the power of something and I think on it it's like the last one where you can leave in powers of two if you want so the hardest thing you have to do is add or subtract which and like up to like 30s so if you can't do that faster than a calculator then sure it makes you feel better but yeah it's generally if a prof if you ask that question that prof doesn't care it means it's not going to help you all right any other questions or concerns or anything I'll imagine it's later tonight yeah but that will definitely that's a fault will definitely be in your code even if you you know even if you allocate a huge array eventually it's going to pop up and I guarantee you you did not think of it so yeah depending on your implementation and make sure you read the new what join thing because the new the rule that was implied that I didn't spell out is that you can only wait on an active thread so then you can't have the situation where one waits on two and two waits on one or you also can't create any cycles and you don't have to detect it or anything like that so all right there's no questions I guess for the record we can clean up so yeah read write lock whoo going back so if you want however many writer or to allow however many readers you want and only one writer at a time well there's a special read write lock and the idea of it is kind of the same idea so I will reuse the mutex so now I'll just call them the mutexes or spin locks I'll just call them locks because it doesn't really matter which one they are so I'll use a guard lock that I only use within all of these four functions and then a lock that I use to represent the right lock like the actual lock and then I also have a variable to keep track of how many threads are currently reading the value so in the terms of right lock I only want one thread in there at a time so my right lock and my right unlock just simply lock and unlock that mutex or whatever it happens to be that lock variable now in the read lock I would try and grab the guards so I'm the only one modifying this number of readers so I don't have any data races so this is essentially like that plus plus counter thing so I don't want any data races with it because I'm keeping track of the number of readers so in here I increment the number of readers and then I check well if I incremented the number of readers from a zero to a one that means I'm the first reader and I have to acquire this underlying lock and then I know I now have the lock and I'm we're the only ones with it at this point and then I can unlock the guard and then other threads can come in and call read lock or read unlock so if another thread comes in and calls read lock again well I can have two readers that's okay that's not a data race because they're both just reading so it would acquire the guard increment the number of readers from like one to two and it doesn't have to acquire the lock because a reader already got it so it can unlock and this could happen as many times as you want so you could have 10 readers a thousand readers 10,000 readers whatever you want then eventually some of them are going to call read unlock so it would again acquire that guard subtract the number of readers because it's trying to unlock it and only the last reader would unlock that mutex so if this is like say we had two readers if this one decremented it from a two to a one it wouldn't have to unlock that underlying mutex because there's still a reader trying to read it so I don't do anything I just unlock the guard and the only thing happens is when I decrement the number of readers from one to zero which means I was the only reader left I can unlock the lock because now nothing is nothing is reading it anymore and now our right lock could come in writer could acquire it be the only one so with this implementation I could have either a single writer or as many readers as I want and not both so this will give you right if writes are very very seldom you might want to do something like this because if you just did a lock well anything reading or writing would have to be protected and only one thread could do it which would be really really slow but if writes are really infrequent you would do this and then you can have as much parallelism as you want because they would all be reading and they could lots of them could read at the same time so any questions about that? cool all right that's pretty much it so the whole crux of this is you need some critical sections to protect against data races and you also need a reason about them because even in lab three you will still get data races because now we have that dreaded thing called concurrency even if in lab three it's actually not too bad so you need like mutexes or spin locks are like the most straightforward locks they just only allow one thing to pass lock at a time and that's it so spin locks just try over and over again mutexes usually are a bit more involved and will put themselves to sleep if they don't acquire the lock but to implement locks you typically need some hardware support so that's that compare and swap instruction you would need some curl support for wake up notifications so if you really wanted to in lab three if you were really bored you could implement a sleep and a wake up if you really wanted to so that's up to you but that's not there I intentionally took that out just to save you a bit of time and then yeah lastly there's special types of locks so if we know we have lots of readers we should use a read write lock because it's not data races everything's reading so just remember phone for you we're all in this together


Oh, hey everyone, welcome back to theCUBE. Lisa Martin and Dave Vellante on day three of Dell Technologies World 2023. Been in Vegas, we've had some amazing conversations. We've had a lot of mobs, but this conversation, with one of our alumni, it's going to be awesome. We're going to be talking with Allison, do the CMO of Dell who's back with us about all things innovation, about how Dell is going to be extending the reach beyond three days in Las Vegas, and believe it or not, avatar. You will not want to miss this conversation. Allison, it's great to have you back on theCUBE. Thank you for joining us. Hey, Lisa, thank you so much for having me. I'm so thrilled to be here. It is one of my favorite parts of Dell Technologies World. Oh, we love to hear that. So talk a little bit about three days. We were back last year. The attendance looks even more than last year. It is, yeah.  We had already been working for a number of years on digitizing our events and extending our reach. And also, if you think about what happened in the spring of 2020, and the incredibly urgent imperative to connect with our customers, our partners, our stakeholders around the world digitally, we got so much better at making the digital experience more seamless, more interesting, less clues. You know, all of the things better technically and also better at the content. And then last year, obviously, we were back live in a person for the first year and what a great energy that was. And it was so much fun. It was fun to see our team members. It was fun to see our partners. It was fun to see you guys. And then this year, I feel like what we continue to do is build on the best of both worlds. I am so proud of this experience physically. I think it's the best we've ever done. I think the Solutions Expo is so exciting and really great to be hands on with it. And also, I think the way we take the content and extend it globally around the world and for many more days is really best in class. And so I feel like we will always continue to get better. And also, we've gotten the best of both worlds so far. So I'm really excited. I mean, day three here, it's hopping. It's hopping. I mean, it is really buzzing. And the ecosystem diversity is really interesting. We've been talking about that all week. Liquid cooling, telco, companies that you wouldn't necessarily see at a Dell tech world really underscoring the transformation here. You know, one of the things I had, I had a real personal epiphany earlier in the week. I've been at Dell 15 years. I've been a CMO for five years, you know, beating the odds in this role where people usually get fired after 13 months. Not mine, industry speaking. And I was going through, once the Expo was all together and I was going through the tour on Monday night, I had this real personal moment of aha epiphany, looking at the breadth and depth of what we're doing, looking at the edge solutions, looking at some of the places where we're really innovating on software. I'd seen the Project Luna, which is our fully recyclable, easy to open PC. I'd seen the video a million times, but I'd never had somebody take me through the process of just breaking it down really quickly. And I was so impressed having that experience live. I live this every single day. And for me to really experience this sense of, wow, we have brought together so much innovation. This feels very different and feels like an important moment for us. You guys had some great customers on stage on day one. You had CBS, Hyundai, Lightstorm. There's the James Cameron, and don't worry, we're going to be talking about it. We got to get there. I mean, I'm dying. We will, okay, okay. And CBS on stage, really articulating the value prop, what Dell Technologies has enabled them to deliver. I love seeing companies retail manufacturing automotive that are digital, that are technology companies and hearing in the story of how Dell is really kind of the fuel behind that. So the voice of the customer here, incredibly strong. Thank you, I agree. And you know, that used to not always be so easy. And it's gotten easier for us. And we have great customer stories and we have more momentum as a brand and frankly, more credibility. So people want to participate in that story with us, which, you know, maybe 10 years ago it wasn't quite as easy to get those customers to do that. So let's talk about James Cameron, which I just found out he goes by Jim. Yes. So it's kind of confusing, isn't it? Because even the voice of God said James Cameron, but my instructions were very clear, call him Jim. I had two things that they said, don't hug him and call him Jim. And so right before we walked on, I said, right, no hugging.  I said, great. So, and I successfully delivered on my two things. I did not hug him and I called him Jim. So the thing is, so last year was Matthew McConaughey and you had told me that he was all over the place because that's who he is. And it was, it took you off your guard. I didn't notice being in the audience. I thought it was a really, really good interview. What was it like this time? I mean, he was so good. He was so great. He was, I mean, first of all, I would done a lot of research ahead of it, but even then I didn't totally understand until I was deep in the conversation with him how amazing his story is and the way he talked about spending a third and third, a third of his time. First of all, it made me feel like I need to do some more stuff and I need to get out there and start saving the world or something. And it was really inspirational to hear about his creative process, the use of technology in the process and also what he's doing around sustainability and environmentalism more broadly. Really amazing conversation. Actually felt easy for me. I hope it looked easy. It felt easy. He is so engaging. He wanted to be there. It was very clear. Yeah, yeah. On the sustainability front, we had some great conversations. We had JJ on yesterday. We were talking with some other leaders in sustainability. There's a big focus this year. There's always a focus, there's a really big presence this year. What, in your conversation with Jim, Jim Cameron, what were some of the alignments from a sustainability perspective that impressed or surprised you? So, finally, just very quick sidebar and then I will focus. My husband's name is Cameron. So, behind the scenes they kept saying, Mr. Cameron, Mr. Cameron. And I kept having this moment of like, what's happening here? So, my close personal friend, Jim Cameron. One of the things that is really interesting is the way he talked about, there's a parallel that I thought was very interesting when he talked about sustainability on the set in terms of what he can control. And he talked a lot about, obviously, recyclability, use of renewable energy, veganism on set. And then also, the behaviors and patterns of others whom he can influence to make for a better world. And I really like that parallel for us personally because we are both very focused on what we can do as a company, how we think about our own energy usage, how we think about recyclability at this event, how we think about our carbon footprint, how we commit to our technologies that make the world a better place. And also, one of the things that's a really important part of our 2030 goals is the way we bring down power usage at our customers and partners. And I think there's a really nice parallel there which is what are you doing and what are you enabling? And so that felt really symbiotic and fun to talk about. Well, the most interesting part, there were a couple of really interesting parts to me is when you got him talking about when he went down, was it seven miles? And then you said, were you nervous? And he said, no. And then he said, I was the night before, but then I got excited, like an astronaut, which was like, I forget what the term is. Something like that, yeah. And so that was really cool. The second thing that was so striking to me, Allison, was the questions that he got from the audience. I was texting my daughter as a huge avatar fan, like, what would you ask James Cameron, or Jim Cameron, she said, it's James. And so, and then all of a sudden, these Dell customers who were in the industry were asking them about John Favreau's technology and that got him excited. And they went really, really deep, but that blew me away. That blew me away as well. And last year, wasn't your wife texting you about what to ask Matthew McConaughey? Yes, what to ask Matthew McConaughey, exactly. Maybe you should ask him ahead of time. I know. Well, usually I can come up with questions, but I'm like, oh my God, this guy is so impressive and amazing. You know, to build on that, Dave, one of the things that I thought was, obviously, we talked to, we want to bring people to the stage who have an interesting technology story, because this is a technology conference. And the work that we do with Light Storm and have done for many, many, many years in terms of enabling the processing power of data and the acceleration of that since the first avatar and what we're doing now, that's an amazing story. There's great good news there from a technology perspective. But in addition to sustainability, one of the things I really appreciated about the conversation with Jim was this focus on leadership.  And if you're going to send a sub however many miles down below the seat and you're going to be in it, you better make sure that you've thought through all of the possibilities and what could possibly go wrong and you've done that ahead of time. So I really like that example from a leadership perspective as well, because he was taking so much of what he's learned and the cultures he's built on filmmaking and extending that to his other endeavors and making it safe for people to say, gosh, I don't know how to do this. And there's another bridge back to our own 2030 goals. And I think I mentioned this on stage, sometimes a little bit of a blur. When we set our 2030 goals, we don't know how to achieve all of them. And that's what makes them a moonshot goal. Some of the things that may or may not be possible from a technology perspective, you're hoping that the technology curve accelerates and you can get to a place that some of the things we want to commit to in terms of recyclables and renewables in our products, we don't technically know how to do that yet. But if we don't push into those unknown frontiers, we'll never get there. And that's what I thought was so impressive about Jim Cameron, which is so much of the stuff he's doing, he doesn't know how to do. And he's willing also to take the time and figure it out. He's got a lot of credibility as a personal brand, but how amazing, what a great example for all of us. And Lisa, he had that story about failure. And Allison, you asked him about that. What are some of your, basically you were asking Jeff Clark about his leadership principles. And I was, that was very impressive. He said the team was dejected. You remember that spot?  And he said we're creating something that nobody's ever done before. You know, let's do it. And then obviously they succeeded. Really. And incredibly inspiring. I'd love to pivot on your leadership. We talked about this in the very beginning, but being CMO at Dell for five years now, Allison, that's a big deal. Thank you. The tenure is, as you mentioned, is a lot less than that. I would love to understand your leadership principles, what guide you and the team to really ensure that not only are these events impactful, but that the voice of the customer is heard loud and clear. The voice of the partners heard loud and clear. What are some of those guiding lights to you? One of the things I think many CMOs fail to understand is they only think about marketing in a silo and they don't put it within business context. Just candidly, I don't, you know, I don't always love going to marketing conferences because I sometimes find it to be just marketing gobbledygook.  That's not what I'm saying. But you always need to understand your craft and what you're doing within the context of the business objectives you're trying to achieve. So one of the things I've said about myself for a really long time is I am a lifelong marketer. I've always been in marketing since I got out of undergrad when I was 22. I started as a copywriter, but I'm a business person first. So I'm not a marketing person first. I'm a business person first. And that's something I've always tried to inculcate in my own organization, which is don't think about marketing. Think about the business first. And then think about the role that marketing plays. And don't think about, you know, I was just having a conversation. You know, it's not that we support this function or that function. We support the business in partnership with the other functions, product groups, or sales. And oftentimes marketing can find itself in a place of frankly subservience. And that's no good because then you're not doing the things that you need to do as a marketing organization. One of our number one priorities is focusing on the health of the buyer base, understanding our customers. Are they committed to us? Are they staying with us for the long term? Are they buying more for us? And we are both the captain of that game and a player on the field. We have to drive the data. We have to make sure that we educate our stakeholders about it. And we have to make sure we're educating our customers and our partners about our brand and who we are and what we stand for. And then the final one that I think is important is I've really over the years tried to build a culture of one team. One of my very first mantras when I took the CMO gig five years ago was we are one team. We are not a field organization or a BU organization. And candidly, this is sort of, I will show our words. You used to go into the expo and you could see the seams within the Dell organization in the expo. And you can't anymore. We show up as one brand. We talk one story. We look at some of our advertising. Is that consumer advertising or is that the B2B advertising? Yes and yes. I love, love the piece of work that we just launched about the Great Barrier Reef and what customers are doing to take their tech on their holidays, to take their technologies, to really understand what's happening in the health of the Great Barrier Reef. That appeals to customers, consumers. That appeals to technologists. It is a beautiful story and that is a really good example of us getting to one team and I think that's why it sounds so hackneyed but we are stronger together. That's incredibly important. Can you maybe comment a little bit on one of the challenges I've been in marketing a long time myself is alignment, getting alignment with sales and product. And you talked a little bit about that but maybe your top recommendation for other aspiring CMOs out there to get the alignment so that to your point, it's seamless. So I think one of the things is being unafraid to have the conversations. And again, it sounds like leadership 101 but I see people fail to do this all the time which is let's be really clear about what our priorities are. I also, the other thing that I see lots of people do in marketing organizations because they want everyone to like them just a little bit. So they don't want anyone to dislike them so they're not willing to say I'm just making the numbers out of $100. Here's the two things that we can do. They want to say out of $100, here's the 15 things that we can do. You're not doing any of those things at scale. Obviously the numbers are completely wrong but you're not doing any of those things at scale. You're not having any impact. You're sort of pretending to do marketing. And so you have to think about breakthrough and scale and impact and what are the things we're going to focus on. And that's actually really hard because you have stakeholders like, what about my thing? What about my thing? And there's a bravery in there which is nope, here's the things we're going to go do and we're not going to do those other things. Now that is hard. If you had to pick two one thing to do for the rest of the year what would that one thing be? That's a hard question to answer. It's really hard. And most people can't do that because they often marketing is sort of in the middle between sales and the product groups. And so you get this icky muddled middle and that's not good for anybody. Last question for you in our last 20 seconds with you Allison. What's the one major takeaway that you want everyone that's been here this week to walk away with? The scale and scope of the innovation that we are delivering across our product lines, across our commitments to our stakeholders if you think about what we've done with Apex, what we're doing with our own sustainability initiatives so many more. You guys have talked about all of the announcements. It is, there's an inflection point. We are speeding it up and we have brought so much to market this week and over the course of the year and we're so proud of that. And you should be. It's an amazing accomplishment. Congratulations to you and the team. Thank you. We've had a great time here. We have all day today to go but just the amount of innovation that we've seen is impressive. And again, congrats on being seen. Thank you. And thank you for having me. As I said in the beginning this is one of my favorite parts of DT world. We'd love to hear that. Thanks. All right. We've got to talk about Avatar and Jim Cameron. Yeah, for sure. We had Allison do. Thank you Allison do for Dave Vellante. I'm Lisa Martin coming up next. Let me look at my notes here. Couple of leaders about the Dell Broadcom partnership and how Broadcom MVME RAID goes beyond data protection. You're going to be introducing the new newest 900 storage adapter family. You won't want to miss that show and tell right here on theCUBE in just a minute.


Thank you. Thank you very much for that welcome and thank you for letting me gate crash your conference this morning. Just over two years ago, entrepreneurs started telling us that something amazing was happening right here in East London. A technology cluster was growing and had been doing so for a few years. They wanted government to put its shoulder to the wheel to help them overcome three big challenges. The first big challenge was the requirement for global profile. So companies and investors around the world would know about the huge opportunities and the creative potential in this area. Second, they needed a radical change in government policy. Because rather than helping these companies, government had in fact been hindering them. SMEs couldn't access government contracts, intellectual property law wasn't keeping pace with the digital age. And accessing early stage funding was far harder than it should have been. And third, the third challenge was a lack of space for people in the technology community to come together here in East London to share ideas and expertise and to help each other to develop. So two years ago, I said this government would do what it can to help. Our work on what we call the tech city initiative, I think is a great example of the positive impact that government can have. It's a good example of how a modern industrial strategy can encourage growth, stimulate entrepreneurship and champion innovation. So first on global profile, we've created a tech city investment organisation now headed by the fantastic Joanna Shields. It's great that she is doing that work. Over the past two years, it's spread the word about tech city at events across the globe. We even roped in their Royal Highnesses, the Duke and Duchess of Cambridge, to promote tech city in California. We've not only seen tech city companies win investment from overseas and expand into new markets. We've also been able to help bring the world's top technology companies here to East London. And today, we're celebrating more corporate investments in tech city. Microsoft will open a technology developer centre here in East London. University College London with Cisco and DC Thompson are creating an incubator facility to help new companies grow. And alert me, a Cambridge born technology and design company that helps people to manage their energy consumption is moving to tech city. Put simply, we're seeing tech city become a real home for global technology companies in Europe. A second, on government policy, we've created some of the world's most generous tax breaks for angel investment. We've doubled entrepreneur relief, we've created an entrepreneur visa, and we've announced tax breaks for video games and trebled the proportion of government contracts going to small businesses. The list does go on and on. And just yesterday, the Chancellor announced new measures to support high growth businesses by allowing Isis to be invested in aim listed companies. And he also announced, not really noticed yesterday, a massive change to the EMI scheme for share ownership so that people who take a risk and join a startup will get preferential tax treatment on their share options. Our ambition is nothing less than for the UK to become the best place in the world to start to run and to grow a technology company. These policies are helping to make that ambition a reality. Now third, on the space required that people and businesses need in order to come together, we've worked hard to use the sort of convening power of government to bring together people who might not otherwise work together. We've organised events to bring together the city and tech city. We've brought international technology conferences to London. And we've got out there and led from the front in bringing about new community spaces like the campus building just around the corner, home to hundreds of startups and general assembly providing mentoring and training to entrepreneurs in East London. And today I'm pleased to say that we're going to go a big step further. On the screen behind me should be an image of Old Street Roundabout. Good, excellent. The technology works. Lucky while we're here in tech city. On the screen behind me is an image of Old Street Roundabout, also affectionately known as Silicon Roundabout and it's the physical heart, if you like, of this technology cluster where it all began. Now we've been working with the local technology community who said to us that this site should be the location for a beacon of technology and innovation that is recognised around the world. So that is exactly what we're going to create. The Mayor of London and I are delighted to announce that government is going to invest 50 million pounds to build Europe's largest indoor civic space on the site of the Old Street Roundabout. This is what it could look like. It's fantastic. I went round that roundabout this morning. It would be quite a transformation. So this amazing new space will provide entrepreneurs and start-up businesses with the facilities and the spaces that they need to succeed but which individually they might not be able to afford themselves. The building will be chock full of classrooms, flexible office space, auditoriums for events and there will also be a cutting edge 3D printing lab so that designers from across the country can turn their ideas into physical products that can be sold around the world. It is a 21st century civic space and I think will be a global landmark for East London. It's nothing less than a Silicon Roundabout and it's going to help move tech city to the next level. I've said before that Britain, our country is in a global race and the critical question is this. How does Britain compete and win in a world where all around us new countries are on the rise and the answer frankly is found in places like this. This tech city initiative and the Old Street project are symbols of this government's commitment to technology, to entrepreneurship and to innovation. When we see an opportunity we should go for it. Years ago there were 200 companies and today there are more than 1,200 in tech city. These are supporting some 48,000 jobs and what is happening here in East London is absolutely vital to our future. So I'm delighted to be part of it, delighted that the government is playing its part to help grow this amazing cluster and I know someone else who is also delighted to be part of it and it gives me great pleasure to introduce the Mayor of London Boris Johnson. Thank you very much.


United States and the Governor of Alabama. Oh, please, thank you. Well, Governor James, Lieutenant Governor McMillan, Speaker McBurgatale, distinguished members of the legislature and honored guests, thank you very much for a most warm welcome. And if I may return the compliment, it sure feels good to be back in the heart of Dixie. A state that can produce giants like George Washington Carver, Helen Keller, Joe Lewis, Bear Bryant, Jim Allen, teaches us a valuable lesson. I have to interrupt here and say something about Bear Bryant and myself. I think I set something of a record with regard to Alabama football. A few years ago, I arrived here, had been invited to join him out on a practice session in the field, and yet I was due in black tie and tuxedo to speak later. And the only way we could work it out was I had to go to football practice wearing a tuxedo. I don't think it had ever happened before. And to make it worse, it was raining. Well, the greatness of America and the solutions to her problems begin here with your people, not in Washington, DC. You know, when you think of those ancestors who settled your state, they were willing to hitch up their wagons, venture across mountains, and sometimes bet the house, the farm, and all the family on the outcome. They didn't have much more than their hands, their heads, their hearts, and their friends. And they made it work without an area redevelopment plan, a subsidy from HUD, or even a go ahead from OSHA. And they did it the same way that Bear Bryant won more games than any college coach, the same way that Alabama set a record last year attracting new industrial investment, the same way that Jeremiah Denton endured in eternity inside hell. They did it the old fashioned way. They earned it. Dreams, drive, courage, refusing to quit made the difference then. And they make the difference now. Alabama has a serious unemployment problem, but I'm sure you believe the future is yours to shape, not just endure. The growth plan you're now implementing will pay tremendous dividends in the months and years ahead. Our administration can help, and we pledge, to be your partner. I have great respect for your Governor, Bob James, your mayors, your councilmen, your county commissioners, other local officials, and courageous members of this legislature who stand willing and able to accept their rightful responsibilities. We'll work together and build for the future. Our commitment to strengthen our defenses, increase spending on NASA related projects, complete the Tennessee Tom Bigby waterway, and move ahead with Enterprise Zone, moving ahead with the Enterprise Zones will add to the jobs that you're creating. And then, too, there's something else. Those values and principles I spoke of that are so strong here. Faith in God, patriotism, freedom, and the love of freedom, family, work, neighborhood, the heart and soul of America's past and the promise of her future. If we stand together and live up to these principles, we will not fail. Not too long ago, Senator Kennedy paid a tribute to former Governor and Ambassador Averill Harriman, who was celebrating a birthday in his 90s. And Teddy Kennedy said that Ambassador Harriman's age was only half as old as Ronald Reagan's ideas. And you know he's absolutely right. The United States Constitution is almost 200 years old, and that's where I'm proud to get my ideas. Thomas Jefferson said, I know no safe depository of the ultimate powers of the society, but the people themselves. And that conviction is embodied in our 10th Amendment. The federal government will do only those things called for in the Constitution, and all others shall remain with the states or the people. Would you not agree that we have strayed much too far from that noble beginning? And that the whole idea of our revolution, personal freedom, equality of opportunity, and keeping government close to the people is threatened by a federal spending machine that takes too much money from the people, too much authority from the states, and yes, too much liberty with our Constitution. According to polls, Americans by more than two to one trust their state and local officials to administer programs more efficiently than the federal government. But those who have controlled our government for nearly three decades haven't listened. Prisoners of the past, they remain shackled to the myth that all wisdom, morality, and compassion begin at both ends of Pennsylvania Avenue. A few weeks back, a leader of the liberal old guard said he would resist returning the responsibilities and resources that belong to you. He claimed to know of a dozen states that would shirk their responsibilities. Now just what states did not measure up to his standards, he wouldn't say, but the meaning was clear. He and his colleagues don't believe in you or trust you. But aren't they the same folks who gave us a trillion dollar debt, double digit inflation, and the highest interest rates in more than a century? The big spenders would have been right at home with Oscar Wilde. He's the one that said he knew of only one way to get rid of temptation, yield to it. And that reminds me, you know, that someone once said that a woman flees from temptation. A man gets down on his knees and crawls away, hoping it'll jump on his back. But I'm honored to be the first United States president to stand before you in this distinguished chamber. If I may, I'd like to use this historic occasion to make a request of all those who lack faith in the American people. Come to Alabama. Come to Alabama and learn how a governor and state legislature took a Medicaid budget, $34 million in the red, and put it in the black while increasing services. Come to Alabama and see how concern for education and commitment to equal opportunity, including a war on illiteracy, consumes almost two-thirds of state spending, and ranks Alabama fifth in the nation in spending on elementary and secondary education. Come and see how Alabama will take the nearly $450 million it received from leasing public lands and invest it in a super trust fund for the future. And the principal will not be touched. Then a general obligation bond issue is forthcoming to build roads, bridges, schools, and prisons, eventually creating an estimated 100,000 jobs. I think I understand now what Jeremiah Denton meant when he said, Mr. President, Alabama is the best kept secret in the world. You are not frightened by the challenge of regaining control of your destiny. You're excited by it. You've come together to work together. Only two blocks from where I stand, a courageous American named Martin Luther King, organized a struggle for racial equality that led to historic changes in our society nationwide. The sacrifice that he made brings tears of sorrow, but the good that he did brings tears of salvation. And now today, what you're doing here will push Alabama into the forefront of leadership as America approaches the 21st century. So I salute you. You don't need convincing that the federal government has, at great cost, been attempting to perform tasks that are not its proper function. The only people still defending this indefensible system are special interest groups and their protectors. The underlying purpose of our whole federalism initiative is to rest control of government from the hands of special interests and return it to the American people it was always intended to represent and serve. I'm talking about average citizens here in Alabama and across the country. And nowadays, they don't know who to blame when government services go wrong.  Think about it. In today's tangle of overlapping federal agencies, departments, and regulations, who really is accountable? Who can people take the troubles to? And if you do find a sympathetic listener, would it really do any good? If you have a problem with, say, the quality of instruction in your son or daughter's grade school, who's to blame? The teacher, the principal, the city superintendent, the state superintendent, the governor, the courts, the federal bureaucracy, or the president? Well, the answer today is everybody and nobody. And that's no way to run a government. We want to make government work again to make it accountable to the people it serves. And the only way to do that is to return the appropriate resources and responsibilities to the people and their grassroots representatives. This means asking some basic questions about many areas in which the federal government, often with the best of intentions, has injected itself. The first question is, of course, should a particular function be the responsibility of government at all? Then if it is, is it best handled at the state or local level? The federal government should only do what the people cannot do for themselves or through their locally elected leaders. As one governor put it recently, we can no longer afford either fiscally or politically to have every level of government involved in the delivery of the entire range of public services. To put it another way, the buck and the tax dollar should stop at the closest possible level of responsibility. It shouldn't be automatically kicked upstairs to Washington because for every step up, the cost of overhead becomes greater. I know that some of accused advocates of this new balance in government have wanted to turn back the clock to the bad old days. They claim that the injustices of other generations will recur if Washington's unelected regulators and bureaucrats lose their stranglehold on government. Well, that simply isn't true. Reapportion in the Voting Rights Act have eradicated once and for all the most clearing inequities in state representation. In fact, today, black Americans are better represented in state and local governments than they are in the National Congress. David Broder of the Washington Post has said the contrast between the stumbling of the national government and the improving performance of state and local government is a largely unreported story. Individual states have moved out ahead of the federal government, justifying, again, their claim to be laboratories of democracy. Well, as you probably know, our plan to restore the proper state federal balance has two major components. Starting in fiscal 1984, the federal government will assume full responsibility for the cost of the rapidly growing Medicaid program. In exchange for the states picking up aid to families with dependent children and food stamps. Now, the other aspect of the plan is a turnback of responsibilities to the states for over 40 federal programs in education, community development, transportation, and social services, along with the resources to pay for them. In 1984, the federal government will apply the full proceeds from certain excise taxes to a grassroots trust fund that will belong in fair shares to the states. By 1988, the states will be in full control of these grant programs. Now, we're not wedded to every detail of this proposal. We want a dialogue. And I've been very grateful to have Governor James strong support. And you'll be pleased to know that when the other governors met with me in Washington recently, they were in broad agreement with what we're trying to do. One thing we're not trying to do is balance the federal budget on the backs of the states. There will be no need for net tax increases on citizens at the local level. Also, our proposal will not cause needy Americans to migrate to states with high welfare benefits. People migrate for jobs, for a hand up, not a handout. Low income Americans want more opportunity. They need more opportunity. And if we work together, we'll make sure they get it. We will return government to the governed. And we will not retreat from our program to give this economy back to the people who pay our bills and yearn to save for their future again. Last year, we put together a bipartisan coalition. And for the first time in half a century, we charted a new course for the country. We're coming out of a long night of government mismanagement and blundering, which caused this recession. Those who are unemployed are living a tragedy. And I want nothing more than to see them working again. But I'm convinced the course we've embarked on offers the best hope. And I cannot accept the idea that a program which is just beginning and which, in fact, began after the recession was already underway is somehow responsible for that recession. There will always be room for improvement in any budget or economic policy. But we must have a budget. Where further savings are to be found or a better way of meeting agreed upon goals can be worked out, I pledge my full cooperation to the members of Congress on both sides of the aisle. And I want to hear from them. But I have little time for parade walkers who march out to denounce the projected deficit on television and then slip back behind closed doors to bust the budget in their committees. A propaganda campaign would have us believe that we have high deficits because Americans are not taxed enough. Well, taxes doubled between 1976 and 1981. And the deficits grew and grew. Then after pressure from the Congress last year, the first part of the tax cut was delayed and reduced so much that taxes rose again. Now, this only aggravated the recession, causing more unemployment, spending, and a bigger deficit. Now, let me explain. Our original plan called for a 10% reduction across the board in income taxes retroactive to January 1st, 1981. Well, to get the program, we had to compromise, reducing that first cut to only 5%, not effective until October 1st, 1981. Three months later, there was an automatic increase in the Social Security tax, which almost nullified that 5% cut. Americans today need strong backs and deep pockets to shoulder the highest tax burden in peacetime history. And yet, some in Washington still want more. Now, we don't have deficits because our people live too well and are not taxed enough. We have big deficits because government lives too well and spends too much. And those big tax increases, I just mentioned, never balanced the budget because federal spending tripled in the last decade alone. The more Congress tax, the more it spent, and the more it went further and further into the red. In fact, government spending increased faster than the growth of our economy and even faster than the paychecks of the working people. The solution is as obvious as it is urgent. Reduce government's share of the gross national product by slowing the growth of spending and help the economy grow by rewarding Americans who produce, save, and invest. I think that's what we've begun to do. We didn't really slash spending. We just cut nearly in half the inflationary increase in spending, which was climbing at the rate of 17% a year in 1980. We reduced the growth of new regulations by a third. And we enacted a strong program of tax incentives. Now, critics charge that it's too large. But as I've explained, it barely offsets the built-in payroll tax increases that were adopted in 1977. Our tax program is just beginning. Most of the benefits will go to average citizens in your hometowns. The 25% tax rate reduction indexing of tax rates to prevent bracket creep and strong new incentives for retirement savings will provide major tax savings. Accelerated appreciated schedules for business, both big and small, will encourage the investment we need to make our products and workers more competitive. Productivity growth, producing more and better for less, is the basis for all real gains in wages and living standards. Most new jobs in America are created by small business. And most small businesses pay their taxes by the personal rates, not the corporate rates. So the personal tax cut will create jobs. Those who oppose it would only handcuff employers and further hurt the unemployed. We also address a special problem for farmers and family-owned businesses. It's not right that widows and children must lose just to pay Uncle Sam what generations of love and toil have created. So the estate tax exemption will increase to $600,000 by 1987. And of even greater help, there will be no estate tax for a surviving spouse, the widower or widow. Forgive me, but I'm not only proud of this tax program. I happen to believe it's the best darn thing that's been done for working and middle income people in nearly 20 years. I'd like to say something here to Main Street America, to the millions who work so hard to support their families and keep our country together, but who sometimes feel like forgotten Americans. You know, we hear an awful lot about compassion, guys of who has it and who doesn't have it. Well, I believe that a safety net is essential for people who cannot help themselves. And I believe that most of us in this country have a real compassion for such people, or the most generous people on earth. But how about having a little compassion left over for those Americans who sit around the table at night after dinner trying to figure out how to pay their own bills, keep the kids in school and keep up with higher inflation and higher taxes year after year. I realize that our cure for the mess we inherited is not always easy or popular or painless. But I must say this, it is an honest cure, not a quick fix. It's the only way we'll produce a lasting economy, a lasting recovery without a new burst of inflation. We brought inflation down dramatically. Last year's drop in inflation meant that a family of four here in Alabama, if they were around the $20,000 level of earnings, had a $626 increase in purchasing power, then they would have had if inflation had not come down. And this would vary at incomes on down to the poverty level incomes. Their purchasing power was increased. We must continue to reduce inflation until it's eliminated. And that means getting federal spending control permanently. If I could interject here for just a moment and call something to your attention, I know we talk a lot, and we're very proud of the fact that we have brought inflation down to where, for the last five months, it's been averaging less than 5%. When we started, it was up around 13%. And yet we sometimes, the people don't recognize it. All they know is when they go to the store, the prices are still up from what they were before. Now, they're not up as much as they would be if we hadn't lowered this. But our goal has to be to bring inflation to an end so they start going in and finding that the dollar buys just as much as it bought last month or last year when they went in. To the members of the business and financial community to let me say I have a weapon of my own in this whole struggle, the presidential veto, and I will not hesitate to use it. Lower inflation has pushed interest rates down and will push them down more. But we must also replenish the savings pool by encouraging people to take full advantage of our tax incentives. There is one other obligation that all of us as citizens must face up to if we're to preserve our freedom. We must restore the security of America. Without that security, survival itself is in doubt. I want to thank the people of Alabama for the tremendous contributions you make to our volunteer forces. And I have to tell you the spirit, the morale, and the patriotism among those forces is higher than it has been seen in years. I got a letter from a kid in a submarine. He took the trouble to write to me and say, look, we may not be the biggest Navy in the world anymore, but we're the best. The bulk of our defense buildup is for manpower, maintenance, and readiness. I know that some would have us get at the deficit by reducing deficits for our defense spending. I'm sure some savings can be made in any government program just by improved efficiency. And we have a plan to do that beginning with the Defense Department, but not by eliminating weapons systems, the planes that we've ordered, the tanks that are on order, the missiles, et cetera. If we canceled outright all those weapons systems, canceled them all, we'd only reduce next year's budget by $6.5 billion. And we would also send a very dangerous signal to the world that we were unilaterally disarming again. It wasn't long ago that we had fighter planes that couldn't fly for lack of spare parts, fully half of them, Navy ships that couldn't leave port, a rapid deployment force that was neither rapid nor deployable and not much of a force. For the sake of our children and their children, I consider it my duty as president and all of our duties as citizens to make sure that America is strong enough to remain free and at peace.  I believe this country hungers for a spiritual revival. I believe it longs to see traditional values reflected in public policy again. To those who cite the First Amendment as reason for excluding God from more and more of our institutions in everyday life, may I just say the First Amendment of the Constitution was not written to protect the people of this country from religious values. It was written to protect religious values from government tyranny. Thank you for inviting me into your house today. You are the public servants who offer us the best hope for our future. America has given us so much, but now it is she who needs us. When you answer her call, I believe in you and I believe that together we can restore the faith of our people in their government and that we will rebuild this blessed land. And then when our work is done, we can say that we fought the good fight, we finished the race, we have kept the faith. And to our children and our children's children, we can say we did all that could be done in this moment that was given us here on Earth. Thank you and God bless you. Thank you.


With the win, the Titans are the AFC South Champions. Watson under pressure, fires down Field. Pass intercepted. Right here, right now, up for grass. Field here, field here. Welcome to the Bet MGM Studio and the Mike Vrabel Show presented by Coca-Cola. I'm Mike Keith. We are in the playoffs now. And when we jump into playoff time, we get a pinch hitter. And a pinch hitter deluxe at that. General Manager John Robinson sits in for Mike Vrabel. Thank you for doing this. And congratulations to you on being the 2020 AFC South Champions. Thanks, Mike. Really proud of the football team. And I certainly do not mind pinch hitting this time of the year for coach so he can prepare for our playoff opponent. It gives me great joy to sit in for him. That means we're still playing football in January. That means we're all busy, no doubt. Back up for just a second. It's been 48 hours. What was that locker room like as you handed out the hats and the T-shirts and had the moment of celebration after what was such an emotional win? Well, I continue to encourage mask wearing, Mike, with the COVID protocols. It was a ton of excitement. You know, there's a lot of hard work that's gone into this season. That goes into every season.  Just that feeling of team and excitement for winning our division was, it was really, really, really cool to see. Titans won it with a 41 to 38 victory at Houston. Let's take a look at some of the big plays. And one of the early wins came from the defense, John, and second year safety, Amani Hooker. You know, we kind of had a simulated pressure here and we played man coverage behind it. And, you know, you can see David Long getting a little pressure there. And Hooker did a great job of kind of spying out of there and reading Watson's eyes, anticipating the throw, getting himself in position, breaking on it and getting a huge turnover for us there early on in the game. Hooker finishes the season tied with Malcolm Butler for the team lead with four interceptions. Game tied at three as we go to the second quarter. First play of the second quarter. How about King Henry to the house? Yeah, you know, just, you know, we've seen this, we've seen him do this many times. It's an inside zone play where we were able to get a hat on a hat upfront with the linemen. Swain really did a really good job on the right side there with Dennis Kelly to push up there and get the linebacker knocked out of there. Great vision by Derek. You can see AJ flash in there and kind of shield off one of the safeties. And then once he gets into open field, we've all seen it before. He's a tough man to catch once he turns the jets on. Later in the second quarter, John Robinson mentioning AJ Brown, he has a touchdown, a four yard reception from Ryan Tannehill. Yeah, you know, this play, we had, we had kind of a look over there to the right. You can see Pru, it's open in the flat and it, you know, they kind of put a linebacker over there that dirtied up the picture a little bit for Ryan, but the protection held up. Ryan did a great job of sliding to his right. AJ did a good job of kind of setting his route down and then accelerating across finding an open zone. And then Ryan with great vision, you know, in a, you know, shortened field there down there on the five to slide, get in position, spot AJ and deliver the football to him for a touchdown. Third quarter, the Titans get help from other receivers on a touchdown drive. A couple of big third down conversions. Ryan Tannehill goes to one of his favorite third down targets, Anthony Firkser. It's really a three step pass here where, you know, Ryan, as soon as his back foot on that third step hits, he's letting it rip. Firkser does a great job of knowing where the sticks are. They're playing a stick coverage, if you will. You can see three defenders closing quickly. Firkser does a great job of finding the hole in the zone there. He anticipates the throw. Ryan snaps it off and it was a huge conversion for us. Later in the third quarter, let's go back to Derek Henry. This run covering 45 yards. Yeah, more of an outside zone play here. Really gets downhill. Great kick out block there by Swain, as you can see. And we always tell Derek on some of these runs, you've got to account for one guy.  He throws it twice. The guy kind of leaks off a dentist scarlet there. He knocks him off. And then there's the guy he's got to account for the safety. He's stiff arms him and rumbles down, throws another elbow to knock that guy off and almost gets in. The Texan scored 20 straight points in the ballgame to take a 35-31 lead with 10-14 to go. The Titans go on a 19 play, 75-yard drive that culminates with Mr. Tannehill taking it in. Yeah, they were really key on Derek down there. It's kind of a zone read play. It was a zone read keeper. You can see I think they have six or seven guys committed to the middle of the formation there. He reads it and does just enough to keep Lonnie Johnson 32 there for Houston kind of frozen and giving him enough space to bounce it out to the outside and go in for the touchdown. And then the game winner. The last play of the game tied at 38. The rookie from Miami of Ohio, Sam Sloman from 37. Yeah, the bank shot heard round the world here. You know, I don't, this isn't how we practice it during the week, but it was a great snap. It was a great hold. He hit one right before that. When Coach Cornell called a timeout, it went right down the middle. And he was trying to overcompensate for whatever reason.  He kind of steadied himself. The protection was good. And he banged it off that right upright and it went through. Sam Sloman was a guy you had your eye on even pre-COVID last March at Miami of Ohio, right? Yeah, he was a guy that we spent some time with in the pre-draft process, you know, trying to get to know him, study to him. You know, I had a good career there at Miami of Ohio and, you know, he ended up out in LA with the Rams. And, you know, that situation didn't work out for him. And we talked all week about second chances and Sloman was a guy that got a second chance here with us. Got called up because of Steven's situation and went out and won the game for us. Titan's doing their homework and Sam Sloman comes through in the clutch, helping the team to the AFC South Championship with that game-winning field goal. We'll hear from him later with Amy Wells and our rackly roofing tough Titan. But coming up, our Bridgestone clutch performance play of the game. Let's go deep with Arthur Juan. That's next. From the Bet MGM studio, John Robinson in for Mike Brable on the Mike Brable Show presented by Coca-Cola. Time now for the Bridgestone clutch performance play of the game. 18 seconds remaining. Are we going to take a knee and go to overtime or are we going to take a shot? We're taking a shot, John. Yeah, I mean, it's 18 ticks left. We had some time outs there and they were playing coverage. I talked to Arthur about it after the game and, you know, he had a feeling they were going to play a certain coverage and, you know, we thought if the protection held up long enough, Mike could get back set up and launch it, which the protection did hold up. He steps up in the pocket, you know, the middle of the field's open and he kind of throws it to a spot and AJ hits the jets and throws his hands up and hauls in a huge, huge game-changing play force there and gave us enough time at the end to run one more play and then kick the field goal. That's a great throw, John. Yeah, it wasn't bad, Mike. I didn't hate it. It was a trust throw for Ryan. It was an accurate throw and you could see AJ, you know, I saw it live. He knew the ball was coming and he kind of hit another gear there and went to track it down. Isn't that one of the most special things about AJ, the fact that in those big situations, he wants the ball badly? Yeah, I mean, I think that's the competitor that he is. You know, he believes in his ability to go make a play and he's made a lot for us.  He can break tackles and as we just saw with that play, he's got speed to stretch the field and hit the home run. Set it up for the field goal and he won the ballgame on Sunday in Houston. Time now for Delta dentals. Can you guess this Titan? Mike Vrable has been on a roll. How will John Robinson do? I don't think you've ever missed one when you've been filling in. Yeah, I don't know. It's always tough. It could be a challenge on this one. You're going to have a break, so just take a long look. When we come back, we'll have the answer to the Delta dental. Can you guess this Titan? Who is he? You'll learn more in the Rackley Roofing. Tough Titan on the Mike Vrable show. Can John Robinson guess this Titan? There's pressure brought to you by Delta Dental on the Mike Vrable show presented by Coca-Cola from the Bet MGM studio. John Robinson, I've bought you time. Do you know? You know what, I think I've got it, Mike. I feel pretty good about it. I'm going to go Michael Pruitt. Oh, Michael Pruitt. It's Harold Landry. Mmm. Swing and a miss. Swing and a miss. Harold Landry's season. This guy played a ton of football for you on defense. Almost never came off the field. I mean, he really had a good game. Mike, whether it was dropping out into coverage, banging some of those inside routes, rerouting guys, coming in on stunts, setting the edge in the run game.  You know, just continues to play a high percentage of plays for us and be productive. Harold Landry going to be one of the key players for the Titans going into the playoffs. One of the key players from Sunday, of course, was the man who hit the game winner, Sam Sloman. He is this week's Rackley Roofing Tough Titan. And standing by with number two is Amy Wells. Sam, just for starters, I think we just have to say wow. You started the week on the practice squad. Then you're getting ready for one of the biggest games of your career, of anybody's career, really. And a colossal moment. How do you get your mind right for something like that? Well, you know, I was just, I was really thankful just for the opportunity, the chance to, you know, it's a second chance. And I've been working on things on the practice squad, working on my form, working on getting better.  It was kind of a crazy week but I was able to settle down and, you know, prepare pretty well. Leading up to this week, your practice squad experience was a little bit different than what we're used to, what the norm is. Talk a little bit about what your routine has been like. Me and Trevor and Matt, the practice squad Hunter and Snapper. Three of us, we virtually meet. We go on to practice for special teams in our team meeting. And while often some defense for our meetings, the three of us would come in and we'd work. So we've actually got a pretty good operation that the three of us have. We've been working really hard, really well together. It's been pretty cool to get to know those guys really well and, you know, they're a great guy. So it was a little different but I was having a good time with it for sure. As a kicker, there's always going to be a moment when the game is on the line and you have to perform. What do you do to stay calm and ready for moments like that? I really treat it like every kick is the same. I haven't had a kick last play of the game in a situation like this, but I've had tons of kicks in every kind of situation. Brett and Matt have done a great job just keeping everything routine for me. After that kick went through, there was a huge moment of celebration and you don't really know a lot of people on this team. You just haven't spent a lot of time with them. Was that strange at all? Not really. They've done a great job all week getting to know me. They've been really excited for me for every opportunity and it was really cool before the game just talking to guys and during the game everybody. They were excited for me for the opportunity and it was just awesome after the game. It felt like I'd been here for a long time so it was a really, really cool feeling. We've got to wrap this thing up but I've got to ask, I know in college you wore the number 79 which is not a traditional kicker number. Tell me a little bit about that. The number I was given when I got to college. I didn't really like that first but I ended up loving it and I still think it's really cool and unique number for a kicker. Sam Sloman, thank you for being our Rackley Roofing Tough Titan. We're going to take a break but when we come back we're going to talk about not just being strong but being Nashville strong, being 6-1-5 strong. Butch Speardin's here to talk with Mike Keith about how you can help those affected by the recent tragedy in Nashville. Stick around. We need two yards to keep this game moving on. You see what you're made of when you go through something tough. Steady rainfall. And yeah, it's been a tough year. But Tennesseans are built for this. Grid passed down through generations. We look for it. We like it that way. Tennessee Tough. Welcome back to the Bet MGM Studio and the Mike Vrable Show presented by Coca-Cola. This weekend Nashville will be one of six cities to host NFL playoff games. And that makes the president and CEO of the Nashville Convention and Visitors Corp. Very proud. Butch Speardin joins us on the Mike Vrable Show. It is a special time, one that you envisioned when you helped fight for pro football back in the 90s, that this city takes center stage as part of Wild Card Weekend. In spite of everything we've been through in the last year, couldn't be happier to kick off 2021 with a home playoff game. So congrats, thanks. Let's keep it moving. Let's keep it moving indeed. And something else I know that you have been very proud of is the way our community has stepped forward in the wake of the Christmas morning bombing. It has been inspirational to see the way that people have pulled together on behalf of Nashville. Inspirational is the exact right word. It makes you proud to live here. It makes you proud to be involved in the community. First responders, police in particular. Unbelievable job. And community rallying around the victims. So Nashville's a pretty special place and proud to live here. Butch, so many people have asked the question and I know they've asked it to you. I want to ask it here on the Mike Vrable Show. What's the best way people can help the residents, the businesses, the people affected by the Christmas morning bomb? So there are three opportunities to provide assistance. The United Way has started a community foundation that's a fund. And then our charitable foundation Music City Inc. has set up a fund. And we have always found that trying to get immediate assistance into the victims' hands, it's the hardest thing to do. So we try to cut away the red tape and we've already reached out to probably a hundred individuals that have lost their jobs and we will provide Visa gift cards if you will put cash directly into their hands as soon as possible. I would expect that we will do a good chunk, hopefully 50 to $100,000 this week that we will give out. And this is going to take a while to make all this right, not just with the buildings and with Second Avenue, but for these people. If people have the opportunity now, they think, oh they've already got enough. No, they need to keep giving and they need to stay involved, don't they? Well said. When you realize dozens of people lost everything they own in terms of their residents and their belongings. And then there's another group of people that have lost their employment. And it was already tough sledding for waitstaff, for example. So I talked to Spaghetti Factory. They have 35 employees who are instantly out of work and that's just a small example we estimate there's probably 1,000 people that make their living on Second Avenue. So we got to try to find all of them and find the residents and literally lift them up. So this is going to go on for a while and yet we could use the help. Titans have been great. Let me say a shout out to Will Compton. He texts me, I think probably Saturday and said, how can we help? And then he's put the word out and Burke Nahill reached out. He said, how can we help? So Titans have already been a great partner and you guys do so much for the community already. I can't say thank you enough. Butch Spirit and president and CEO of the Nashville Convention and Visitors Corp. Thanks for your time. Appreciate you being with us on the Mike Frable show. Remind everybody if you want to donate, go to TennesseeTitans.com slash 615 strong and chip in for our community. Let's be 615 strong together. When we come back the keys to winning a playoff game against Baltimore on the Mike Frable show presented by Coca Cola Nissan Keys to success right now against Baltimore on Sunday. John Robinson sitting in for Mike Frable. Let's start with the first one. Sustained drives and finish with touchdowns. John, yeah, Mike, we talk about it all the time offensively is getting into that first drive, getting into the drive. Get the first first down, stay on track and then get down to the red zone and finish with touchdowns and that'll be key for Sunday affect and tackle the Ravens playmakers. They've got a bunch of them, John. Yeah, they do. I mean, they're leading the league and rushing.  They got fast guys that run and catch. We'll have to affect these guys, not let them make yards and tackle them when we get a chance. And your final key is keep the win one game mentality. What does that mean to you, John? You know, now that we're in the tournament, it's a single elimination tournament. So if you want to keep playing, you got to keep winning. And if we if we attack this game against the Ravens, focus solely on that. Don't worry about your next opponent where it may be, who it may be on the Ravens, put all our efforts into that and go out and play our style. Then then you can continue to build and keep winning. John, thanks for sitting in for Mike Vrable. I hope we're doing it again next week. I'm looking forward to it, Mike. All right, kickoff Sunday at 1205 at Nissan Stadium. Titans Radio hits the air on 104.5 the zone at 11. We hope you'll join us. Thanks for being with us. Tighten up. Tighten up!