Thank you for coming by way of obligatory introduction. My name's James, I'm a web developer Ieithio yn gweld mai'r cyd-dweithio Ryby a'r gyfnod gyda gyda gyda gyda gyda Gwydiannau ac yn ymweld yn y bwysig o ymgyrchau o safonau. Mae'r cyd-dweithio erioed wedi'u gweld yn ymweld, ac yn ymweld yn ymweld ymweld yn ymweld. Mae'r ymweld sy'n gweithio ar y cyd-dweithio ar ymweld, yw Fe. Felly, ydych chi'n meddwl, mae'r cyd-dweithio ar y cyd-dweithio, mae'r cyd-dweithio ar y cyd-dweithio ar y cyd-dweithio? More than two people. That's amazing. For those of you who haven't used it, probably explain what it is, it's a simple PubSub tool for the web. It lets you write programs that run in the web browser that can send messages between each other, between different users that are connected to your app that can send messages to each other. Your server can also send messages out to clients so you can use it as a push server. It's based on the bio messaging protocol, which was a protocol that was introduced around 2006, I think. It introduced a PubSub messaging model that was designed around the constraints of what browsers could do at the time. We didn't have web sockets. Browsers have a limited number of connections per domain that you can open. If you have several things that you want to be notified from the server about, you can't open a connection for all of them because you'll just flood the available connections. Most browsers are the limits too, so it's really limited. There's a protocol designed within those constraints to let you do messaging in a same way that made use of those resources. Faye provides a messaging server and a client based on that protocol. It has implementations on Node.js and in Ruby and they can interoperate with each other. They basically have the same protocol and they can interoperate with projects like Comet D and other projects that use this protocol. One thing I get asked pretty frequently about this project is why do we need it? We've got web sockets almost everywhere now if we ignore Internet Explorer. But Bio does a bunch of nice stuff for you. It has a routing scheme built into it, so you don't have to deal with keeping track of which sockets belong to which clients or users. You can use its channel system to just publish stuff and it routes all the messages to the right places for you. It deals with automatic reconnection, so if your socket drops out it will reconnect for you. It deals with browsers that don't support web sockets, so it falls back to long polling on Firefox 3.6, and IE are still the ones that don't have web sockets, so it falls back to long polling for those. That's a technique where the client opens a request and then the server doesn't respond to that request until it has new data. As soon as the client gets a response it immediately reopens another request to wait for more data, so it looks essentially like you've got a persistent connection. Phase design to be really, really simple to use. This is how you start a server. It's a rack application. You just instantiate it, tell it what path on the server you want it to mount to. You can also use it as middleware, so if you install it in front of a Sinatra app it will catch, in this example it will catch all requests to the slash buy you path and treat all of those as things that it should handle, it will delegate anything else down the stack. The client in the browser, you just make a client, you tell it what URL the host lives on, and you can then just tell it to subscribe to a channel and give it a callback function that will accept messages that are sent to that channel. The channel system works by all channels look like path names, essentially, and when you publish a message you never send it directly to an individual client. You publish to a channel and then the server figures out which clients are subscribed to that channel and sends the messages onto them. The routing system also supports wildcards, so you can say anything below a certain path, like catch all paths underneath that. You can do a bit of pattern matching with that, it's quite powerful. When you publish stuff, you can publish anything that can be serialized to JSON, so any JavaScript object or an array or string or numbers, and that will get deserialized on the other end, so you don't have to pause it when it comes back into your callback function. A Ruby client has exactly the same API, you just have to wrap what you're doing in Event Machine or have Event Machine running somewhere. It's the same kind of thing. You subscribe to a channel and you give it a block, and the block gets run with the incoming message whenever the client receives something, and the publish API works out of the same way. It's interoperates between Ruby and JavaScript data types, so if you publish a Ruby hash to a channel, it will turn that into JSON and then the JSON will get deserialized in the browser and become a JavaScript object. So that's quite nice. That is basically the whole FAY API. It's not something that could spend a whole talk talking about. What I really want to talk about is what I've learnt from building it, which is mostly centered around event driven programming. That's been kind of a hot topic the last year. We've had Node.js coming out, people having all sorts of fights around our thread servers better than evented servers, or the other way around. That's not really what I want to talk about. I'm not going to tell you how to benchmark your network, IO, throughput, and be all web scale. I want to talk about using events just as a design pattern, as a way to model what you're doing in such a way that it keeps your code modular and helps you decouple your components, and also helps you handle asynchronous IO. What do we mean by event driven programming? Well, it turns out that you're already doing it. You just might not have realised it. When you write controller methods in Rails, you're saying to the Rails environment, this is what I want to do when a certain request is made. Probably no part of your application ever calls one of your controller methods directly. You're just saying to Rails, hey, here's this code. Tell me when a certain request happens, and then I'll deal with it. When you have a web app running, you're not sitting there waiting for a blog post create request, blocking on that and ignoring everything else. A web app reacts to whatever comes in. Controllers basically declare event handlers for handling requests. It turns out that event driven programming also relates quite closely to some of the kind of fundamental concepts of object oriented programming.  All these little bits of advice kind of stem from Alan Kay's original vision of what OOP should be. This is a quote. This was in a talk yesterday, so I apologise to people who've already heard it. What he said was, I thought of objects being like biological cells, only able to communicate with messages. OOP to me means only messaging, local retention and protection and hiding of state process. What he means by that is that objects aren't allowed to ask other objects about their state. They can only send messages out like the way biological cells communicate. They send little chemical signals out into their environment, and they pick up signals that other cells are emitting, but they can never say to an individual other cell, can you tell me something? You can only publish stuff and listen to what's going on around you. This is kind of the way that we communicate in a lot of situations electronically. When you send email, you send a Twitter message to someone, you can ask someone a question, but you don't sit around all often waiting for an answer. You've got stuff to do, YouTube isn't going to watch itself. It's not like having a phone conversation where you ask someone a question, and then you sit there and you're entirely focused on that. You can ask people questions, but you can do that concurrently with doing lots of other work. That's kind of how we saw objects communicating. Syntactically, that ends up not being very convenient a lot of the time, which is why we have things like the return statement. The return statement is really just a shorthand for the called object sending a message straight back to the caller to say, oh, you sent me a message, I'm going to immediately send you something back and you don't have to wait. But let's imagine for a second that we didn't have the return statement, which is really what happens as soon as you start doing asynchronous programming, you can't use return values because return values are blocking things. You won't get a return value immediately. You're going to have to wait until some future time when you actually know what the result of the computation was. So if we get rid of the return statement, the most convenient thing to do usually in Ruby is use blocks. So your kind of traditional blocking API that we're used to is that you call something, you can say, for example, if we're using htd party, we can say response equals htd party dot post where the URL and a query, and we're assuming that post is going to immediately return us a value and our code is going to block while that request is made and we get something back. If we go to a non-blocking system, for example, the event machine, the HTTP library, you tell it to make a post request, but then you don't sit around waiting for the response of that. What you do is you give it a callback and you say, I'm going to go and do some other work, but when you know what the response was, call me back and then I can run stuff that depends on it. So in this example, the puts at the end that says this happens first, that will happen before what happens in the block because once you've set up your callback, you can carry on doing work until you go response back. This is a really simple transformation going from blocking return value-based code to using callbacks, this thing that we call continuation passing style, as in you're passing in the work that you want to do afterwards to the thing that you're calling. But people start doing this and they find that they start making everything asynchronous and they get all these nested callbacks and they complain and they say it's a horrible pattern, but it doesn't have to be that way and that's something that I hope to get across in this talk. So it's all very nice, a lot of kind of theory, but I want to use Faye as an example for how this stuff actually works in practice and what I've learnt by building it. So the in terms of Faye looks something like this, there's the racketata, which is the thing that you instantiate when to start your server, that just deals with all the talking to the outside world and doing HTTP stuff. This figures out, because there's several different request types that Faye supports, it could be a get or a post, it could be a web socket, so it deals with sorting all that out, figuring out how to get a message out of a request, parses the JSON that it gets so that you get a hash and then once it's done all that kind of yucky business it just sends the hash down into this loop of objects that we have in the core.  I'm going to go through some very simplified versions of the code for these components and the thing that I want to get across is the components all push, all they do is forward data to another object. We don't use the return statement to move data around, we keep pushing it through the system instead of pulling it out of objects that we're calling. So the RAC adapter just looks at this, it wraps a server object which is the thing that actually speaks the messaging protocol using Ruby hashes to parse back and forth. It just has a method to start it running, listening on a port to accept connections. The server itself has two collections of things inside it, it has a set of channels which are the things that you publish messages to and that you subscribe to and it has a set of connections and a connection just represents a connected client and it's the thing that can sit there collecting messages until the client asks for them and they can be sent back. So inside the RAC adapter the way that when you accept a request this is the example, this is the way that handles post requests that has a bunch of other things for different types of requests but it just reads the request body and parses it with JSON and then it tells the server to process the message but it doesn't block wedding for response because part of this system is that we're going to have these very very long running connections that wait for new messages to show up. So we don't want to block waiting for that to complete. There are no apologies about that. The final bit of this method is just some kind of boilerplate. The thin web server has this protocol where you can tell it that what you're doing is asynchronous because most RAC apps expect your app to return a value immediately. Thin lets you not do that, it lets you say that I'll call you back when I have a response and it will give you this minus one response thing and it knows what to do with that. So when the server has finished processing the message it runs this callback, it gives us the reply message to the message that we sent it and we can just serialize that with JSON and send it back. That's that response.succeed is saying to the response object that I made I'm done now, you can actually send something back to the client. So the server as I mentioned just has a pool of channels that show you for routing purposes but that's not really important and it has a set of connections that are indexed by client ID. The client ID is something that the protocol handles for you so you don't have to deal with going that connection means this client and this one means this other one that's all completely hidden. So the messages that come into the server look something like this. They all have a message ID which is just keeping track of things internally. Every message has a channel that it has been sent to. Every message says what client sent it that's the client ID and every message has a data field which is the data that you published to that channel. So when you say publish slash foo with a hash slash foo is the channel and the hash becomes the data for that message. Now there are some channels that are special. Faye uses the channel system itself to do a lot of its internal management of things. So two special channels that exist in their system are called MetaConnect and Metasubscribe and what MetaConnect does is that tells the Faye server this is a long running request that's designed to wait for messages. I'm not publishing something to MetaConnect that's just telling the server and similarly Metasubscribe is the way that a client tells the server that it wants to subscribe to a particular channel. So this is what the server does it looks at what channel the message was sent to and does something appropriate in each case. Notice how we're passing in a callback. None of these methods return anything. We just the callback was this the line where we say do reply. That callback gets passed down the system until something succeeds and it can run the callback for you. But if we keep passing that down it's basically giving the methods that you're calling a place that they can send data back to so that the server can carry on doing its work. So that's just a simple routing system. So when we accept a connection the message has a client ID we just go and get the connection object to the client ID and all we do is we give it the callback that was passed into the server because we don't know how long this is going to take this might wait for messages for minutes, hours, I don't know. You just say to the connection here's this callback when you've got some messages run it and then the response will get sent out. So to add a subscription again we look at the client ID we look at what channel they want to subscribe to and we pick that channel out of our pool that we have and we tell the connection for that client to subscribe to that channel and the connection knows how to do that. But in this case we aren't waiting on anything, we're not making a long running request so we can immediately run the callback and send a response out so that's all we're doing there. That will take that hash and pass it to the callback that the server gave and that will get turned into Jason out. And similarly to distribute a message, this is when you use the publish method it will come in here, it will go okay what channel did you publish the message to? It will find all the channels that match that because there's a wildcard system so there's some pattern matching you find all the channels and you just push the message onto the channel, that's all the work that you need to do at this stage. And again we're not waiting on anything so we can run the callback immediately. So what does the channel do with this message? All the channel does is it doesn't care what other objects in the system actually want to know about that message at this point. It can just announce using its own publish method it can announce I've received this message it doesn't know about any of the other domain objects in this server so it's decoupled from them, it can just make announcements and other things can listen to that if they need to do work based on it. And that's exactly what the connection does when you tell the connection to subscribe to a channel you first check that it's not already subscribed to that channel so you don't get duplicate messages and you just add a listener to that channel so this says when the channel receives a message run this callback so as soon as any channel that the connection is subscribed to gets a message it will go okay the connection has succeeded that means I can the request that we had open wait for messages can succeed and we can send a response back and the client gets the messages that it wanted and as soon as we've succeeded we put the connection back in the deferred state meaning that it's going to sit there and wait for more messages to come in so I've glossed over a few bits in this in the code that I just showed you this callback method, add listener publish, succeed, I didn't explain what any of those were doing what those are incredibly common patterns in event driven programming that you can extract into mixins and some of these already exist in the Ruby standard library and in event machine and in other places they're so commonly used so what are those missing pieces the first one is publisher which implements the add listener and the publish method and you use this to make an object that just wants to make announcements so the most common example at least in my experience of doing this is when you're doing GUI programming and you want to say whenever this link gets clicked run this callback, it's that kind of thing you just want other objects to get notifications when something interesting happens so you can listen to different types of events and run callbacks based on that and that's really easy to implement you just say what event type you want to subscribe to and give it a block and the nice thing about Ruby blocks is that you don't have to yield to them immediately they're just proc objects and you can store them in a list and use them later so that's what we do here we make a list for storing the callbacks for that event type and just put the block in it and then when we want to publish that event we first check that there is actually a list of callbacks for that event and then we just run each of them it's really simple the other piece of the jigsaw is deferrable and that implements the callback, succeed and defer methods and what deferrable represents is it's a placeholder for a value that we don't know yet so in our HTTP example earlier our event machine HTTP request object was a deferrable because it represents the fact that we don't know what the response is yet so we can add callbacks to it and get notified when there is a response but we can also pass this deferrable object round as a piece of data so that any other objects that need to know what its eventual value is can add callbacks to it and in this system any callbacks you add to it should only get run once they shouldn't get notified every time some event happens they're just waiting on one thing to complete so the way this works is like this you have a defer method that puts it in the deferred state and as soon as you tell this thing that it's succeeded it should run all the callbacks that we're waiting for that value so again it just loops over the callbacks runs them and then it forgets about them because they don't need knowing again so we set callbacks to an empty list and the callback method is the thing that you use to attach callbacks to the object so that other objects in your system can get a callback method so when you add a callback the first thing you do is you go do we already know what value this thing is wrapping so if the status is success we can immediately run the block because we know what value we can yield to it otherwise we just put the block in a list and save it for later years so the thing that I want to illustrate with this is that I we've got this slide we've got this cycle of data flow the server accepts messages it gives the messages to channels the channels give the messages to connections and then the connections give them back to the server as responses to other clients and so data is going around this loop but if someone showed you an architectural plan for some software that looked like that you'd get a bit wary we've got a cyclic dependency it'd be hard to tease this apart it'd be hard to unit test and if it got beyond the kind of hello world examples that I've been showing you it just gets nasty pretty quick but the nice thing about having an event system is that the for example I showed you the channel object the channel object doesn't actually know about the connection object all it does is it publishes a message the connection object says to the client can you tell me when something happens and it's the same with the relationship between the connection and the server the connection doesn't know what the server API is the server gives callbacks to the connection objects so using this we can actually reverse the direction of our dependencies so that we get a more layered system so in this system like channel is kind of the base thing it doesn't know about any other types of things in the system the connection has a bit more knowledge it knows how clients work and it knows what events it publishes and server knows about both those things so it knows how to send messages to channels and it knows how to add callbacks to connections but the point is that we've used these events as glue to connect objects that don't know that much about each other and this turns out to be a really really great way of keeping systems like this maintainable and it shows up especially if you do a lot of GUI programming you may have a bunch of components if you're doing like front end for a web app you can have a bunch of components on a page that have to react in various ways to how your data model changes or they might have to be synchronised in various ways but you don't want to tie them together if you think about what events an object publishes don't just think about its API think about how it can notify other things about what it's doing that's almost in some situations that's as important if not more important than what its API is because it gives you these hooks to glue stuff together so event driven programming helps us keep components decoupled and layered and modular it expresses in the code why and when things are happening so we don't just have this do this and then do this and then do this sequence it doesn't really explain why those things are happening in that order if we have events that actually expresses oh this is happening because this other thing happened we can see how the triggers propagate and it helps us deal with non-blocking IO because it gives us a way to add callbacks of things without blocking waiting for responses we're doing for time okay cool so testing this wouldn't be a Ruby conference if nobody mentioned testing thing about testing asynchronous systems though is that it's kind of yucky this is really like a hello world integration test and a lot of it there's some dots dotted around there where I've just left things out because they take up too much space it won't even wait for the test to complete properly there's a ton of stuff missing all this does is it checks that one client can send a message to another client through a channel but to do that there's all this like I've got to start a server and wait for it to complete and then I've got to make subscriptions and wait for them to complete but there's two of them so they rely on each other and then it's horrible and yeah this code wouldn't even work so don't try but and this is a hello world case so it gets really ugly really quickly so it's also not very valuable to have tests like this because they're just as complex as your code you haven't eliminated any risk you haven't proved that your system works properly you've just moved the risk up to your tests that you can't read and nobody knows what they're doing so when I'm thinking about how to design, how to factor things this quote ends up popping into my head quite a lot this is this is a few years ago but it's talking about designing some code that had to like go and count how many employees in a company had a boss that had had some kind of relationship to some other people in the company and he was he was talking about okay well you know you're going to need some loops and some if statements and whatever and he kind of writes down a kind of naive implementation then he goes this is patently wrong there's nothing inherently nested about what we're trying to do and he proposes something that he calls a telephone test which is that if you called up your boss or one of your co-workers and you just described what this code was supposed to do you wouldn't say to them oh we need an if statement and then we need two nested loops you'd say no we want to count all the employees and the company that make more than X amount per year so we would rather have tests that tell us a story and that are readable so what the test I showed you a second ago is actually trying to do is this it goes given that there's a server running and the client Alice has no subscriptions and the client Bob is subscribed to slash foo when Alice publishes a message to foo then Bob should receive the message that's what we actually want to happen and the the reason why this is readable and is not necessarily because it's cucumber and it's plain text the killer feature of cucumber that makes everything readable is this there's just a straight line down the left hand side of the page it doesn't let you write loops or nest anything it makes you tell it kind of makes you do a telephone test by telling a linear story that you can understand really easily so that's the thing that we actually care about so what if we tried to refactor our test so it looked like this again this is essentially the same as the cucumber test that I just showed you just written in Ruby makes a server, makes some clients with some subscriptions publishes a message and then checks what messages each client got it isn't obvious how we're going to do that like in the node community there's a ton of asynchronous testing frameworks it's like the hello world app if you get into node.js it's like writing a blog when rails came out everyone's doing it but they're not actually that much help they're okay if you're doing just I'll make this Ajax call and then check the response but if you're doing something like this where kind of there's all this setup and all of it is asynchronous you still end up with a mess all that these systems do is they just make the test runner asynchronous they don't make your code any cleaner so we need a way to deal with this so one suggestion that will probably come up if you're asking a Rubyist to do this is they'll tell you to use fibers or use threads or just wrap some kind of a blocking API around this thing that uses callbacks but I don't really want to do that I don't want to make everything blocking I just want it to look linear I still want it to be asynchronous I'd rather the caller was left to decide whether it cared that all the work had been completed or not I don't want every little bit of this story to block until it was done so the way that I do that is that I use callbacks to glue the things together we've got all these these essentially kind of what would be step definitions in Cucumber these little methods that implement bits of the story that set up servers, that set up clients that publish things and they'll take arguments but there's no callbacks in here that's what we're trying to eliminate but what if we implemented all those story methods but made all of them take a callback and they could use that callback to say when they were done doing their work so the for running these tests I'm going to have this thing called an async scenario and that is the that models a use case of the fe messaging system so what that has is it has a set of clients and a set of inboxes to track messages that they've got and then it implements all the story methods also making them take callbacks so the server method for example does all the work, it starts a server up on the port that you gave it and then it uses the rack API to get notified about when the server is actually running and as soon as that's the case you can call your resume block, I've called it resume here because that's the job that it's doing, it's telling the test runner that my bit of work is done and you can carry on going setting up a client works kind of the same way, remember we set up a client with a name and a list of subscriptions so that's the arguments that we have and again we have our callback and that just, it makes a client goes over the channels, subscribes the client to those channels and then we use a timeout, we figure Fade doesn't have an API for waiting for a subscription to be activated yet but people have asked for it so I might add it, but all we're going to do here is wait a certain amount of time like a reasonable amount of time for the requests to go through and everything to get set up so we just use Event Machine to add a timeout and when that expires we can call resume and we can carry on running our test and the other methods are implemented in a similar way, the pattern is you, okay so yeah, you implement your methods like you would normally but you give them an extra callback argument that they can use to notify the rest of the world that they're done working and you just need something to tie this together so when I'm setting up my tests for Fade, I just have some stuff that I add to test unit that lets me catch all those those story methods that I want to run and gives them to the scenario to kind of get glued together so my tests in my setup I make a new one of these scenarios and I have a list of commands that I want to run and I just make sure that the Event Machine reactor is running in its own thread and then in teardown you need to make the test because test unit isn't asynchronous you need to make it block until your scenario is finished running so in our example we're just going to sleep until Event Machine stops running you could just use a flag for that but in our case it makes sense because we're going to stop the server and that will stop Event Machine so we use that to check whether the test is finished and the interesting bit is the bit in the middle, the method missing we can just use method missing to catch all the story methods that you're calling and just put them in a queue so we don't run them sequentially we just store them and let the callbacks kind of glue everything together so when you call when method missing gets run it just puts everything it received and we want the first thing in the story to kind of set the test running because if we just put this thing in a queue it wouldn't do anything so we go and run the next command unless the test has already started so what does this do? it just shifts the next command that it wants to run off the queue if there's no command that means that we're done doing all the work that we want to do and we can stop event machine and that will stop the tear down method blocking and it will go and run the next test otherwise we take the command and we send it to our async scenario object and in addition to everything that we called it with we tack on this callback and all the callback does is it calls run next command it's just this tiny bit of glue that takes all this work you want it to do and sequences it even though it's all asynchronous and obviously if you're doing test you can catch exceptions exceptions are kind of don't work that well with asynchronous stuff because as soon as you defer some work for later you've gone into a different call stack and weird things happen but you can catch exceptions and there's APIs in test unit for adding that so in test unit you call add error if you're using aspect I think you can call example.exception and that will show up in the error output if your test fails so that is everything that I want to tell you about Faye there's a demo that I want I don't know if this will be visible we had some tech problems my computer won't talk to the projector but I just want to show you the project that's the reason that I wrote Faye in the first place which is something called terminus how many people have used Cappibara? Cappibara most people terminus is a Cappibara driver that's designed to let you run tests on remote machines so you can run tests on your phone or your iPad or any machine that can see yours over a network you can script it using Ruby through Cappibara so I was going to do this by asking someone with an iPad to connect to this but it wasn't going to happen I'm afraid but hopefully I'll be able to show you just what's involved just on this machine I have a terminus server running it's in here if I open a web browser if I open a web browser we hope everyone's going to be able to see this I'm sorry it's not on the projector what terminus does is is that it runs a server and then you can go and open a browser and connect to that server and what that means is that that browser is then available to be taken over by any Cappibara scripts that you run so if I go into the terminus project and run our spec this is going to run all the Cappibara specs against terminus using the browser that I've just captured so I start the test running it's going to go and do some stuff and then it should start manipulating the browser and there you go it's visiting pages it's checking links that are there I won't make you sit for all the tests because it will take about 20 minutes it's very slow but this is just working by it sends the browser messages the browser runs some javascript to figure out what you want it to do and then it sends a message back and it's all using asynchronous communication if someone has an iPad and they want a demo I could probably show you afterwards but I'm not going to have fat around with that with already numerous technical problems we've had so yeah that's everything that I had to tell you thank you very much for listening


Welcome to the Rich Stevie Live podcast. I'm your host Richard D'Souza and we have a very special program today. We are waiting for Fed Chairman Powell to speak as it has already been announced that the Fed has left the rates unchanged. Thank you Fed. Thank you for not raising the rates yet again. We've been raising rates non-stop for well over a year. Thank you for pausing again going into Christmas and Thanksgiving in America. So this is good news. We're going to talk about what's going on in the markets. We're going to give you all the updates. We're waiting for Powell to speak. We're going to listen to Powell speak. We're going to give you all the breaking news as it happens. And we're going to go over all the hot stocks and cryptos of the day right here, exclusively with your boy. Your host of the most, your boy Richard from Rich TV Live. I hope you're having a great day. Happy hump day for all of you guys. Hope you're having a great day as we are waiting for Powell to speak and give his opinion on what's happening with the Fed in America, why they're not raising rates. And hopefully we can start seeing rates get cut next year and start going back down. That's what we're hoping for. I'm sure that's what everyone's waiting for because higher rates means you got to pay more for your car loans, student loans, mortgage credit cards, lines of credit, any debt that you have. You're paying more for your interest when the rates are going higher. So this is not good for people in period in general. And that's why it's very, very big news. And that's why we're waiting for Powell to speak on this today so we can hear exactly from the chair. All right, let's do some stuff here. I'm just getting organized here. We are streaming on multiple devices. First and foremost, I really appreciate it. If you smash the like button wherever you're watching, follow us, subscribe for future updates, future live videos, future edited videos, CO interviews, breaking news, trending topics in the world of sports news. We're covering the war every day 24 hours a day, seven days a week giving you content. We just put out a top 10 Bitcoin related stocks video for November 2023. So go check that out as well, exclusively on Rich TV Live. All right. So the Fed is still determining the extent of additional policy firming. I'm just waiting for Powell to speak. And he is literally on stage right now. And we're just waiting for him and his words so we can see if he's going to be hawkish. He's going to be dubbish. Some believe that this is the end and we're not going to see any more rate hikes. Others believe that there will be at least one more next year. So we will be watching very, very closely and giving you all the news and all the updates live as it happens, like we always do. We're always updating on what's going on in the world of stocks. We're always updating you on what's going on in the world of Bitcoin. We're always updating you on what's going on in the world, the war, in the world of sports. You name it. We cover it and we trade it. So big, big, big news. The Fed is leaving rates unchanged for the second meeting in a row. All right. Here we go. Chair Powell is now speaking. Still focusing on getting that inflation down to 2%. That's what Powell is saying right off the bat. All right. Let's take a look at the charts and we'll look at MarketWatch to take a look at what the market is doing. So the market is in the green responding to this news. The market is in the green. Gold is red. Oil is red and the VIX is red. The Dow Jones is green. S&P 500 is green and the NASDAQ is green. So the market is responding well to this news. Powell says we remain focused on steady employment and price stability. So here's one of the hottest stocks of the day. It's the hottest stock of the day. It's CLLS. Look at that huge candle on CLLS. Huge day for them up 190%. Another stock that's having a good day today is Patti, P-A-T-I. Huge candle over there. They're up 102% on the day. P-A-T-I, Patti. Now what a lot of people are saying is the next shoe to drop will be real estate as mortgage rates continue to stay high. If these mortgage rates don't start to go down aggressively, there is going to start being a lot of pressure on homeowners as homeowners will not be able to make their mortgage payments. And that's going to force them either to sell their homes or to default on their mortgage payment. So that is one of the next big shoes to drop. We haven't seen it yet because a lot of people are still not really... A lot of people have fixed mortgages. So a lot of people aren't seeing any changes in their mortgage yet. But in the next two to three years, a lot of those fixed mortgages are going to be due and they're going to have to renew. And if they have to renew at a higher price, I think a lot of those fixed rate mortgages are going to start feeling a lot of pressure. And those homeowners are going to start feeling a lot of pressure. So Powell is saying that inflation is well above the long goal of 2%. So there's still a focus on getting this inflation down. And the only real way to do that is to raise rates. But the economy has expanded well above expectations. So the economy has done well despite the fact that inflation is high and rates are high. Okay, we are streaming on multiple devices all over the world. If you have any questions, please put it in the chat. I'll do my best to answer those questions. Here's ALDX. They're up 43% of the day. These are some of the hottest movers of the day so far. And TGTX up 31%. MNPR up 24%. And Scott's Miracle Grow SMG up 19%. So the Fed has been selling stock. The Fed has been selling stock into this hot market. Interesting. So the Fed is focusing on reducing its securities holding significantly as the market has done well. And Powell is saying that the labor market remains tight. So obviously in this tough situation, one of the things that's been doing well is the job market is very strong. Scott's Miracle Grow having a nice day finding a bid up 19%. YCBD company up 18%. CLGN up 16%. MDAI up 14%. GVP up 13%. LIFW up 10%. AMD after reporting financials having a big day up 8%. So big day for AMD. Powell says he's remaining committed to bringing inflation down to the 2% goal. Vidya bouncing back up 2%. Today they're back to $419. Meta well over 300 again back to 309. Microsoft having a big day up 2%. They're at $345. Amazon after reporting strong earnings up 2% at $136. Google after dropping after earnings starting to find a bid up 1%. Netflix up 1% at $417. So all these bigger companies doing well. Apple reporting tomorrow they're up back to $172 up 1%. Ripple back over 60 cents now. Speaking of cryptos Ripple over 60 cents. Tesla I did tell you when it was under 200 that I thought it was a buy and it is because it's now back to 202. It didn't stay under 200 for long. I thought it might it didn't and we're now back to $202 on Tesla. Ethereum is slowly but surely making a big move here. Ethereum at 1825 and in the green and Bitcoin 34,660 Bitcoin looking strong. I've been marking Bitcoin for the entire year. You can see it's up well over 100% on the year. Congratulations. If you've been taking advantage of this move on Bitcoin and I did predict we'd get over 30,000 in October. We're now at almost 35,000. We're at 34,584. So it's broken all of my targets that I set and I believe that we still have huge catalysts that can take Bitcoin much further and much higher from here. All right. So I did do a top 10 Bitcoin related stocks which video which you can find on social media and you can find it on rich TV live all over social media. So in number 10, I have Maxi, M-A-X-I. So Maxi is my number 10 pick. Simplify Bitcoin strategy plus my number 10 pick for November. But take a look at this. See how it's been going up. These are the one year charts. This is a very bullish chart. All of these picks that are Bitcoin related have done and performed extremely well this year. So you can see that they have performed extremely well has Maxi. They're my number 10 pick for November 2023. In number nine, I have XBTF. XBTF. Venek Bitcoin strategy ETF XBTF. And you can see here how XBTF has performed this year. Another one that is doing extremely well. And you can see the chart up here. So big, big, big moves for all of these Bitcoin related stocks in ETFs. And this is why I'm saying that you guys need to be aware of what's going on with Bitcoin and Bitcoin related stocks because they're performing extremely well. And in a market where a lot of stocks are not performing extremely well. Most of these Bitcoin related stocks have done extremely well. As you can see, XBTF is up 67% on the year. And the next pick is BTF. Valkyrie, Bitcoin and Ethereum strategy on the NASDAQ. You can see here at $12.75. And you can see they've performed very well. They're also up big this year. So I mean, all of these charts look very, very similar. Everything that is Bitcoin related has performed well this year because Bitcoin has been performed well. So if you want exposure to Bitcoin, you don't have to buy crypto. You can actually buy the stock. And these are Bitcoin related stocks in ETFs that you can own and you can purchase. So you can see that these charts are all very, very bullish. So that's BTF. Now, another one is BTBT, one that I personally sold this year on the big move, BitVigital. It's a Bitcoin miner, BTBT. And they are up this year as well, having a big year and doing extremely well, the one year. Alright, so BTBT, I'm just marking this up. You can see that they have also performed very well and having a big year. And you can see that BTBT, which is a Bitcoin miner, is currently up 354% in the last year. So a huge move for BTBT. That's why I sold it. I took my profits because they performed well and I wanted to make sure I made money on my trade. Another one that's a Bitcoin miner that's in my top 10 for November is BITF. Now, why do I have them all in my top 10? Because Bitcoin is performing well. And if Bitcoin continues to perform well in November, a lot of these stocks will follow as they have all year. Here's BITF, another one that I personally own, a Bitcoin miner. And you can see that they have performed well. So they are my number six pick for November 2023. BITF, BitFarms, a Bitcoin miner, like a penny stock at a dollar. And I think they have some really good upside. Super risky. Remember, Rich TV Live is strictly for information and education purposes.  Past performance is not always an indication of future results. Here's GBTC, Grayscale Bitcoin Trust, GBTC. They've also performed very well. You can see I've been charting it. They are having a monster year. Monster year. In the last year, they are up 216%. So if you want to own Bitcoin without actually putting it on a crypto exchange, without putting it on a wallet and potentially getting it hacked and dealing with any of those issues and losing your passwords and all that stuff, you can buy GBTC. It's up 216% this year. It's up more than Bitcoin. So there are lots of assets out there now that you can purchase that can give you exposure to Bitcoin without actually physically buying Bitcoin. Now, why is GBT so special? They own over 600,000 Bitcoin. They are one of the largest holders of Bitcoin in the world, GBTC. Put them on your radar. Put them on your watch list. Yeah, I agree. A rate cut would be huge for the market. I think everyone should be aware of GBTC. And GBTC is also working on getting a Bitcoin spot ETF. So if they do get approved for a Bitcoin spot ETF, I believe that will also be very bullish for GBTC. So put GBTC on your radar and on your watch list. They're my number of five pick for November 2023. And they're currently up 216% in the last year. So they've performed extremely well. And as you can see, my chart has them. It's even going higher than where my chart at it. Last thing is just keeps going up almost every single day as the price of Bitcoin goes up. So do these Bitcoin related stocks. All right. In my number four pick or November 2023, that's a Bitcoin related stock and ETF global X blockchain and Bitcoin ETF. BITS. BITS. Another Bitcoin related ETF that I think everyone needs to be aware of. Put them on your radar. Put them on your watch list. BITS. Another one that is performed very well as the price of Bitcoin has. And you can see here, these charts all look very, very similar. They're all going up because they are climbing up and they follow Bitcoin.  If Bitcoin goes down, they will go down. Bitcoin has been going up all year. BITS has also been going up. So BITS is my number four pick for November 2023. All right. In number three, another Bitcoin ETF, BITO. ProShares Bitcoin Strategy ETF on the New York Stock Exchange. Currently at $17.48 and look at the chart. They all look the same. All look the same. They are all climbing as the price of Bitcoin is climbing. BITO. Put it on your radar. Put on your watch list. Another Bitcoin ETF that is performing well as the price of Bitcoin is climbing up higher this year. All right. That's my number three pick for November 2023. And in number two, this is one that I think everyone needs to be aware of, Coinbase. Coinbase is the largest exchange in America for cryptocurrencies. It's also the exchange that all of these Bitcoin ETFs are going to use to put their crypto. So when these Bitcoin spot ETFs get approved, all of these that are American are all going to be placing their Bitcoin at Coinbase. I think that's extremely bullish for Coinbase. I don't own any Coinbase. I've never bought Coinbase, but I'm very, very interested in getting involved. You can see it's been as low as $30. It's now at $77 and Coinbase is up this year, 158%. So you could be up 158% buying Coinbase this year, buying the stock. The symbol is Coin, C-O-I-N. That's Coinbase. And they're up 158% on the year. They're my number two pick for November 2023. All right. What else? Right now, Powell is talking about the wars in the Ukraine and in Gaza with Israel and Hamas and how that's affecting the market. Right now, the Dow Jones was up a lot. It's starting to lose a little bit of its luster. It's just slightly green now. So the market took a very dovish stance. Now it's starting to take a little bit of a hawkish stance. So Powell is saying that the question we are asking is should we hike more? So Powell is definitely thinking about hiking more. The question is how much and when. So that is kind of spooking the market a little bit as he speaks. All right. My number one pick in my top 10 stocks was MicroStrategy, MSTR. MSTR is Michael Saylor's company's a CEO. And all they do at MicroStrategy is buy Bitcoin. That's all they do. Now let's take a look at the stock price. Look at this. Another one of these charts that looks very, very similar. I've already had it tracked because I've been tracking all of these and look at how much this one's up in the last year. MicroStrategy's MSTR, Michael Saylor's company is up 207% this year. 207% MicroStrategy is up this year. Another huge, huge move for a company that all they do is buy Bitcoin. That's all they do. No Bitcoin mining, no Ethereum, no Doge, no Shiba Inu, nothing. All Michael Saylor does is buy Bitcoin. And with Bitcoin at 34,500 right now, he's up, I believe his average is around 28 or 29,000. So he's up on his Bitcoin. And all he does is he raises money with his public company and buys Bitcoin. I mean, it's a simple business strategy. It's a very, very simple business strategy. So, and it's worked for him. It's worked for MicroStrategy and it's worked for any investors that are buying MicroStrategy. So that's why I've got MSTR as my number one pick because they are hot. They've been hot all year. And if Bitcoin continues to go up higher, which I believe it will over the next 25 to 26 months, the next two years, MicroStrategy's will also go up. And you can see here MicroStrategy's when Bitcoin hit its all-time highs, MicroStrategy's also hit ridiculous levels of $1,000. So there's still room for this to double from here. So there's room for MicroStrategy to go to 1,000. And if they do, you can still double your money from these levels. Pretty much make another 150% from these levels for MicroStrategy to fill in that gap. And I believe there's a very good chance that they will hit all-time highs. If Bitcoin hits all-time highs, which I predict it will by November 2025 or sooner. So if you're like me and you believe that Bitcoin is going to go higher, these are stocks that you need to be looking at because they're following the price action of Bitcoin. Powell is saying reducing inflation is likely to require lower growth and softer labor. It's like they're wishing for the labor market to get weak. It's just bizarre. It's so bizarre. Like, why would you do that? I don't understand that. I don't get it. Why does the labor market have to get soft for inflation to go down? So the market is losing a lot of its luster as Powell is flip-flopping back-forth between should we raise rates? Will we raise rates? It looks like we have to raise rates. Maybe we won't raise rates. He's all over the place. But at the end of the day, if they want to get inflation down to 2%, the only way they can do it is by raising rates.  So I'm pretty sure they're going to have to raise rates whether they like it or not. So those are my top 10 Bitcoin-related stocks for November 2023. Powell says financial conditions have clearly tightened. He's dropped the word recession a few times. Here's one of the hottest stocks of the day, CLLS. Now it's very difficult for me to want to buy these stocks. And this is why. They've been higher, right? It's now getting up to that high for the year. But it's been much lower and it's bouncing off the bottom and it's probably on news. But the reality is, do you trust it knowing that it's been higher? It's come all the way down and now it's making this move. It's very difficult to trust these stocks because they all have these types of patterns and these types of charts. Here's PATI up 103% on the day. And if we look at the one-year chart, you can see that this is actually at a 52-week high. So this is actually at a 52-week high as PATI. So big explosion for them. Definitely want to put on your radar and put on your watch list. I'm not going to chase something at a 52-week high, but clearly people are chasing it and buying it. Here's ALDX. You can see that it's come down and it's got one of those charts that I've been showing you guys where it's kind of like done a dead cap bounce. You can see it's come down and now it's doing a dead cap bounce where it's bouncing back up. So a lot of these charts look like this this year. It's kind of been the way most small caps have traded this year because most have traded down. And the reason why a lot of them are trading down is because it's been difficult for them to raise capital. So what happens is when it's difficult for them to raise capital, they sell stock. When they sell stock, it takes the price down. This is the reality, right? And then on top of that, the short traders know that so the short traders will go and short these stocks. Soon as they go on the raise capital and there's extra shares out there, it creates a massive amount of selling pressure. And that's when the shorters do their work and they short these stocks down. Market makers do it, shorters do it, smart high net worth investors do it. People inside these companies are selling the stocks because they see the prices are going down or they're involved in the fund raising. So they're selling the stocks, taking the price down. This is why these stocks struggle to get to the higher levels and struggle to get to the next levels. And that's why this year I've been buying a lot of the bigger stocks, buying the bigger stocks, buying the bigger names. And well, actually last year I was buying the bigger stocks when they dipped and this year I just been selling. And I've been looking to buy into these again, but they're all really high. Look, the big seven are all high. Apple's up this year. Google's up this year. I sold Apple and Google this year already. Amazon's up this year. I sold Amazon already this year. Microsoft's up this year. All of these big stocks are up. I didn't buy Amazon, but it's been up this year. NVIDIA, I didn't buy, but they've been up this year. So all these stocks are up. All of these have had these huge moves up this year. So very difficult at this point to buy them when they're all pretty much near the top. Here's Meta. They've had a monster year this year. One that I missed, unfortunately. I missed NVIDIA and I missed Meta and I missed Microsoft. But I bought Amazon, bought Google, bought Apple, bought Tesla and sold them all this year. Speaking of Tesla, let's look at Tesla. So here's Tesla. It was under 200 for a short period of time. And now it's starting to climb back up now at $203. So it looks like Tesla is starting to find a bid and I'm very, very bullish on Tesla. I think that the upside is tremendous for Tesla. And I think it's a quality company, especially now that they've got the Cybertruck coming out. I think the Cybertruck is going to be a great product for them. It's going to bring in tons of new revenue for them. And I think it's going to be a winner for them. So I think that Tesla is a very interesting company and I'm very, very bullish on Tesla. And you know what? I think you need to watch Ethereum right now as far as cryptos, because they seem to be climbing above that 1800 mark and looking very, very bullish. And XRP, you know, I was just saying it's a 60 cents. Now it's a 61 cents. So XRP is slowly but surely walking up higher too. So definitely need to keep your eye on all of these assets as they are starting to gain some steam and look very, very bullish. And obviously there's Bitcoin at 34,630. And I'm just waiting for it to break that 35,000 mark. I even have it charted. I have the line right there. It's right at 35,000. And every time you can see it, every time we get to that 35,000 mark, it sells. It sells. It's done it five times where it's hit 35,000 and sold off.  So obviously 35,000 is a key point of resistance for Bitcoin. Get to know the Bitcoin halving and do your research on the Bitcoin halving, which is now five months away. We're literally getting really, really close now to the Bitcoin halving event, which is five months away in March of 2024. And I believe that that is going to be an absolute massive catalyst for Bitcoin, where we're going to see the price go way, way higher. And a lot of people are buying Bitcoin in advance of the Bitcoin halving. That's why we've been seeing this big move in Bitcoin. But the reality is I think we're going to go way, way, way and much, much, much higher. It's my opinion. I might be right. I might be wrong. I remain to be seen, but so far I've been very right with Bitcoin. As Bitcoin has more than doubled this year. And I've obviously been tracking it and telling you about it. And I've got a huge Bitcoin on my desk here. I've been talking about every single day for the last couple of years. And I told everyone in 2022, I was buying it and Ethereum and positioning myself for the big Bitcoin halving in 2024. And that's exactly what I've done. And I haven't sold any Bitcoin or any Ethereum, despite the fact that I am up over 158% of my portfolio right now.  It's hard to not sell it. It is. But it is what it is. You know, I'm holding it because I believe it's going to go higher. Jerome Powell is speaking right now. Powell is saying we have not made any decisions on future meetings. And he said the staff did not put the recession back into their forecast in the meetings. So they're not forecasting for a recession, which is good. Very good. One thing I don't understand is the banks had a monster year last year when rates were low. Now rates are higher and banks are going down. It's a little weird. It doesn't really make a lot of sense to me. I don't understand how that is the case. You would think that in a higher rate environment for banks, the banks will perform better. The banks are not performing better. They're performing worse. Despite the fact that they should be making more money because they're charging more interest. Less loans at higher rates. That's a good point. That's a good point. But anyone that has existing debt is paying more for their existing debt, so banks should be making more. Maybe they're not going to be giving out as many loans because people don't want to take the money at higher rates, which is a great point. But what about all the existing loans? All the existing credit cards, lines of credit, student loans, car loans, mortgages that have all been increased that people are paying more interest on? So I think that the banks will benefit from this at some point. It's just not happening right now. But at some point you're going to see the banks are going to come out on top because of this, because they're going to make way more money with all these higher rates. So right now inflation is around between 3-4%. They're asking Pao, how long would you be willing to live with 3-4%. Let's take a look at the overall markets right now. Looks like they're going back up. Yeah, really surged back up now. The Dow Jones is up 237 basis points. S&P 500 up 40 basis points. And the NASDAQ up 162 basis points. So the market is performing well now on this news that there is a rate hike pause. And you can see Bitcoin is also performing well at 34,661. And if we can get through that 35,000 resistance, I think we're going to rip right to 40,000. You can see Ethereum is just creeping up there. Look at that. Ethereum at 1831. Look at that. Very bullish price action for Ethereum today too. So you can see that we did get over that 35,000 mark on Bitcoin and then sold off. And now we're approaching it again. So it's going to be very interesting to see if we can breach that 35,000 and then stay above that. We can breach the 35,000 resistance and stay above it. We're going to be looking good. We'll be looking really, really solid for Bitcoin. Now I appreciate everyone that's here on, excuse me, all the different devices that we're streaming on. If you like the content, please smash the like buttons, comment down below, share the video everywhere and subscribe on the platforms you're on. So you can follow us to get live updates, future trending topics, future videos, CEO interviews, breaking news, breaking news in the world of finance, breaking news in the world of sports, breaking news in the wars that are raging right now in the Middle East and in the Ukraine and anywhere else that any breaking news happens, we'll be covering it 24 hours a day, seven days a week. We're just watching Powell speak right now. Powell says labor supply and demand continue to come into better balance. Thank you for joining. I really appreciate if you guys just tap the screen, tap, tap, tap, hit that like button. Tap, tap, tap, tap, tap, tap. Give us some likes, guys. I appreciate that. Thank you for joining us. Welcome to the Rich TV Live podcast. We are following Jerome Powell speak on the FEDGE decision to leave interest rates frozen. They are not raising rates today. They're freezing rates going into the holidays, which is great news for anyone in the world of finance. So hopefully this can be maintained. And hopefully at some point next year, we can see the rates start to go down. And once they lower rates, I think that'll be extremely bullish for the markets. I think it'll be bullish for Bitcoin. I think it'll be bullish for stocks and be bullish for assets in general. Look at Tesla. Tesla's climbing quietly, surely, but quietly. Look at this. Now at $204. And in the green, after being in the red earlier in the day, it is now in the green. And we're now at $204 for Tesla. So looking really, really strong. And I kind of wish I bought someone who was under 200. NVIDIA earnings are tomorrow. Yes. Let's take a look at NVIDIA. NVIDIA has been one of the top producers all year, currently at $419. And up over 200% in the last year has had a recent little dip. But you can see I've been charting this and NVIDIA has been an absolute monster. As you can see here in the last year, up 197%. So absolutely killing it is NVIDIA in the last year. Like I said, up 197%. Meta has also been an absolute monster. I mean, look at this. Look at the chart on Meta, just killing it. If we could have just bought this at 90, it would have been an amazing buy at 90. And today at 310, that's a 247% gain in 352 days. In less than a year, you could have made 247% on Facebook, now called Meta, formerly Facebook. And you can see Meta is climbing at $311. So it's been the year of the big companies, the top seven. They call them the top seven stocks that have performed very, very well this year. It's been their year. They've all performed well. But outside of the top seven, the market hasn't been very strong. So you need to be aware of that, that the market has been so-so and not very strong outside of the top seven. Let's take a look at some of the top stocks of the day.   Scott's Miracle Grow SMG up 19%. YCVD up 17%. GVP up 17%. LIFW up 7%. And AMD after reporting strong yesterday, up 9%. Welcome on TikTok. Welcome on YouTube and all other devices. I am your host Richard D'Souza here for the Rich CV Live podcast. I am watching Fed Jerome Powell speak on inflation, the US economy, the Fed's decision to leave rates unchanged, and what the Fed is looking to do moving forward. And they still want to get the inflation down to 2%. We're still over 3.5%. So we got to get the inflation down and the only way to get inflation down is really to raise rates. So you have to assume at some point they will raise rates. The question is when and how much and how will that affect the market and the market right now is trying to digest all of that information. If anyone has any questions or anything they want to discuss, please put it in the chat box and I'll do my best to answer your questions. And I can show you guys what I'm seeing in the markets. If you have any picks you want me to look at, please put it in the chat and I'll do my best to take a look at some of your picks. So you can see here on MarketWatch the Dow Jones is up 239 basis points or 0.72%. S&P 500 is up 44 basis points or 1.05%. And the NASDAQ leading the way up 1.41% and 180 basis points. All right, I'm going to continue to watch the meeting here with Jerome Powell. Other than that, I want to wish everyone a great day. Have a fantastic Wednesday. Happy trading. If you want to see our top 10 stocks for November 2023, you can find that all over social media, find it on our website. And we really appreciate you being here. I'm the host of the most, your host of the most, your boy, Rich from RichTVLive and a RichTVLive podcast. If you like winning, you're probably not watching. And if you're not winning, you're probably not watching. We bring you the winners and we bring them to you first to see our interviews, breaking news, trending topics right here exclusively on the RichTVLive podcast. Thank you for watching. We'll keep you updated on everything in the world of finance, everything in the world of stocks, Bitcoin, cryptocurrencies, news. You can see we're doing a lot of videos on news right now as there's a lot of big news in the world in the world of finance, in the world of war, unfortunately, and in the world of sports. And we're bringing you all the biggest breaking news and trending topics every day in the world of finance, news, and sports. Thank you for watching. I'm your host of the most, your boy, Rich from RichTVLive, bringing you this 24th episode of stocks and stacks everywhere on all devices. Thank you guys for watching. Have yourselves a great day. I'm your host of the most, your boy, Rich from RichTVLive on the RichTVLive podcast. My name is Richard D'Souza. Have a great day. We'll see you soon. Stay safe. Peace.


The motto of the Air Force Reserve is Ready Now, ready to provide immediate equipment and personnel in any military buildup, but also prepared to lend a hand in any natural or man-made disaster. Whether it's dropping fire suppressant on raging brush fires that threaten life and homes, rescuing people trapped in a disastrous hotel fire, plucking them from the molten eruption of a fierce volcano, or taking the pulse and tracking the direction of a massive coastal hurricane, Air Force Reservists make giant contributions to alleviate suffering and demonstrate that their professional skills have important peacetime applications. I'm Gil Nyer with a profile report on some of these stories. Airman Magazine and all the national news media highlighted the spectacular eruption of Washington's Mount St. Helens and the human drama that accompanied it. 61 people were rescued by the Air Force Reserves 304th Aerospace Rescue and Recovery Squadron from nearby Portland International Airport. Technical Sergeant Charles Eck, an Air Force Reserve para-rescuman who was on the scene at Mount St. Helens, is shown here with one of the families he helped bring out. He will never forget that experience. Charlie, where were you when Mount St. Helens blew up and how did you respond? Our squadron was having their weekend monthly drill at the base. I was at the para-rescue sections. We got a call from operations to tell us that we should get our gear ready to get on the choppers as soon as we could. We were on the choppers and up on the mountain within an hour and a half from the time the mountain erupted. What was the scene like when you arrived on the mountain? It was awesome. The trees were blowing down like matchsticks. The mountain was spewing ash and steam 60,000 feet in the air. It was generating its own thunderstorm. There was lightning bolts 20,000 feet. There was just devastation everywhere. Were your rescue efforts successful? Yes, we took out about 61 people for saves. The mud and ash must have made things very difficult. Tell us about some of the problems you encountered. Well, when you have to go over the trees in some of the areas where the trees were still standing, the ash on the trees would throw up a cloud of ash and block the view of the helicopter. So we'd have to do about a 200 foot hover and hoist down to the people that we found. And it caused quite a bit of problems because you couldn't see the ground where you were hovering to and being hoisted to. I guess the maintenance people had quite a problem too. They did a super job and every time we'd come back they'd wash down the engines completely and turn them around for the next sortie on up to the mountain. They'd really put in a lot of hours and really did some fine jobs. Were any of your rescues particularly memorable, such as the Moore family who we saw in Airman Magazine? That was an interesting mission. The PJ that was on the ground was Richard Harder. He was down first and it took us probably an hour and a half to get back into the area to put me down to him because of the ash was still flowing around the air and we couldn't get into the valley where he was. Charlie, thank you for bringing us that update on the 304th Aerospace Rescue and Recovery Squadron. Aerial rescue at Mount St. Helens, another example of the Air Force Reserve's continuing readiness to respond in the tradition of the motto of the Aerospace Rescue and Recovery Service that others may live. In November 1980 Southern California suffered the worst fire season in its history. The president declared it a national disaster area after more than 100,000 acres and hundreds of structures burned as winds drove flames into housing areas and woodlands alike and yet the damage would have been worse without a fire suppression unit used by the Air Force Reserve and the Air National Guard known as MAFs. Charles Coval, U.S. Forest Service Fire Suppression expert, helped coordinate the operation. Charlie, what is MAFs and how does it work? MAFs is an acronym for Modular Airborne Firefighting Systems. It's a specially designed system with tanks for retardant and compressed air that is placed in the tail section of a C-130. Upon arriving over a fire, the compressed gas causes the retardant to be released through tubes in the tail section and a fire line path is then formed. How significant is the contribution of the C-130s to the overall Forest Service Firefighting effort? It's very significant. The C-130 has a special capability of laying a fire retardant path in excess of a half a mile. There's a lot of hills, wind, smoke, a lot of hazards. What's the biggest problem? The biggest problem is the wind. The C-130s can fly in winds up to about 40 miles per hour over mountainous terrain and the fire itself creates its own wind causing wind shears and the pilots have to be very careful of those. I know you were on the Southern California fire lines day and night. How successful were the C-130s in helping to stop those fires? They were very successful. On several of the fires they saved some homes and aided the firefighters in getting in to build the fire lines and we got a lot of calls from the community. People were very grateful of course the Forest Service was too. It saved us a lot of money. Whenever a major forest fire threatens life and property the U.S. Air Force Reserve is trained and ready to give the U.S. Forest Service a firefighting hand. Nature's show of force in a volcanic eruption is perhaps matched by the destructive fury of a major hurricane. Allen, which raged across the Caribbean in August of 1980 causing an estimated 250 deaths and property damage in the millions was such a hurricane. Air Force Reserve storm trackers from the 920th Weather Reconnaissance Group at Keisler Air Force Base, Mississippi measure the intensity and plot the direction of these fearsome storms. Weather officer Captain Dave McIntosh has frequently penetrated into the eye of hurricanes to provide vital data to the National Hurricane Center near Miami. Dave, what's it like flying into the eye of a hurricane? Well actually every penetration into the eye of a hurricane is different. Depending upon the hurricane the ride can be very smooth or it can be very rough. What's your role as the weather officer? My primary responsibility is to gather certain weather information as we are flying into the eye of a hurricane as well as in the eye itself and send this information back to the National Hurricane Center in Miami where they can analyze the data that I've sent. Well how is the data used? Well it's put into a computer and from this the computer can plot what has happened in the hurricane and come up with a forecast of the most likely path that the hurricane will take. Are there any new techniques being used in storm tracking? Yes there are. In fact NOAA the National Oceanic and Atmospheric Administration has provided the funds for us to install the latest electronic equipment on our aircraft that we can gather the data very rapidly and using a satellite data link send this information to the ground much more rapidly than we can at present time. But don't satellites perform the same function basically that you do? They perform basically the same function but they don't have the accuracy. A satellite may give you accuracy within 60 miles. On the other hand we provide data within five miles sometimes much better than that. Captain McIntosh it sounds as if your Air Force Reserve job is very satisfying. Yes it is because it gives us the opportunity of very accurately determining the position of hurricanes which allows the forecaster much greater reliability in determining how many people to evacuate and which people to evacuate. So we do have a lot of satisfaction in this. So even in an age of satellites the human factor remains very important in keeping track of a storm. Yes mainly because of the accuracy that we can provide. Dave thank you for updating us on the 920th Weather Reconnaissance Group which performs more than 70 percent of U.S. hurricane tracking. While Air Force Reservists were successfully battling fires in Southern California during the last weeks of November 1980 other Air Force Reservists from the 302nd Special Operations Squadron at Luke Air Force Base in Arizona were called upon to rescue people trapped in the burning MGM Grand Hotel in Las Vegas. Captain Mike Martin was the commander of one of three reserve helicopter crews who responded to that situation. Mike how did you happen to be at Nellis Air Force Base and how did you respond to this situation? Our unit had deployed three aircraft to Nellis to participate in red flight exercise at the time. Months long war games exercise. At the time of the fire on Friday morning most of us were in the B.O.Q. in crew rest. Our commander received the request for assistance through the command post and we launched immediately I would say it took about 30 to 35 minutes to get airborne and it's a short five-minute flight to the MGM Grand Hotel. And what did you find when you got to the fire scene? As we approached the hotel of course we saw a lot of smoke billowing up in a mushroom cloud and we orbited the area talked to the Las Vegas Police helicopter on the scene and tried to figure out how to get the remaining people that were stranded on the balconies off the balconies. We couldn't just simply lower the force penetrator down from our hoist because of the balcony overhang. We didn't really know what to do at that time and the problem was solved by Master Sergeant Bill Reynolds. Bill could you describe the technique you used for rescue at the MGM Grand? Yes, surely. The force penetrator attached to our hoist cable is a three-seated fold-out seat arrangement that can lift two people. At this point I was lowered on the hoist and with a throw rope one of our tie-down ropes tied to the penetrator and threw it to the people on the balcony they in turn pulled me over to the balcony and then we proceeded with the rescue from that point of hoisting the survivors off one at a time. Bill, can you tell us something about how the people who were trapped on those balconies reacted when they saw your helicopter approaching? Well, very relieved to be stating it mildly. They were very glad to see us and I do believe that possibly our presence with the hoist capability prevented more people from jumping from the balconies. Thank you, Bill. Mike, isn't it a little bit unusual for a unit like yours, a special operations squadron, to be so well trained in rescue techniques? No, not at all. Many of the combat techniques that we practice daily are certainly applicable to rescue. In fact, over the years we have been credited with saving dozens of lives and using techniques just like we did at the MGM Grand. In fact, in the case of the hoist and the force penetrator, this is a technique that we practice almost daily and the fellows are very familiar with it and it's a very common thing for us to use. Bill, did you ride up the hoist with the rescued survivors each time? No, I didn't. My decision at the site was one at a time and after the fifth person was off then I went up by myself. So you were alone on that balcony for a while? Yes and you're there all by yourself that wasn't a very good feeling. I was glad to see the hoist come back down for me. Bill, that's really incredible. Thanks to all of you in the 302nd Special Operations Squadron and your contribution to the readiness of the United States Air Force Reserve. Thanks to all the members of the 302nd, that was really incredible. This is reflected in the appreciation of all the Air Force Reserve from the Chief on down and the Chief himself is on hand now at the Pentagon. It's a pleasure to welcome Major General Richard Bodycomb. Thank you, Gil. That's my privilege to be here this morning to be able to talk to you about the Air Force Reserve. Sir, 1980 was a year of many unique Air Force Reserve achievements, particularly in the area of disaster relief, as we've just seen. I'm sure you're proud of the achievements of all your units. What do you see as the greatest challenge for the decade of the 80s? Gil, that's a tough question to answer. I'd like to say that it is going to be difficult to continue our momentum. We've got this force at a very high peak now and then we've got to keep it rolling and conversion is facing us in a number of units. Conversions are difficult times for reservists. You have to learn new airplanes and new skills and we often turn over the unit. Our problem simply is going to be a recruit continue to recruit up to the level of full strength and also to continue to retain retain the very finest people in our unit. Thank you, General Bodycomb. I'm sure the 80s will continue to provide important opportunities for all Air Force Reservists to demonstrate their ability to meet any challenge. They're involved in many other humanitarian assistance programs supporting their local communities. An actual jumbo jet crash in Florida some years ago led to emergency exercises that realistically test disaster response to similar potential mishaps at Miami's International Airport. Air Force Reserve rescue units are training to support our nation's space program assuring that if an emergency arises the men and women who seek new space frontiers are safe in any contingency. Astronauts have the confidence that should the need develop skilled Air Force Reserve rescue personnel are poised to assist. Whether or not they have rescue in their mission all Air Force Reserve units stand ready to assist in any emergency. Whenever needed anywhere in the world the Air Force Reserve is indeed ready now.


Hello I'm Stevie Barnes and today we will be exploring engaging tech tools to help you boost creativity and spark discussion in your classroom. I've created a choice board for teachers. This amazing resource will help take your planning to the next level. Before we get started don't forget to subscribe and hit that bell to enable notifications for our channel by clicking our logo during the video. Also leave us a comment or check out our related videos by clicking the pop-up cards in the upper right corner. By the end of the video I want to equip you with the knowledge to incorporate Mentimeter, Padlet, Speedrite, Kagan, Autodraw and Nearpod in your classroom as engaging lesson hooks and closures. I also want to highlight aspects of the Core 5 in each tool so that you feel empowered to create a personalized learning experience for all your students. First I want to emphasize the power of purposeful lesson hooks and closures. Lesson hooks grab students attention and create eagerness to find out more. Lesson closures help students make meaning out of their learning and provide teachers with important student data. Don't miss out on this incredible opportunity to take your lesson plans to the next level. First let's take a look at Mentimeter. A few of my top recommendations when using this tool are to ask an open-ended question, create a student word cloud, take a poll or ask a multiple choice question. After creating an account simply click New Presentation, label your presentation name, choose the type of engagement you'd like to produce. For this example I'm going to show you an open-ended question. Write your content or your question. You can add an image and you can choose how you would like your results to be laid out. And last you can customize the look of your presentation. In a moment's time you've created an engaging hook or closure that your students will love. Not to mention Mentimeter ensures student ownership by requiring active participation, generates a variety of thinking and responses and last but not least is an emerging piece of EdTech. Next we'll discuss Padlet. This handy virtual bulletin board should not be forgotten. When incorporating Padlet in your lesson I recommend using it as an exit ticket, a space to collect prior knowledge or a space to collaboratively post and respond with peers. After creating an account you must choose the type of wall or background you would like to use. From there it's as easy as editing your title and description, updating your wall's appearance and sharing a link with students. Padlet easily provides students with a space to reflect. Writing and reading a variety of thoughts helps foster higher order thinking skills. Additionally students honor the viewpoints from their peers and receive individualized feedback from teachers. Following Padlet we will dive into speed write. This web tool is referred to as the most dangerous writing app. If your students stop typing all progress will be lost. I recommend having students complete a quick write or a timed reflection. When students enter the site you can clarify the task by specifying the time limit you've set or the number of words you'd like them to write. You can have students complete a computer-generated prompt by clicking generate a prompt or you can have a teacher made prompt written on the board and ask students to click start writing without a prompt. At the top of the screen each student will see a progress bar if they stop typing for too long. All of their work will be erased. This tool encourages students to get their thoughts written down. Every student is responsible for their reflection. Thinking quickly encourages creativity and higher order thinking. Furthermore this emerging piece of ed tech creates a personalized learning experience for every student in your classroom. Next up on our teacher choice board we have what I call quick cake-in. When I say that I mean quick so easy anybody can do it collaborative structures for your classroom. Although there are so many items you could add to this list the three that I'm going to suggest are stand-up hand-up pair up timed pair share and round robin. Each of these strategies get students talking with their peers about their learning. Collaboration equals engagement. Using cake-in in your classroom helps ensure positive classroom culture, helps students use higher order thinking skills, helps students practice real-life collaboration, provides opportunities for conferencing and ensures that there is a balance of online and offline learning taking place. After cake-in next up on our choice board is Autodraw. Autodraw is an online drawing tool that employs artificial intelligence to transform student sketches into conventional icons. To incorporate this tool as a lesson hook or closure I recommend having students complete a time draw, create an infographic or concept map, or create sketch notes. Simply give your students the Autodraw link with the creative prompt of your choice. From there student creativity takes charge. For example, students could explore external and internal character traits in ELA, draw a word problem from math, practice identifying and drawing vocabulary for science, or create a concept map of a lesson learned in social studies. Autodraw provides students with choice and the ability to create, make mistakes and have fun with their learning. It provides you qualitative data and it's a fun different way to start or end your lesson. Last but not least we're going to discuss Nearpod. Nearpod is an up-and-coming tool that is designed to make every lesson engaging and interactive. To take advantage of a few of its best features I recommend creating an interactive video, creating a matching pairs activity, a multiple choice activity, or having students interact by drawing, writing and uploading. After logging in with your Google account click create and choose whether you'd like to start with a lesson, video or activity. Teachers are given a fully equipped tool belt to make sure your students are interested in what they're learning and having fun. Take a look at the options you have for providing content and don't forget to take advantage of these amazing activities included within the app. Nearpod is a wonderful tool to encourage students to reflect on their learning. The platform allows students to explore and use higher-order thinking skills. Thank you for joining me today. I hope you feel inspired to boost creativity and spark discussion in your classroom. Make a difference, one lesson at a time. Thanks so much for watching. Be sure to like, comment, or reply to one of our other videos or share the playlist below. Subscribe to our channel and enable notifications that you don't miss out on the next episode. Don't forget to check out our other resources like this cast podcast and see what else is going on at Ori County Schools. Be sure to follow at Dear Dis is on social media or contact us via email or our blog.