Hi, I'm Chris Madison with Fermion. Today, I'm going to talk about building a Slack bot to connect Slack with ChatGBT. If you'd like to follow along with our example live today, you can access a GitHub with the app and all the steps right here. First question you might have though is why? Slack just announced native integration with ChatGBT. There's a wait list, but you'll get it eventually. Well, today's webinar isn't as much about what is the only way to connect these two technologies, but about how SPIN provides an ideal architecture to develop and run these and other types of applications. SPIN allows you to build applications in the language of your choice, eliminate spoiler plate, and combine some performance of always available architectures, such as containers or virtual machines, with the density and cost savings of serverless functions. How do we do that? By leveraging WebAssembly in the back end. You can think of SPIN as being powered by WASM. WebAssembly provides a highly performant, natively secure environment, which supports most popular languages and can be compiled into byte code that can be run anywhere across X86, ARM, Windows, Linux, back, etc. In combination with the byte code alliance, we've helped to develop WebAssembly systems interface or WASI, which extends WebAssembly from its initial design of client side usage to support back end systems. On top of that, we've developed SPIN and the SPIN SDKs to manage WebAssembly aspects for you, handle the complexities around things like HTTP and SSL termination, and let you focus on just writing the code that controls what your function does. So what's this look like in our example today? Well, first, we need to create a Slack app. There are multiple ways apps can interface with Slack, and the one we're going to use today are slash commands. This lets you send a command to an app, have it process the command, and return a result in any channel or direct message. With our app, we need to find our command. In this instance, slash chat GPT. And the endpoint to which we'll be calling out to. SPIN app. We also need to authenticate that request that's coming from the appropriate Slack app. Slack provides multiple ways to do this, but today we'll use a simplest, a Slack token. When a user types slash chat GPT and then some question in a channel, the app will forward the request to the specified endpoint. This is where our SPIN app comes into play. SPIN handles HTTP and SSL termination for you, handing our function a request, which includes the entire HTTP request. We then need to parse that to do a few things. First, authenticate the Slack token, and second, extract the query. Once we've done that, we build and forward the request to the OpenAI API. This requires another token to authenticate with OpenAI. Now, obviously, we don't want to store these tokens in our code, so where do we store them? SPIN provides a couple options, including passing it in as an environmental variable, configuring it in your SPIN.toml. In this instance, we're going to use a built-in key value storage. This provides a simple way for us to separate the secrets from the code. Once GPT is processed to our query, it returns a response, which we then simply extract the answer from and enter it into the body of the return for our function. Send that back to Slack. Slack will then enter the response into the channel. This may all seem simple enough, but where do we host this SPIN app, and how much overhead does that add? Now, we have several choices here as well. Locally, I can run SPIN up and to launch my application. Typically, this is reserved for testing, and in this instance, we really don't want to have our laptop open to the world and run this forever. We can also SPIN apps on Kubernetes via SHIM. This SHIM is now included with a preview feature in Azure AKS and with a preview version of Docker Desktop. Alternatively, you can install it into any cluster you are managing with either custom nodes or Daemon Set. In this instance, we're going for a third option, Fermion Cloud. Our goal is to build the easiest place to host SPIN applications, with the ability to go from blinking cursor in an empty directory to a deployed application in less than two minutes. With SPIN and Fermion Cloud, you too should be able to get a Slack GPT bot or other workload running in no time. Let's go take a look at the code and see this all in action. Great, so let's dig into it. If you're following along and you've not already installed SPIN, go get that installed. You can grab that from releases on our GitHub, find the latest version and the appropriate architecture for you. Once you've got that downloaded, just unpack it into your path somewhere. I can see I've got an unusual open SPIN. We run SPIN. SPIN is a pretty straightforward command line utility. We can see the help here. SPIN includes a bunch of templates to help us get started and make this very easy and fast. So I can do SPIN templates list and I see the various templates we have. See a lot of these say HTTP. Some of them say Redis and there's a couple other ones in here. HTTP and Redis are talking about specific handlers that we have. With HTTP, we're taking in an HTTP request. We're listing on an HTTP port. We're going to pass that request to the function that you've got, wait for you to turn responsible and return that. Redis, likewise, we're going to do this with Redis. Redirect is pretty self-explanatory. And then static file server, if you just want to host some static files, you don't have to actually go write your own handler for how to do that. But to return those, we have already created one for you. So you could just use ours and configure it appropriately to point wherever your files are. So let's go create a simple one here. Oh, I should mention we actually run the entirety of the Fermion website on SPIN using a project called Baltholomium. A little more complicated than static file server. But you can host any kind of application with complexity of that easily to SPIN. So let's do some new applications. SPIN, new HTTP rust, hello, Webinar world here. And then we created this new URL CD into there. First of all, we want to look at is the SPIN.toml. This is an every SPIN application and is a configuration for SPIN. We can see first the trigger and the base here. So we have to have some kind of trigger. That's what I know the SPIN app is being triggered. Again, we're using HTTP in this configuration, and we're going to trigger on anything off of the base URL. If you hit the URL that's listening on it. And then each SPIN app have multiple components. This one happens to only have one, but we'll see an example later that has more than one. You can see first here the WebAssembly, right? You have to show us where the WebAssembly is. And then we have a loud host. WebAssembly by default doesn't allow you to do anything. So or at least externally. So we have to go give it access. We need to go talk to something. In this instance, it's hello world. We don't need to. Then we have the trigger route. Just like the base trigger here. I can go to find what this is going to trigger on. In this instance, it's going to trigger on anything. Go with a triple dot, but I could have a one for like slash API slash static multiple components that are triggered on different routes. And then finally, if you're not using a rebuilt WebAssembly that we provided, like set a file server, you need to tell SPIN how to go build that. And so we've in each of these templates pre-populated, whatever the command is for that particular language to handle the build. And so let's actually go look at the code itself. So first thing to pay attention to SPIN SDK. This is again, one of our big advantages that makes us so much more simple is we handle all of this stuff outside of getting like handing you the request and you just build any response. So that really allows you to come down here and write just your function that takes some requests, returns a response. This one's super simple. It's just a hello world example. Or in this instance, hello webinar. So save that file. And now I can do it's been built. How long this is going to take is depend on the language and complexity or application. Rust has to take longer to compile because you get better performance. Python's pretty much immediately here because it's just added the interpreter. So now we can go SPIN up. And we can run this thing locally. And I'd see, hello webinar. We're running. Great. Now I can go about putting this into these Furman Cloud and hosting this on the internet. So I can do SPIN login. Which allows us to log in to the Furman Cloud. And I put in this key and I authorized. And now my command line is authorizer deploy from cloud. And now I can do SPIN deploy. And we wait a few seconds here and then this thing should be ready. And there we go. And so that's the route. And we can see hello webinar. We're up and running. Cool. All right. So let's go talk about the more complicated example, the reason we're here today in the first place. So we've got the Slack chat GPT. Again, previously showed you the URL to get to that. You didn't have it before. It is github.com slash risk management slash Slack GPT. I also provide a link at the end of this to that and all of the other calls to action so that you can get back to this if you need to. So let's go look through this application. First, again, let's start at the spin.com a little bit more complicated here. First thing you're notice is different. I've got these variables defined. I mentioned in the light board section that we're going to be using KV when we actually deploy this out of the cloud. But we show this application supports as well using configuration here and then passing this in as environmental variables to configure these, which we'll actually show here in a second. And then I have my first component here. The set of using rust like we were in the last one. We're using some JavaScript here to build this application. So you see this is the actual application that gets compiled and then allowed hosts because this thing needs to reach out somewhere. I have to tell it that it has access to reach out and where that is. In this instance, it's the AI for open AI API. And then because I want to use a key value store, I have to give it access to that. Just because I defined the variable up top doesn't mean that it has access at the component level. So I have to go provide it here in the configuration and then define where it's going to trigger off and then provide the appropriate command to go do the build. I also have a second component on here, which is our KV Explorer. I'll show you what that is here. We can see this is something pre-built. I'm just grabbing this off of Radoo, our CTO's GitHub and able to run the service and hand it access to the KV store as well. So let's look at the code itself. So again, now we're in JavaScript instead of in Rust, but you can type script instead of in Rust. We can kind of see some similar ideas here. So we're pulling in the spin SDK and that's where a lot of the spin magic comes from because I need to talk to open AI. I'm grabbing a library to handle that for me. And then again, I have very similar, I'm creating a function that's really just handling, it's taking in the request and the promise is a response. Cool. So now how do I go about turning my request into my response? First off, I need these two keys that we talked about. And so I'm going to go try to find those somehow. First, if I have that still configured to the default, their value of edge for in there, because I have not passed something as a configuration through the spin configuration, then I want to go open the KV and then we're going to go grab that from the KV. Otherwise, we will use the configured value if that figured value does exist. Same thing for Slack. After I've done that for Slack, remember the first thing I want to do with Slack is if that's the same thing I want to do with Slack, authenticate that there's actually my Slack app that's talking to us. I don't want to go put this out on the internet and then everyone's using my open AI key and then you charge my credit card of a billion dollars for all of their requests. So let's authenticate this appropriately to our right Slack app. So we're going to go grab the body out of the request. And out of that, I need to grab the token. And I'm going to validate that the token there matches the token that I have configured here. Next, we're going to configure the open AI so that we can open the connection. And then we're going to grab the text out of the body. If we don't have any text, if there was a request or something, I'm going to throw an error. And then finally, we're going to go create the chat here with the prompt that I have and send that whole thing here to open AI to ask it to respond to us. We're going to wait for that response, handle some errors if it doesn't actually work. And then once I get the response back, I'm going to return the response here and then ultimately return that response as a return for my whole function. Which sends it back to Slack, which will then put that into the channel. And then of course, do some basic error handling. Cool. So now what do I need to do to run this? Well, let's get into that directory here. Because we're now using Rust, or we're using TypeScript, JavaScript instead of Rust, I need a plugin for spin. We need to spin plugins list, and you see the plugins. I have JS2 Walls installed. If you don't have this installed already, we spin plugins, install JS2 Walls here. And make sure it's zero 4.0 and not a prior version. If you need to, I believe it's also grade. Yeah, you can run upgrade if you have to get to a newer version. And then I need NPM for this. So if I don't have NPM installed, I should go install NPM. I'll let you Google how to do that.  Cool. And so now we've created the WebAssembly. So let's spin that up locally. And so now, because this is an API, it's not super useful to go look at it right here. So it's throwing invalid Slack token. But I can use something like postband. To send a request to. Here again, I have invalid Slack token. Well, how am I going to configure the Slack token? I can go up here and I say export. And I can do spin config Slack token. So this matches what we had in the spin.toml for here. It's just an uppercase version of this with spin config in front of it. And let's call that Slack token boo. And now I can do spin up again. And I can come here and say token equals foo. And now we got further. We're not invalid, but a prompt is missing. So now I can say text and it's tell me a Kubernetes joke and send that. It's what you call it all day Kubernetes workshop and an event container. It's not that. So, hey, how did this work without the open AI key? Well, I cheated and I don't want to show you my open AI key. So I already pre-populated that. Same way I just did it with the Slack token is just spin config open AI key as an environmental variable. So cool. Now we can see that this thing is working. Let's go make it work in the cloud and then ultimately make it work in Slack. So if you've not done it, you're going to need an open AI key. So if you hopefully have an open AI account, create an account and go to the keys, create a new key. Don't give it to somebody else. Use that and populate that in here. I need to also create a Slack app. So I've started to create the app already. See, we're going to create new app, but I've got chat GPT. If you scroll down here, there is the verification token that's shown here. I'm not scrolling down because again, don't want to expose that, but you can go and make sure you grab that verification token because that's the Slack token we need. Then we're going to configure our slash commands. So create a new command. Go chat GPT and now what is a URL? Well, I don't have a public URL yet. I'm running this locally, but we're going to push this out to the firmware cloud. So I'm going to do spin deploy. Well, my local environmental variables that I've done won't push out to the cloud. So how do I manage those? Well, I do key value equal and a key value and then I do something like Slack token equals whatever it is and then key value and open AI key equals whatever it is. In this instance, I've already pushed it out there because again, don't want to expose it. So I'm just going to run spin deploy and let's go see what happens. Give this another little bit to get going. All right, and we're up. So let's copy this URL into our URL here and let's say it's sort of sort of slapbox, which queries chat GPT and usage it is just question here. So slash GPT slash question saves. Cool. Now, before we skip to the next step, we should be able to actually see here in my KB explore. So this is the other component that I have running. You can see that I've got these two keys already populated in here. You can actually use this to go populate them if you wanted, but ideally in a deployment step, you'd be using that slash slash KB command. And then going to hit stop, open and grab here. Clear my screen again. Let's make sure I'm not going to go right slash channel. And that can try slash chat GPT and tell me a spin joke. I don't know if that counts as a spin joke, but we can see now that it's working end to end. So hopefully this has been enlightening for you to see how we can use spin to create very quickly an application that ties together several things that previously, if you're trying to do this in something like Lambda, it would require a bunch of different AWS services to provide that end-to-end experience where it actually work and then more code to actually handle all of this. And then we're able to deploy that out and have that hosted in the cloud with Fermion Cloud very easily, very simply, get it running. As I mentioned, Fermion Cloud isn't your only hosting destination. You could run, spin up somewhere and have this just running. We've also seen a lot of people do this with Kubernetes. So we have a Kubernetes shim that allows you to just deploy this to a workload in Kubernetes. And then if you have an existing Kubernetes cluster, existing technology, this becomes just a library instead of, say, a full new vendor. So hopefully this has been helpful for all of you. If you want to learn anything more here, I wanted to put this slide here so you can, let's go boom.  Yeah, follow us on Twitter. Go use our quick start if you haven't done it to get good practice with spin. You can see more of this project. If you want to get this slide here and you're watching the video, I don't know what happened there. Now, if you want to get that slide, you can just grab it from end to slide show here. You can grab this QR code and grab this slide here. And it'll take you to all these links so you don't have to try to type them out. If you have any questions, though, I'm in our Discord. Feel free to reach out. We'd love to chat and answer any questions. And here, people's feedback and experiences with spin and with Fermia Cloud. So thank you so much. I hope you found this all really useful.


Welcome to Toffy TV. It is the Everton News Daily powered by Snickers Protein who are helping fans get excited about football again during this transfer window. According to TRT Sport in Turkey, Everton is still keen on signing Lleol right back, Mehmet Sjellic. However, according to them, he wants to join AS Roma instead. The 23-year-old has been on Marcel Brander's radar for a while, Everton were heavily linked with a move for him in the summer. He's thought to be available for around £16 million, but according to them, his preference is Italy and Roma. Everton want £9 million for Bernard, that is according to reports today, amid interest from Dubai Base Club Al Nasser. The 28-year-old winger is out of contract, a good us in 18 months, but he's also been attracting interest from Roma, where his former manager Paolo Fonseca is the manager. There's a report today that says Fonseca has contacted Bernard directly to talk about the move for the Brazilian winger. They do have other options if a deal can be agreed with Everton. It does look as though Bernard may go out this January, obviously nearly went out on deadline day in the summer to Roma. He's only been involved in 10 games for Everton this season, and Everton got him for nothing so if he could get. I don't know whether Roma would be prepared to pay £9 million, but if they could get, you know, six, seven, eight million back for him, get him off the wage bill. I think that's probably something Everton would do for a player that isn't in our first team, so I wonder if that will happen. Everton have today agreed a new partnership with Clarity Sports being added to the club's portfolio. Clarity Sports becomes the club's new official team, business partner and match break partner. They've agreed a multi-year deal with Everton Football Club, and it's good to see the club still adding to those sponsorship partnerships, because obviously the more we get, the more money comes in, which helps the club overall with the FFP and everything else. Building of these partnerships and building these more companies into the agreements I think is just a positive step, because we've got to get as many in as we can and continue to bring money into the club any way you can now. We've seen a lot of top clubs have multi-partnerships with numerous firms, creating them real good revenue sources, and that's what Everton have got to get better at, so today they have done that with another one, Clarity Sports being the latest one. And finally, Anthony Gordon has been explaining that Carlo Mantialotti has demanded him to improve his defensive abilities. Gordon, who started the game against Rotherham and finished with an assist in the third round of the FA Cup, did admit he was disappointed with his display against Rotherham. He said he started brightly buff-faded. He said he was tired of suffering fatigue early on in the game and just couldn't quite get up to speed, because he simply hasn't played enough matches of late. He goes on to explain that you can do all the training, but it doesn't prepare you for the match fitness side of the game. But he did say he's got a work on getting back into his defensive shape. He says he presses quite well, but it's the other bit when he hasn't got the ball. You could hear quite clearly in that Rotherham game that Carlo Mantialotti was barking at him to get back into shape before he substituted him. So, you know, Anthony has got a work really hard at trying to improve that side of his game, as well as other aspects, otherwise he just won't be played. If the manager doesn't feel he can trust him, then he won't be played. So, interesting that he's come out and admitted that. So, we told you that we are doing a fanline in association with Snickers Protein, which is here to give you guys a chance to get your comments in about the transfer window during this January. So, over to Ned because a few of you have been in touch.  Anyone? A winger would be Leon Bailey. I'm probably like a broken record with this one. I would take him all day long. I think he's excellent. So, he would be my winger. A striker, did you say? Yeah. A striker. It's a little bit, it's more difficult to striker because obviously, we've got Dom who is very much on number nine. It's a hard thing to play through the middle. So, a striker is a tough one, but I think if you were going to get one, you'd want one that could do a couple of roles and not just be say a target man. So, if it could pick anyone who could play in those three roles, maybe someone like Raphael Lau at Milan, who's only young, low to promise, can play anywhere across the front three, he would be a good one. Because I think otherwise, if you go and get a striker who's a bit like Dominic Calvert-Lewin, it's just going to be like for like, isn't it? It's just going to be sat on the bench, not playing. So, he would be my striker. And I think Chellich, Max Arans I do like, but I don't know whether he'd be too expensive, but Chellich would be an interesting man, because he is very comfortable on the ball. Gary says, what is the minimum fee ever to accept for Lucas Dean? Minimum fee ever to accept for Lucas Dean. I don't think ever would want to sell Lucas Dean, because it seems as though he's just about to sign a five-year deal with the club on your five-year deal, but I probably, he is one of the best left-backs in the world. There's no question about that. I think ever to probably accept. 50, 60 million pound for him, but I don't know whether anyone would be prepared to pay that. And finally, Andrew asked the question, Kenny Alton Chellich in. Yeah, well, yeah, that would be, that would certainly be one that I'd be open to. John Joe Kenny's, I think he's only played four times for everything this season or appeared four or five times for us this season. Looks as though he could be on his way out, barely heavily interested of course. And I've just, I've just spoke about Chellich having me in the news daily there, the transfer links. I think he will come in, he's a lot better than John Joe Kenny's off the similar age. Travels better with the ball, a bit more creative. I think he's got a couple of goals and a couple of assists already this season for Leal. So yeah, that would be a nice deal in a roundabout way if he could do it. So thank you very much, Ned, for those fanline questions. If you want your comment or question read out and you want to be involved in the Snickers protein fanline. Send us your videos or comments to the hashtag fanline at Toffy TV using the hashtag fanline and we'll respond to them in our next video. Thank you very much that as if for the news daily. Make sure you subscribe, give the video a thumbs up and if you want more great videos join us over on Patreon. See you later.


In 1918, as World War I was coming to an end, women made a huge change and broke down the barriers and joined the United States Marine Corps. The Corps wasn't the only one making changes, as America jumped into the roaring 20s, an age of dramatic social and political change. Massive change was happening all around, and the Marine Corps was no exception. This is the Marine Corps through the decades. The 1920s, a time of jazz music, the Charleston, Foxtrot, the Prohibition, and a time you could get a new car for 260 bucks. The 20s were a major time in history for the new women movement. Women earned the right to vote when the 19th Amendment was passed. They began working in white-collar jobs, had increased availability for birth control. As both society and the Marines were undergoing massive change, many women enlisted in the Marine Corps Reserves in 1918, including Opha Mae Johnson, who was the first known woman to enlist. Prior to her enlistment, she worked as a civil service employee at the headquarters of the Marines, where she received an assignment to be a clerk in the office of a quarter master general. Sadly, their service was short-lived after World War I came to a close, because in July 15, 1919, the Marine Corps issued an order for women reservists and those on clerical duty to be moved to inactive status. Even though it was military office work and short-lived, Johnson broke down the barriers for generations of future Marines to come. Women's Suffering is a long story of hard work and hard work, crowned by victory.


In this presentation, we will continue on with the bank reconciliation for the first month of operations this time looking at the actual bank reconciliation report. Let's get started with Sage 50, Cloud Accounting. Here we are in our Get Great Guitars file. Last time we entered the bank reconciliation. This time we're going to consider the reports for it. So let's go to the reports dropdown. We're going to go then to the financial statements. Let's first open up the balance sheet report. Once again, we're going to be taking a look at the month of January dropdown range, month of January first period. Then we're going to say, okay, there's going to be our balance sheet. We're focusing in here on the checking account, which is at 9528642. We're reconciling that to the bank statement, which has an ending balance as of the same date, January 31st of 109917. There is a difference there. We take and tide everything that's on the bank statement onto our books. If it was on the bank statement, it wasn't on our books. We added it to our books. If it was on our books and not on the bank statement, those are the reconciling items. Now we're actually going to look at the report to show how those reconciling items can be used to create the bank reconciliation. So let's go back to our reports. That's going to be in the reconciling reports. So we're going to go on down to the account reconciliation reports down here. We want to pick up the account reconciliation. So we're going to pick that one up. It opens up just to like a random report. So you might want to then go to the last one that was open. So you might want to go to the cog up top and make sure that you are in the checking account. We want to be in the checking account. We want to be in the month of January. So the period being the end of January. Then we're going to say, okay, and this is going to be our report. This is the actual bank reconciliation. And oftentimes, many times when people do bank reconciliation, they do the process of reconciling. And they don't even look at the report. We don't have an idea of what is actually the report that's going to be used or why it's important on it. And that's fine. I mean, that's still good that there's people are doing the reconciliation. But you kind of want to know the reconciliation report because this is really the purpose of the bank reconciliation here. So notice what we have. We've got the cash receipts, the disbursements. The other that's going to give us our ending general ledger balance. That's going to be the 95286. So the 95286, that's what's on the balance sheet here. So that's what's on our balance sheet, the 95286. Then we have the comparison of that to the bank balance, which is the 109917, which is of course the amount that's on the bank statement. What we're trying to do is reconcile those two items because if we can do so, then we have a good verification. I want to know exactly what the difference is. And this is the actual report that like an auditor would want to verify the cash accounts. And again, when we verify the cash account, it's not just the cash account. If we verify cash, we really have a key component in all the processes that are the accounted processes generally. So then what's going to be the reconciling item? Well, there's an outstanding deposit of the 139875. So that is an amount that's on our books. That's not on the bank statement. Why? Because it hasn't cleared yet. And again, I'm not really as concerned with that particular item. I mean, if I want to check that, I could see if it cleared in February. If it did, then fine, it cleared in February. But really what we're looking for is to check all the rest of the numbers, right? I want to check that the balance is correct. And that individual item is just a reconciling item to help me check the entire cash balance really. And then the outstanding checks are going to be these checks. So once again, these are items that we didn't check off. They're the ones that were on our books, not on the bank statement because they haven't cleared. If we have concerns about any one of these items, we can and probably should, then go to the February bank statement to make sure they cleared in February. If they did, then it's just a timing difference. But these are still important numbers because they're going to tell us what the difference is as of this point in time.  And that's going to be what the difference is. Those are the differences between the book balance and the bank balance. So this is going to be the reconciliation process. Now next time, what we're going to do is the bank reconciliation for February. And you would think that if these items were written on our books in January, but they didn't clear the bank in January, that they would clear in February. So when we do February's bank reconciliation, we'll see that timing difference kind of washing out as these items, which are outstanding in January, are going to clear in February. So we have that kind of timing difference there, of course. Then we're going to have items that are written in the end of February that aren't going to clear in February, but are going to clear in March. So you could see how this timing difference kind of moves forward, right? You've got these outstanding here that are going to clear in February. So on the bank statement, they'll be in February, but in our books, they'll be in January. And then we're going to have stuff at the end of February that are in our books at the end of February, because we wrote them at the end of February, but they don't clear the bank until March. And that's what we'll see. And so we'll continue on with this process next time. It's going to be great. That's going to be it for now. Let's get out of here.


Mae gweithio, mae hi'n fawr am y Llaidwyr CBI i chi'n gwneud am gweithio, a'r fawr i chi'n gweithio i chi'n gweithio. Mae'r gweithio eich cyfnodau gyda'r Llyfrgell, ac mae'n debyg oedd yn cael ei gweithio i chi. Mae'n ei chweithio o'n cael ei fod yn cymrydau yn gwaith. Ac mae'n gallu bod yn cael ei gweithio o'r hollu cerdd. Mae'n cael ei gweithio i chi'n gweithio i chi'n gweithio i chi'n gweithio, mae'n cael eu bod yn cael eu gweithio. ac mae'n ddweud bod bod ni'n wedi cael ei ddweud... .. ac mae'n ddweud o'r ddiogel, oherwydd mae'n ddweud o'r CBI. A'n mynd fawr, mae'n ddweud yn gweithio'r ddweud. Rhaid i'n ddweud i'n ddod i'r Tata i'n gweithio'r ddweud o'r ffordd. Mae'r ddweud o'r cyffredig a'r mynd i'r rhai dda yn ymdau'u... ..eg i'ch ddweud i'n ddweud y ddweud o'r Tata'r grwp... llawer o'r cyfrifodau yn fawr ym Mhwylwyr, mae'r fawr hyn yn fawr yn ymdegolol, mae'r cyfrifodau fawr yn ymdegol, yn ddwylo'r lleol, ac yn ymdegol. A wneud i'w ddwylliant ac yn gwneud i'r cyfrifodau ac yn ymdegol fawr yn ymdegol. Let me turn to the subject matter. Last week I set out in Parliament then in a speech what I mean what my colleagues in government mean by industrial strategy, I want to add a little bit of flesh to the bones. I want to give my own language and put the arguments in my own way. The way I would start is by saying that when we talk about business we're actually talking about very large numbers of very different kinds of companies. And there's no one size fits all. That's my starting point. We've got about four million plus companies. There was many of them as sole traders, many of them extremely small. Their attitude to a phrase like industrial strategy would probably be what the hell has this got to do with me. I just want to get on, run my business, government please keep out of the way as little as tax as possible, a little regulation as possible, banks please be reasonable. Otherwise we're not terribly interested. And that's fine. I mean that's for most of British business that is a perfectly sensible and reasonable agenda. But there are other kinds of companies at the other end of the spectrum who are quite different in character. You know who as John explained it in his speech who have a long term perspective. I came out of an industry where I mean I think John cited 20 years as long term. Actually they've regarded 20 as reasonably short term. Developing a big new gas field as my company were. You know you're thinking 30, 40, half a century. That's the kind of time span of planning and of amortising your assets. Politicians when we think we're great you know when we think five years. I mean this is you know we've got this five year government. It's an innovation, but actually compared with many companies this is ridiculously short term. And so we have a lot of companies, many of them here, who need some clarity, some certainty, some consistency. And a large part of what I think industrial strategy is about is creating a framework within which that can happen. And who also look to government as potential partners who you know their business, their commercial, they want to get on and do their thing, but they recognise that government does important things affecting their business. It sets the regulation, does training and education and does procurement, all kind of things which affect the business and they'd rather have this in partnership rather than in conflict or random. So industrial strategy comes from an understanding that there are many companies of that kind, I say many of them in this hall, who want that kind of relationship. And I don't see these two different approaches as being in any way in contradiction. You know there are people in the media, I'd say this isn't a whinge about journalists, but you know who have been portraying this as some kind of great ideological conflict within the coalition or even within my own ministers, absolute nonsense. We fully understand that business is varied, they've got different needs and the concept of industrial strategy fits within that breadth of industry experience. And I thought I would sort of tackle head on some of the criticisms that are already being lobbed in our direction. You know a lot of people react in a kind of visceral way when they hear phrases like industrial strategy. And the first one I think both Ruff and John have partly addressed already is this idea, well you know why don't you just leave all this alone, leave it to competitive markets, it will all get sorted out. Why do we need this thing, an industrial strategy from governments, unnecessary? I think there are two answers to that. First of all we just look at what our competitors are doing and examples have been given. Most of the successful countries in the world, the Asian countries like Korea or countries like Germany, even the United States which ostensibly has a kind of free for all but actually in many areas extremely well organized and focused and has a very close relationship between federal government and business. They have industrial strategies, they may use different language but they have it and we frankly I think in the past have been a bit naive in Britain in assuming that this somehow doesn't apply for us and we can be completely purist and ignore what's going on in the rest of the world, we can't. The second reason is one that John used a phrase which was I think very helpful, you can either have an industrial strategy by design or by default because the government is doing lots of stuff anyway which affects you, like procurement, it can be done completely randomly, do nothing whatever to have any underlying purpose or support or it can be done in a more systematic way and that's what we're talking about. So that's why I don't accept the laissez faire approach. The second criticism related to that are people who say well didn't we have all this nonsense in the 1970s? All this stuff, a government putting money into business, supporting losers, I feel good to say we don't want to go back there again, you've read a lot of that over the last week. Well of course it's true that we've had bad experiences with industry strategy. I was there, I saw it, I was actually in my present department briefly at the end of the 1970s and I saw some of the bad experiences of government throwing money at losers and then throwing even more in order to try and stop them losing and it just gave industrial intervention of all kinds a bad name and then the pendulum swung to the other extreme and it's been pretty much stuck there ever since. Now what is the assurance that people have that we're not going to rediscover the bad habits of the 1970s? I think it's, you know, we do understand that a lot of the technologies of the future we've never heard of, we don't know what they are. We have to approach this with a certain humility. There will be change, there will be markets, we can't predict and we've got to learn that lesson from the past and let me just give a few concrete examples which I think will show the way we have to proceed. One of the sectors that we talk about in industrial strategy is having a competitive advantage is life sciences, British biological sciences, brilliant companies doing lots of things. But one of the first dirty jobs that I had to do with David Willits, the university's and science minister in the department was dealing with the closure of Pfizer in sandwich. We didn't stop it, we didn't rush in and say sorry this mustn't be allowed to happen and we're going to give you lots of money to stop closing. We accepted that that was the logic of the market and we had to help them to adjust. And similarly we've set out a sectoral approach but we do accept that in future people may be looking at the world in a very different way. I attended a meeting a couple of weeks ago, I think Neil Bentley from the CBI was there, we were looking at a long term view, a brainstorming about what industry would be looked like in 10, 20, 30 years time. And somebody made the point that one of the areas, sectors if you like, where Britain is brilliantly successful, probably a world beating country, is algorithms. Well there's no algorithm industry, doesn't exist. There's no algorithm association anywhere, I don't think you have a bit in the CBI for that. But you have these brilliant cryptographers in GCHQ. You have lots of people now in the most sophisticated forms of R&D in many of our IT companies, many of them foreign companies but based here. We've got those very clever people, some of whom did quite a bit of damage but none of us very clever people in investment banks in the city, they're quants. Very clever, mastered this particularly sophisticated form of mathematics. This is something we do very well, it's an asset and we're going to turn it to a dungeon. And let me just give a final example of how we've got to think flexibly and openly, not in sort of narrow prescribed ways. I attended a business dinner last week, a group of people who had some kind of background in the textile and garment industries and retailers who bought from overseas and what to my mind was a rather shocking proposition. They said, look, the British textile and clothing industry virtually disappeared. These days only 5% of all garments in British shops are made in Britain. But we think, business people, we can reinvent this industry. As business people, we're not asking you government to come in and subsidise it or protect it. We think there is a business proposition, logic in business has changed, proximity is now much more important, speed of delivery is much more important. We think we can set up not just garment making factories, but going back to spinning and weaving and dying and all those things that we used to have. And we'll do this as a business proposition, but we want you government to be involved. Not to give subsidies, but there are things which government can do to help because a lot of the skills in this old industry disappeared. Somebody's going to have to help us retrain them. So there is a role, it may be actually one of these sectors, it isn't listed here in five years time, will turn out to be textile and garments back to the 70s, but in a different way, not driven by government. So that's my answer to the second complaint, 1970s revisited. The third complaint is well, isn't this all about industry and manufacturing and the modern British economy is about lots of other things. Well actually I don't make any apology about the fact that one of the things we're doing now is emphasising how manufacturing is very important to this country. It's only 10% of GDP, but that's pretty meaningless now because of the overlap between manufacturing services. It's terribly important actually, far more important than that 10% because that's where we get half of our exports, so we get most of our productivity, it's where we get most of our R&D. But nonetheless, it is still a minority of our economy and services, and these traded services, knowledge-based services, are important too, cities important. And our industrial strategy has got to be broad enough and flexible enough to accommodate that new mix. Industry is important in the traditional sense manufacturing, it isn't just about manufacturing. So some of the criticisms, and I'm sure they will continue to roll in, but I think we've got good answers and I think we have thought this through and I know the CBI has thought this through because they will be hit from their critics in exactly the same way. So let me just say a little bit more about how we're going to take this on, and I think quite a lot's been said so I don't need to repeat it all. We do see the value of a sexual approach of saying there are certain things in this country that we do well, we call it comparative advantage or whatever, we do these things well and we want to reinforce them and we want to support them because they're internationally competitive activities and they merit a backing, not subsidane or protection in the old sense, but a partnership arrangement with the government. And what are these? Well, last Tuesday we set out in the department a framework, I'll put it more precisely than that, of some of the groups of activities that we ought to be looking at seriously if we're going to have a coherent industrial strategy. One was in the area of advanced manufacturing and there are some obvious candidates like aerospace and life sciences in the automotive sector, but I'm sure if there are any food and drink manufacturers here they will tell me that their process engineering is at least as advanced as in any other sector of the economy, so I don't want to use these words rigidly, so advanced manufacturing. And then we've got our traded services, which are based on knowledge, I quoted our algorithms a few minutes ago, but creative industries, something we do brilliantly well in this country, music, digital-based industries of various kind. And, you know, it isn't one of the items we've listed, but somebody came to me with this monitor, why isn't tourism there actually, it's one of our biggest exports, but certainly higher education, higher education is a massively important export industry, not just overseas students but campuses, the business relationships that are now developing between academics and people in the big emerging markets, an enormous source of growth and strength of the UK, particularly given the high class of our universities. And then thirdly, a group of activities that we call enabling industries, things which we may not be exporting directly, but which underpin the others. You know, you need to have, as John said, you need to have basic energy infrastructure, absolutely fundamental, basic digital technologies, construction products, they lie behind the other things. Now, how do we want to progress this? What I think we would find useful is to build on some of the rather good structures that we've already gotten, have come up from the bottom, that have come from you. The Aerospace Leadership Council is a good prototype, a good model. The Automobile Council is another one, and I spend a lot of time with them, and it's really a real success story, thinking about supply chains and how we develop the next high tech bits of the automotive sector that the commercial decisions will not produce themselves, like electric cars, for example. Or something I set up with Jeremy Hunt, which was a Creative Industries Council, getting those rather scattered industries around the table. Initially we weren't sure what we would talk about, but then it became clear. They have massive problems with skills and massive problems with bank credit, because of course they don't have any tangible assets to offer. So it turned out that this was actually a very productive area of conversation. So we want to make it very clear that as these groups are established or operate, they've got to be business led, absolutely fundamental. Business has to want them, otherwise we won't go there. Business has to lead them, and business has to develop them. It's got to be a business led process. But out of it, we would hope to see a whole series of strategy documents, if you like, not in a stylised way, but in a way that hopefully is helpful to you, and I think the aerospace strategy that we were discussing at Farnborough was a very good model of the kind of thing we'd like to see moving out from the other sectors. But again, I stress, I'm sorry to be boring and repetitive, but it's got to be led by you, it's not going to be led by us. Let me just say, finally, that the way I see this industrial strategy developing is doing a whole lot of things we already do better and more coherently. And I think John's been over this agenda, but let me just repeat it. First of all, in terms of technology, we have good institutions, the Technology Strategy Board, and he's an excellent example. But we want to try to pursue it in a more systematic way. One of the things we've done since we came in just over two years ago is set up this chain of catapults or innovation centres, and it is shamelessly based on learning from other countries. We've seen the way the Germans operate their Franhofer centres, and we want the British version of that, and we want a copy that learning from their experience and those centres are now being rolled out across the country, but they've got to be done in a sensible, coordinated way that makes sense in relation to our industrial strategy. We have now, based on the analysis of the foresight group, now that's putting a lot of money into synthetic biology and sophisticated computing, for example. But there is a strategy now behind it. There's a sense of priorities and a limited amount of money can be sensibly allocated. The second area where we have to pursue things in a more systematic way is in relation to skills. I hear what you say about the shortage of engineers. It is absolutely dire. It is a major disadvantage that we suffer from. But we can't turn this round overnight. As you know, you can't train an engineer in a year or two years, that's absurd. It's working amongst other things with the next generation. One of the real bits of encouragement that I've derived from the last few months is to see the impact of our higher education financing changes, which have been very painful, very traumatic politically, on the next intake for the next academic year. The subject area that has held up better than any other is engineering. Teenagers have got it. They do understand that there is an enormous future in engineering. They are applying now. The mentality is changing in a positive way. We will try to get behind that. That's why we funded 500 masters in aeronautic engineering, for example. We will try to do more of that kind of thing. One of the things again that I'm proud of having done since I came into this job of having injected real energy into apprenticeships. We've massively increased quantity, but, of course, you will say it's also about quality and business access. All those things are true. What we are doing, and I would keep a careful eye on it, is introducing pilots, pilot scheme for business-led apprenticeships. In other words, the money will not be given to the trainers and the colleges to produce what they want to produce. You take it or leave it. The money has not been directly from the channel to business to purchase the skills you want to need through the apprenticeship programme. The emphasis is being shifted completely, and I think you'll find once this pilot is built on a much, much more business-friendly and targeted approach to apprenticeship training, much more appropriate. Then procurement. We put our hands up in government. It's been horribly unstrategic in the past. That's partly for good reason. Government's trying to get value for money. We have all these European rules we have to follow. It hasn't been very helpful to the British industry very often. Purchasing has gone off into the wrong place for the wrong reasons. We need to be more long-term. We need to be more strategic. I know, because I work with my colleagues on this, that gradually the culture in Whitehall is changing. There are areas now where some really interesting developments are taking place. Just take one example, tunneling as a consequence of all the big new investment that's going into railways. The biggest railway revolution for decades is taking place right now. There will be a big demand for people who understand tunneling technology and all the skills around it. We've now developed a pipeline working with the industry to help them ensure that there isn't a bottleneck when these tunnels are actually drilled. We're trying to do similar things with all the big infrastructure projects that are now, albeit slowly, grinding through the system. I hope that's given you a flavour of how I see industrial strategy and also for my passion for it. I really believe in this stuff. It isn't just trotting out the cliches. I really believe that this is something that's been missing and I think where we can make a really big difference. Thank you for your attention and I look forward to working further with the CBI on all this. Thank you.


Good morning from Port Angeles, Washington. Today's gonna be a long day of driving, so book your seatbelts. Well, first stop of the day, the gas station. Woo, man, at $2.99 a gallon times 55, that gets expensive. I only put in 25 bucks into the tank so I can get to a bigger town, save some money. It's a free coffee situation for the rest stop. It's cheap, aren't I? By the way, if you pull into the truck part and you see a motorhome taking up half the space, park in the same spot, park behind it just to be nice to the truckers because those guys are way longer and it's kind of like putting a motorcycle in a car spot. It just, it's not very nice. Whoa, would you look at that. A glorious little cup of coffee. I had two cookies. Also, that's about all the coffee I can handle. Thumbs up to the rest stop. Thank you guys. Let's have a brief talk about poop and day of the adventure bus. This is a poop dump or RV hookups. This is at a rest stop. And obviously, the poop doesn't disappear when it goes into the trunk over there, the dump trunk. So I gotta take that thing apart, dump it down the little pit there, rinse it off with water, and then throw it back in, that's it. So I'm not gonna show you the nasty stuff. You guys can figure it out.


if you guys want to be with a chance of winning this resurrection is to emblem simply drop a like on the video and leave a comment what's going on guys today i am back with another destiny video okay so what i want to talk about today is something that dawned upon me last night after creating my first video covering the age of triumph teaser we got last night if you missed that video you will find it linked in the video description okay so today i want to talk about the two types of raid primary weapons coming from the recreated raids the vault of glass and the crawler's end raid now bear with me here the reason i say two types is because yesterday during the teaser we saw a new kind of fatebringer and the fatebringer we saw looked to have a different colour scheme than the one we already know now thinking about it i thought it could be just a new version of the fatebringer but then it dawned upon me now we also saw the standard coloured fatebringer that ended up trailer yesterday also seeing that same standard version of fatebringer in other trailers for the age of triumph so what is this new golden silver fatebringer now i've made a concept of how i believe it will look in your inventory which is on screen now now it's possible that this fatebringer is one of a few things here is what i think it could indeed be with age of triumph will we get new ornaments that can be applied to legendary raid weapons that give them this distinct look this would be the first we see this instance where ornaments can be applied to legendary weapons but hey why not start with vault of glass or raid weapons i mean it makes sense i think they may have said something about this in the past but do not quote me on that now it could be an exotic version of the fatebringer which i've seen many people speculate about the exotic version having that arc bell while the standard version which drops does not the standard one which we see in the end of this age of triumph trailer this in a way kind of makes sense as it would limit our loadout while using the exotic version of the fatebringer or any other raid weapon but to be honest i just cannot see that happening now another thing it could be is a challenge mode reward challenge mode weapon rewards from the vault of glass and the crosses and raid drop with elemental burns while if they drop for you when the raiding quest is not the featured raid in the weekly ritual then it will not have that elemental burn it in my opinion makes more sense as it limits the amount of elemental primary burn weapons that actually drop and in my opinion bungee and the reason they stopped elemental primers in year two and three in bulk from being obtainable is because they honestly know the effects they have on the game from a pve standpoint combatting them in any way so they can limit their usage is how i believe bungee go about things and will go about things with the age of triumph now what people might be thinking is well when it comes to crawler's end and vault of glass for the weekly ritual it's fine having elemental primers drop as rewards but what happens when the kings fall or raffle the machine raids as they never actually offered elemental primers to start with which is true but yesterday we saw what looked to be the anguish of drifting shooting arc elemental bullets seen on screen now by the blue coming from the weapon now like i said in my video yesterday this could be a million miles off but it does kind of make more sense now when you think about it in reference to elemental primers dropping from challenge mode but hey this is just my opinion but let me know what you think about this down below in that comment section new ornament challenge mode reward or a new exotic what do you think now last thing i want to cover in this video before we end um is something i missed from the trailer yesterday but it was pointed out to me by a palamine we got a brief glimpse of the new suit regime exotic ornament seen on screen now at the bottom of the screenshot and that is it guys that is it for another video hope you enjoyed it subscribe if you're new around here turn on the notifications if you never want to miss a video and i'll catch you guys on that next one always in the wrong