Hey, my name is Rob Scott, and I get to work with a great team at Google on Kubernetes Networking. Today, I want to talk with you about improving network efficiency with topology aware routing. But before we get into that, I want to provide just a brief outline of how I want to structure today's talk. First, I'm going to go through a little bit of background as far as how we got to where we are and then cover our first attempt at topology aware routing and some of the limitations associated with that. Then I want to explain our second attempt and what we're trying to do differently this time, as well as how that actually performs in real life with the simulator simulating millions of different inputs and scenarios. And finally, I want to provide a long-term vision for where we see this going in the months and years to come. But before I go any further, I have to add some disclaims. Topology aware routing is hard to get right. This talk attempts to show our thought process here, and I'll be the first to say this approach is not perfect. We still have lots of areas for improvement and things still could change. But I wanted to bring attention to the direction we're going and the improvements we're hoping to make here. So let's get into the background a little bit. Now, if you've used Kubernetes recently, you've probably created a service or a pod or both. And if it's a new cluster or a relatively new Kubernetes cluster, it probably has the endpoint slice controller running and that watches services and pods and creates endpoint slices based on those. And those endpoint slices are just lists of pod IPs for each service. And Kube Proxy watches those endpoint slices and configures IP tables on each node. So what does IP tables look like here? IP tables configuration that we're writing is very much based on probabilities. So I copied this little snippet from IP tables config on a node in one of my Kubernetes clusters that had a two endpoint service. And that just means a service with two pods behind it. And in this case, we have two key lines here. First, if you're targeting this service, there should be a 50% probability that you'll choose this specific service endpoint. So that 0.5 probability. And second, if you don't choose that service endpoint, continue down the list. And since you haven't chosen that endpoint, you should choose this second service endpoint. So each endpoint has a 50% chance of being chosen. And you can see that same thing scaled out to thousands or even 100,000 endpoints across different Kubernetes clusters. We rely heavily on IP tables probabilities. Now, this works, but it does come along with some issues. Traffic is distributed randomly across all endpoints, regardless of where it actually originates from. So in a three zone cluster, traffic is more likely to go to another zone than to stay in the zone it actually originated from. And every instance of Couproxy needs to keep track of every single endpoint in your cluster, which means the larger our cluster gets, the more endpoints every instance of Couproxy has to manage, which results in slower updates and even sometimes more latency. We also have to work within some constraints here. Couproxy doesn't handle requests directly. It just programs IP tables or IPvS. And that's great in many cases. It means if there's some kind of problem with Couproxy, your networking doesn't break immediately. Instead, it just relies on whatever was already in IP tables config or IPvS config, which is good because Couproxy is not perfect. But unfortunately, it means we don't have visibility into request errors or timeouts, and it's really difficult to understand when an endpoint is overloaded. And also Couproxy is deployed on each node in your cluster. So any significant change could be expensive. So think about this. Because it's running on every node in your cluster, any change to an endpoint anywhere in your cluster has to be sent out to every instance of Couproxy on every node. So if we're updating endpoints more frequently, that's expensive. Similarly, more advanced logic increases CPU utilization again on each node, which is significant overhead to add on every single node in your cluster. So we have to be careful with any approach we take here. Okay, so with that background, let's talk about our first attempt. We added a new alpha API field to services called topology keys. This allowed for endless flexibility. You could specify arbitrary topology keys in any order. And Couproxy would then filter endpoints based on those topology keys, based on those labels. So any endpoints with matching values for those labels would be filtered in and everything else would be excluded from what Couproxy considered on a given node. A wild card character could then be used to indicate that if matching labels couldn't be found, traffic should be routed elsewhere. So let's take some concrete examples here of this configuration. First, if you wanted to require traffic stay in the same zone or region, your topology keys might look something like this. And if instead of requiring, you are fine with just preferring the traffic stay in the same zone or region, you would add that final wild card at the end of the field. So this made sense. It was a very powerful API, but it did come with some real limitations. Now, first off, this was a relatively complex API. And what most users wanted was very similar. Traffic should stay as close to where it originated from as possible. And unfortunately, that really common use case was relatively difficult to communicate with this API. And it required configuration on every single service and relatively significant and complex configuration. Similarly, all the logic behind this functionality lived in Couproxy. And that meant that there was extra processing on each node. And it also meant that all endpoints still needed to be delivered to every node in the cluster, even if that node was then going to filter those endpoints out. It was also a relatively difficult API to implement. So ideally, topology keys would be given more weight if they appeared first in the list. But this would be quite difficult to achieve safely. There's a very real potential that we could overload endpoints. So let's take an example where we have a lot of traffic originating from a zone, but only one endpoint to serve that traffic. It's easy to see if you had configured a service with prefer or even require zone. That would be very difficult to avoid overload. Now, you know, at first we just did some basic filtering that matched any labels based on topology keys. And that kind of worked, but we still had the same risk of overload. And of course, if that wildcard character was passed in, then we couldn't really do any filtering because while you could route traffic anywhere. So our initial implementation was very basic, and it was hard to get it quite right, especially because you could have so many potential combinations of configuration. So what we could do is we could prioritize endpoints matching earlier labels in the list. And we'd avoid overloading those endpoints. We'd also avoid sending traffic nowhere. So as an example, we would avoid sending traffic to, you know, no endpoints. If there's no endpoints in the zone or region, we want to avoid that situation where traffic has nowhere to go. And similarly, we'd make that star character behave more like a wildcard more like failover configuration instead of just removing filtering altogether. And although these all seem like great goals, they became quite difficult to achieve, especially with such a flexible API. So with that background, we said, well, maybe we should try again. And in our second attempt, we wanted to identify three goals. First, we wanted to build consensus around a small set of topology labels that would be clearly defined and officially supported. We wanted to develop a simple approach that covered the most common use cases as automatically as possible. And finally, we wanted to only deliver the endpoints that each node would actually care about instead of continuing to deliver all endpoints to all endpoints. All endpoints to all instances of kube proxy. We thought this would make a very significant difference for both scalability and performance. So because this is Kubernetes, each one of these goals had an associated cap. So if you're interested in all the details associated with each one of these proposals, I highly recommend you get on GitHub and go to the Kubernetes enhancements repo and look up each one of these caps. I'm going to provide a decent overview of each of them in this talk, but I simply don't have enough time to provide the same level of detail that each one of these caps provides on their own. For example, cap 2004, the topology-aware routing cap, hat describes a lot of the different algorithms we considered and provides diagrams to show exactly how they might work. I don't have enough time to cover every different algorithm we've considered, but I hope I still will be able to give a decent overview in this talk. So with that said, let's talk about the first cap, building consensus around a small set of topology labels. Now, in this cap, we wanted to standardize on the following labels, one for region and one for zone. And we wanted to define region and zone as being hierarchical. This meant that zones could not be spread across multiple regions, but a region could contain multiple zones. We also wanted to state that these labels should be considered immutable. This is a very big deal and something that should dramatically simplify any implementations working with these labels. And finally, we've left open the door for a third or maybe even fourth key to be introduced in the future. But for right now, we want to keep it very simple and straightforward. Our second goal was likely the most significant one. It was to develop a simple approach that covers the most common use cases as automatically as possible. And an automated approach meant we needed a good algorithm. But not just a good algorithm, a good way of evaluating lots of potential algorithms so we could actually understand what a good algorithm was. And so Rick Chen, an awesome Google intern, developed an open source tool called Kubernetes Topology Simulator. And this allowed us to plug in any number of algorithm and run against millions of inputs to see just how well or poorly it performed. And we'll cover a little bit more about this topology simulator later on. But let's talk about the algorithm that we ended up deciding. And of course, this algorithm can still change and can still be improved. I've tried to simplify this algorithm into just a couple sentences. So once a service has enough end points, subset those end point slices by zone. If a zone doesn't have enough end points, contribute some from a zone that does. So what does it mean for a service to have enough end points? Below a certain threshold, this approach results in a lot of churn and potential for overloaded end points. Our testing showed that approximately three times the number of zones was a reasonable starting point here. So if you had three zones, approximately nine end points was a good starting point. Anything below that risk significant significant overload potential or significant churn. So as an example, if you have three end points and three zones, you could theoretically distribute them across those zones evenly. But what if one zone is slightly larger than the others? Or what if all the traffic is coming from one zone instead of all the zones? You have significant risks of overload. And also if there's any changes along the way, you have significant risk of churn where everything has to change across all of these zones, across all of these slices, and that gets expensive. So at least initially, we're proposing starting once we have a little bit of room to work with. And not just precisely nine in the three zone cluster case, we need to add a little bit of padding both above and below to ensure that we're not constantly flapping back and forth between approaches. So as an example, the upper limit might be closer to 12, and the lower limit might be closer to six, when we're switching between these approaches. Now once the service has enough end points, we want to subset the end point slices by zone. So we're introducing a new label that can be set on end point slices. And kube proxy will be updated to read from this label and only care about end point slices for the specific zone. And of course for backwards compatibility, kube proxy will continue to watch end point slices that don't have this label at all. But we imagine going forward, the vast majority of end point slices will get a label like this that indicates which zone they're intended for. So if a zone doesn't have enough end points, what do we mean by a zone not having enough end points? Now in this case, we're talking about the number of expected end points, which at least initially will be based on the proportion of CPU cores in a zone. So let's take this example. We've got a cluster that has 12 total end points. And we've got six total CPU cores. Three of those or half of those happen to live in zoning. So we expect half of the end points to also be delivered to zone A. And similarly, one third of the cores live in zone B, so we expect one third of the expected end points to also be in zone B, all the way down the list. So that's relatively straightforward, but what happens if this isn't the case, if there's a zone that doesn't have enough end points? Well, to minimize churn, we're only going to redistribute those end points once a threshold has been passed. We define an acceptable overload threshold as maybe 25%. And what does overload mean? At least in this context, we're defining it as the amount of extra traffic some end points might receive. So if we expected 10 end points in a zone, and we only had eight, that would mean each of those eight end points were 25% overloaded. They could get 25% more traffic than might be expected if everything was evenly distributed. Now, seven end points, on the other hand, would be below that threshold because now each of those end points would be getting 43% more traffic than expected, which is something we're trying to avoid. So once we reach that level of difference, it's time to start redistributing end points. Before then, we rely on kind of lazy rebalancing. So when a new endpoint comes in, it's automatically delivered wherever it makes the most sense. Now, here's a lot more to this algorithm than I can explain in this talk. So if you're interested, we've included a lot more diagrams and examples in the cap itself. But finally, you may be trying to picture exactly how this might work, so I thought an example might be helpful here. So in this case, we've got nine total pods, four in zone A, and two in zone C. With our original approach, all of those pods would be bunched into a single endpoint slice. But with this automatic topology-aware routing approach, instead what we're submitting is that three end points go into a slice for zone A, same with zone B. And for zone C, we only have two end points from zone C that we can contribute, but we have an extra one we can take from zone A. So we do that. So that's a very simplified way of how we imagine this kind of subsetting would work. And of course, as I mentioned, there's a lot more examples in the cap covering a large number of potential edge cases we could run into here. And finally, we want to only deliver end points that are closest to each instance of Coup-Proxy instead of delivering all end points everywhere. So we've introduced two new labels, one for zone and one for region to indicate where an endpoint slice should be delivered. And Coup-Proxy will be updated to watch end point slices with those labels. And so it will specifically not pay any attention to end point slices labeled for another zone or for another region. So in summary, there's three main things happening here. One, two official topology labels, zone and region, are now well-defined. Two, end point slices can be delivered to zones or regions. And three, users can opt into automatic topology-aware routing on every service. This will likely start as an annotation, but could be extended in the future. And maybe, if we're lucky, we'll get this done well enough that we could even default this to just being enabled and we wouldn't need any configuration at all. So with all that background, now that you understand how this approach works, it would be helpful to understand how our simulation actually scored this approach. So to understand our score, to understand our results, it's helpful to understand what we were evaluating algorithms on. So we gave a high weight to the percent of traffic that stayed in zone, and that weight was 45% of the total score. Next, we cared about overload. We cared about overload, the proportion of extra traffic that any single endpoint might expect to receive in a simulation. So across our 39 million inputs that we tested every algorithm against, our max overload got a 20% contribution to the total score. So our worst case scenario of those 39 million inputs, the single worst endpoint of all those inputs that got the most overloaded, we gave that a weight of 20%. And then we also wanted to make sure that our average case was also quite low. So we also gave weight of 20% to our average overload. And finally, we also cared about the proportion of new endpoint slices that would be required with this approach. So we gave a weight of 15% to that proportion. So our automatic approach actually scored reasonably well here. It managed to keep 84% of traffic in zone, which is significantly better than the original approach, which you would expect because the original approach wasn't even trying to keep traffic in zone. But 84% we thought was quite good because all these inputs included a lot of edge cases. The kind of edge cases where you'd have hundreds of end points in one zone and only one in another zone. And so you end up with some really impressive results given those highly lopsided inputs. What we observed when results were more balanced or more normal was significantly better than even this 84%. And then next, our overload. Our overload was quite good. On average, it was around 1.7%, which we thought was a reasonable level of overload. And although it's not quite as good as the original, it still felt like a reasonable compromise to get to that very high level of end zone traffic. And again, overload performed significantly better when you aren't dealing with all these wild edge cases that we had in our inputs. And finally, for extra slices. The new automatic approach required approximately 37% more end point slices than the original approach. But even still, that did not seem like a significant issue and definitely seemed worth all the advantages that we got for keeping traffic in zone. So overall, our simulator gave this automatic approach on 87% score compared to a 73% score for the original approach. So we recognize there's still room for improvement here, but we think what we have already is a significant step in the right direction. And with that, I want to talk just a little bit about our long-term vision here because really we're still in a pre-alpha stage. We're still very early in this process and we still could use feedback and we still could use a lot of work. Our first priority is to get this into alpha and get some feedback. We're hoping we'll hit that target in Kubernetes 1.21. We also have a number of open questions. You know, obviously how can we improve this approach? If you have ideas, if you have feedback, don't hesitate, get in touch, comment on the cap, come to SIG Network, whatever it happens to be, we'd love to hear what you're thinking. And we're also interested in if we can use any kind of similar patterns for DNS. But is there any additional configuration we need to provide for, say, power users or advanced use cases? And on the other side, can we eventually make this good enough that we can just make this the default and we won't need any configuration at all? Now some longer-term bigger picture questions are, how can we implement topology-aware routing with real-time feedback? This is really the goal. If we had real-time feedback, we could detect overloaded endpoints and route traffic elsewhere automatically. This is really something that would be great to include inside Kubernetes, but it requires a lot of changes all the way up and down the stack and is a bigger project that will not be done probably in the next couple of release cycles, at least. But we're still thinking about it and we're trying to picture ways that we could actually achieve this. And finally, can we do any of this redistribution of traffic without updating endpoint slices on each change? Because right now we're highly reliant on updating endpoint slices to describe what kubproxy should do, where kubproxy should route traffic, which is fine, but it seems like there's probably a bit more room to add local optimizations maybe in kubproxy that could require less updates to endpoint slices. So this is just a sampling of the things we're thinking about. There's plenty more. Many of them are addressed in the caps. So if you're interested, I definitely encourage you to get involved, ask questions, provide feedback. We'd love to hear from you. So thanks so much for coming. My name is Rob Scott. You can find me on Slack, GitHub, Twitter, etc. If you have any thoughts about how we can make this even better, I'd love to hear from you. Thanks so much.


So, who knows when JavaScript was invented? Which year? Ninety-six. Ninety-five. Ninety-five. Yeah, that range. So, in that time, you know, Brandein's boss came into his office and asked Brandein, you have two weeks to do some kind of language that will incorporate in browser. And this was in 95. Now, 18 years later, JavaScript from this small project is like changing the world, right? So JavaScript is like on every device. It's like really becoming huge. And so it's pretty exciting to be working in that field and to share some experience in this meet-up. So, this time we have a small video. That's it. Yeah. Thanks, Jason. And, you know, I let the photographer, Matry, she will talk a bit about Swissnecks. Yeah. Hi, guys. Welcome to Swissnecks' office in 2013. Last year, we had three really interesting sessions. I see quite a lot of new faces, some new familiar faces. So, welcome to our office. And we hope to continue this series even this year with Mench at our premises. From June onwards, we will have even much bigger premises. We will have this entire space as well as innovation space which we are planning to open for Indian startup also around two days a week where you can come to your meet-up, meetings, that other thing. It's, of course, free. So, we will be doing a quick announcement. Maybe with the next meeting session, we can introduce that space. So, once again, welcome. Swissnecks' India, it is a unit by Swiss government. It's under Swiss State Secretary for Education Research and Innovation. And our mandate is to collaborate and facilitate collaboration between India and Switzerland in science, technology, innovation and art. It's a broad mandate. And innovation is something which we are really looking at this year. We started our work with Mench. We will be doing much more in coming days. Thank you. Once again, welcome. So, at this time, we change a bit the format. We are trained to have more talks, you know, about smaller duration. So, we have first, like, big talk from, like, 30 minutes from practice, from support B. And we'll have also, we'll begin before that with some flash talk first. And the first one is from Gaurav. Thanks, Gaurav. It's not again. Come on, guys. So, essentially...


The little attention towards the boy child has led to the deterioration of performance in several areas including educational performance, the social interaction and overall success. This is the stand of a group, Boy Child Transformation Centre, which is advocated in more focus not only to a girl child but also to the boy child, Jacinta Obuco-Hasmore.  Who wants about the boy child? Just like girl child, every boy child deserves good nurture, attention and expression of emotions. But sadly, they have been neglected as society seems more focused on the girl child, which is rapidly suffocating the male child. Here in the squadron, the awareness is to save a boy child, possessing that it is better to properly raise a boy child than to repair a broken man. If we help and build our boys early, we wouldn't have to spend so much time, also much energy, empowering and training our girls to be better whites because naturally they are. Boys suffer more in terms of attention, deficit and hyperactivity disorder. What if I call it disorder?  That's something that is interesting because that once they suffer depression, they are under pressure to show that they are men, to prove that they are men. They are under pressure in every dimension, socially, culturally, there is also peer pressure. So in every facet, boys suffer more than girls, but nobody is talking about it. A panel session of the event holds that in striking the balance between a boy and a girl child, parents have huge role to play in remodeling a boy child. The story of letting the boy child grow, the way God has created our founders to grow matters. First, we must come to that self-realization as parents in the hope to say, you know what, am I replicating the way I was raised or am I designing a new pathway? The boy you don't receive is that Telugu husband, that Telugu boss, that Telugu colleague tomorrow. Families should begin to teach their children early in life the principles of sense of principle-centered values of honesty, commitment, hard work, determination, love. Here, as some take home messages, as well as the view of the former nemasurator-general Dakuku Petasai, and the role of education in saving the boy child. We should not neglect the boys, and we should focus more on the boys. Today, I learned that I am also being loved because usually boy children are just being neglected because they are being seen as strong people. As we deal with gender issues, those gender issues should not necessarily mean issues that concern the girl child alone. Let the curriculum, especially emphasis on gender issues, also attend to those things that bothers the boy child. Look at the society, all right? And I believe that if we are able to contribute one after the other, this society will be a greater place for each and every one of us. The consensus here is that the gender equality must be followed through, and the true sense that there is no view of one gender being weaker than the order. Jacinta Ubuuku for PLOS TV, Africa.


At Audiology Associates at Prestonsburg, you can live your life the way you want and find the freedom of better hearing. You'll experience patient care that is specific to you with exceptional follow-up care that ensures your hearing and balance needs are being met. Audiology Associates at 1428 Northlake Drive in Prestonsburg. Due to dry weather conditions, eastern Kentucky is currently under a red flag warning. Due to low humidity and wind gusts, any fires that develop will likely spread rapidly and outdoor burning is highly discouraged. Basically what a red flag warning is is the conditions are near perfect for wildfires. We've had a dry spell and we have so much foliage on the ground, a lot of leaf coverage, really thick leaves. The surface is really dry. It is pertinent for folks not to burn. I would not recommend burning until tomorrow evening. We're supposed to get a little bit of rain later tonight. There's a front coming in. The temperatures are going to cool off a little bit. We're supposed to get some rain with that. So we don't need to do any burning unless it's 6 p.m. to 6 a.m. If you must burn, only do so between 6 p.m. and 6 a.m. and ensure to take all safety precautions. If you have to burn in the days ahead, try to be within 150 foot away from the hillside so that if the wind picks up, picks a pile of leaves up or something that you're burning that it doesn't pick it up, amber start flying and possibly catch the hills on fire. Or like I said, if you don't have a defensible space around your house could possibly catch your home on fire. The biggest thing is, is no matter where you burn, if you have to burn, make sure you have a defensible space around the pile that you're burning and you're not burning close to the hillside. For more updates on the Red Flag Warning, visit Pike County Emergency Management on Facebook. For Mountain Top News, I'm Brianna Robinson.


So it's just like a parts video, with some project for awesome stuff in it, I can do that, but I'm going to use the format, Good Morning Hank, it's Tuesday. So I recently came across this book from 1833 called The Infirmities of Genius, where it talks about authors having this specific personality that makes them unusually susceptible to tuberculosis, and the books like, you know, authors with their eccentricities of thought and action, their waywardness, peevishness, irascibility, misanthropy, murky passions, and thousand indescribable idiosyncrasies. And I took that kind of personally. You know, like, how am I going to respond to somebody's accusations of peevishness and irascibility, except with my trademark peevishness and irascibility? Okay, I think it's time to check on the weather. Yeah, I don't know, it's okay, I mean, it's a little windy. The weird thing about TB in the 19th century is that like some mental health conditions today, it was both heavily stigmatized and heavily romanticized. Like those concepts just aren't opposites of each other. You were told that you were like separate from the social order and less than a full human being. But at the same time, you were also told that like, you might be a genius. Like your greatest affliction will also be your superpower. Like you have to have OCD, but you can be a brilliant detective like Sherlock Holmes. There's just one problem, of course, which is that OCD doesn't make you a brilliant detective. And indeed, tuberculosis doesn't make you a great writer. Like authors weren't extremely susceptible to tuberculosis because of their murky passions and irascibility. They were extremely susceptible to tuberculosis because at the time, TB was causing about a third of all deaths in England. It's quite cold. It's weird that you can see my body, but you can't like feel what's happening inside of it. Like you can't feel the cold that I feel. Reminds me of something Barbara Dudak wrote, that pain is inside the body so it leaves no trace for the historian. Anyway, let's just, let's go inside. Oh hi. A charity for awesome starts next Friday, which is so soon. And you should make a project for awesome video making the case that a charity you care about should get part of the money that we raise. During the first half of the project for awesome, we're raising money for partners in health and save the children. And then in the second half, we'll be raising money for charities chosen by you. And your project for awesome video could be the reason a charity you care about gets tens of thousands of dollars. But speaking of money, a group of nerdfighters have come together to raise over $300,000 for a matching fund so that everybody who donates to the P4A during the P4A can get their donations matched. If you want to join the matching fund by donating $500 or more, there is a link in the dupe we do. So I don't know if I've mentioned this, but I've been reading a lot about tuberculosis recently. And one of the things that I learned is that the Inuit, Chinese, Arabic, and English words for soul or spirit all derive on some level from the word for breath. Like the word inspiration literally means to breathe in, to be inspired is to take in air, and to be expired is to be unable to take in air. I just find our relationship with air to be exceptionally strange, especially when you consider that for the longest time we didn't even know that air was made out of stuff. It's just so weird that everything is made out of stuff, but we don't know why there is stuff in the universe. Like we know the exact speed of light. We know what the universe was up to two minutes after the Big Bang started, but we don't know why there is matter. What a metaphorically resonant situation to be in. Sometimes I'll notice there's a high-pitched omnipresent humming sound somewhere in the house, and then I'll track the sound to a particular light fixture and turn that light off and just feel this huge wave of relief. You don't even know how loud the noise is until the noise goes away, which is another metaphorically resonant situation to be in, Hank. Happy Project for Awesome. I'll see you on Friday.


Folks, welcome to the webinar. This is about the multi time frame trend indicator. My name is Hari Swaminathan. You may have seen a few videos on this subject on this indicator before, before we jump into the trading platform and the markets are going to open in about 15 minutes.  This is a very, very powerful indicator because it is, it has the ability to capture trends across all kinds of time frames and it also works for all kinds of asset classes.  So, you know, I think you may have seen a video, but I'll just briefly describe what this, what this indicator does. So one of the things that we always have a, have an issue is when we are looking at a trend, regardless of the time frame of the trend, if you're looking at an intraday or maybe a slightly longer term or even a swing trade or even a very long term chart, you want to get an idea of, okay, it seems like there is a bullish trend or a bearish trend on this particular time frame, but how do you assess what is the strength or the momentum behind it in terms of if it really aligns with several time frames, then of course, you know, that is so much more of a powerful indicator. And so that's exactly what it does. This indicator captures trends on all time frames. So it depends on how you set up your charts, but it will capture trends on all time frames. And on each chart, it can capture trend of up to five levels of time frame depth. So it works for intraday trading, it works for long term trading and investing, and it works for all time frames in between as well. And as I said, it also works for all of the stocks and options and futures and you know, all of that stuff. So it works on everything.  So we'll be looking at this indicator on the platform as well. And I'll explain to you how some of these things work. So basically, on each chart, you're going to get five levels of deep trend analysis. And so you can set five time frames on each chart. So for example, if you were doing an intraday trading setup, you could set it up for five minutes or you can even set it up for one minute. I've got it actually on the platform, I've got it set up for one minute so that we can see some actions coming in fairly quickly this morning. And so that's really the goal here. So you can set it up for five minutes, 10 minutes, 20 minutes, 30 minutes and one hour. And so what this indicator does is it will tell you what is the trend on each one of these time frames in a very visual manner. And this is what makes the trade entry or your trade exit somewhat of a no brainer, because there is a master indicator that depicts alignment on all time frames on that particular chart. And so this is very, you know, it's obviously very powerful. And so we're going to see this in action. And, you know, go over to the, go over to the platform and I'll show you. So let me just move over to the thinkorswim platform. And what I have here, let me just expand this a little bit here. And then we go from there. So on the left side, and I'm looking at this from an intraday standpoint first. So if this is a one day one minute chart. And so the way this works is you'll see five sets of time frames over here on the bottom, if you can see the, you know, the green and red dots over here, you'll see five sets of time frames. And then you will see one above it all. And that is the master level indicator. So when all five time frames on this particular chart, when they are aligned, then the master level indicator will either indicate a red if it's bearish or a green if it's bullish. And so what we have here in the configuration, we're looking at a one day one minute chart. So the lowest level, the lowest level is going to be the same time frame of the chart itself. So which means that is going to be the one minute. And then on the one minute, you can see, at least for the last three or four bars, it's been bullish. However, the next one is the five minute, you can see the configurations right here. And you can configure this to whatever time frame you want. And I'll show you how that configuration works a little later. But this particular chart is configured for a one minute at the very bottom. The next level is the five minutes. The next level is the 15 minutes. The fourth one is the 30 minute. And finally, the topmost one is the one hour trend. And so as you can see here, it is bullish on the one minute level. However, on the other four, it is quite bearish. And then once you look at the chart, you can understand why. And in fact, a few minutes ago, if once you saw, you know, all five were being bearish, you know, it started out over here, and then there was a little bit of choppiness. But over here on this bar is when they all go bearish again. And so if you wanted to take a quick, I mean, this is of course your trading, you're looking at a one minute chart. And so therefore your trade time frame also has to be in that kind of proportion. And so if you take a trade on the one minute chart, you're looking to get out in about five minutes or six minutes. And that's exactly what this gives you. So you would have gotten in perhaps over here, because you see there's one green dot here. And generally, what you'll see is on the lowest level, you'll see choppiness because that is the lowest timeframe, which is the one minute. And so you're going to see ups and downs over there. And so if you see one dot, you may not want to get shaken out by the trade. So even if you got in over here somewhere here, you would have taken this trade all the way down to about four points on the on the on the ES. And so it's not a whole lot, but you're looking at a one minute chart. And therefore your trading timeframe also has to correspond to that. So right now, the one minute is a little bullish, but the rest of it is still bearish. And so what you really want to see is whether this bearish sentiment will continue into the into the future. I'm sorry, I didn't have the two or three bars there, but it's still now you can see. And you might have heard a sound whenever the all five are aligned, it'll make a sound to let you know that on this particular chart at least, you know that it's, you know, it's aligned that way. So this is as far as the one minute chart is concerned. And of course, the markets are going to the markets are not open right now. So this is the futures, you know, and so we're looking at the ES futures here. And so it's going to open in about seven minutes or so.  Now you can see from this bar again, the one, the one minute and the five minute have, you know, turned bullish. And so once again, you know, there's a lot of choppiness here. And so, you know, depends whether you want to take a trade on the one minute chart or not. But what is more, even for an intraday trader, perhaps a five minute chart or a 15 minute chart is more appropriate. Because, you know, it gives you some time to process the data. And even the system itself will, you know, will process the data in a much more it's not quite so choppy. As you can see here, there's a lot of choppiness here on the one minute chart. But on the 15 minute chart, things look a little bit more clear. And so all through the pre market in the last, you know, two or three hours, there was a nice bullish climb over here. And as I said, if you see one dot, if you want, you can exit. But I would say on the lowest time frame, especially if it's on the lowest time frame, if you just see one dot, you might want to just stay in the trade. And once you see, on the next time frame also, that's the time you really want to get out of the trade or you see two, you know, in a sequence, that's when you want to get out of the trade. So for example, over here, you could have gotten into the trade right there on this bar and, you know, ridden this all the way. And somewhere here, you would have gotten out of it once you see these, you know, these two bars right there. So but these are 15 minute bars.  So, you know, that's what we are looking at over here. So this is for a day trading setup. And then on the right hand side, what I have is a 15 minutes. And so the lowest level is the 15 minutes. The next level is the 30 minutes. And then the level after that is, you know, one hour. And then there's two hours. And then there's four hours. So it's still sort of an intraday kind of a trading setup. But of course, you can change all of this on your chart settings, however you want it. And in fact, I'm going to show you how this would work even for a swing trading setup, you know, how this would work over here. So obviously on the 15 minute chart things have turned bearish as you can see the lowest as well as the 30 minutes as well as the one hour has become has turned bearish. So each bar is 15 minutes. So you can see from this after this big move up over here, things have not been things have not been that bullish. And so that's how you would interpret this. And in general, you will see the lowest level timeframe changing colors much more quicker or faster. And that should make an intuitive sense because the lowest level time frames will always see the more choppiness. And so you know, you once you see one, it doesn't mean that you have to get out of the trade. But if you see two, then certainly I think that makes a good sense. Now if you see two red, you know, two color changes in both the lowest timeframe as well as the timeframe above it, then certainly that is also a good time to take off your trade and, you know, wait for the next opportunity. So ideally, you want to wait for the opportunity where all five time frames are aligned. So either you have a green dot on the master level indicator, or you have a red dot. So depending on whether you want to go bullish or bearish, you would want to wait for all five time frames. Now it also depends on what you set these these parameters as because you know, we can also set these parameters, the lowest level will be 15 minutes. The next level could be one hour, the level after that could be four hours, the level after that could be one day. And so it also depends on that. So you have to select this based upon how long you intend to be on a trade. So the best way to do this is the way I've done it is, you know, this is an intraday kind of a setup. I also have a swing trading setup. So let me show you that. And that will be the swing timeframe right here. And so now if you see, we have a swing trading environment over here. And we'll just wait for the colors to develop here. And so now on the left hand side, what I have here is a five day 15 minute chart. Okay, so five day 15 minute. And so the lowest level is going to be the 15 minutes. The one after that, it's going to be 30 minutes, two hours, one day, and three days. And as I said, you can set this up, you know, to whatever timeframe you want, depending on your trading timeframe or how long you want to be in the trade. And so on the right hand side, I have a slightly more longer term.  This could be a swing trade as well. But it's still somewhere in between a day trade and a swing trade. Whereas here on the right hand side, the three month daily chart clearly is a swing trading setup. And you can see over the past several days, we have a bullish tone over here. So if you were to get into this trade, let's say even if you waited for one or two bars somewhere here, you would still be in this trade, because everything is showing, you know, a bullish all the time frames are showing bullish. So this is very, you know, it's very powerful because you get into the trade here at this level of 3132. And then here we are at 3230. So, you know, that's 100 points on the S&P. So that's very powerful. So, you know, you can stay in this trade for so long, depending on this.  But, you know, about two or three months ago in October, we went on a bull run over here. And it just did not stop at all, it just did not stop. We went on for about two or three weeks over here. And so that would have been also a great trade. So the way you do this, these setups is once you download the indicator, you will come to the studies right here. And then you'll see the multi-time trend studies.  Now you don't need to set up the lowest level, because the lowest level will always be the time frame of the chart, which is a one day chart. And then what you'll see here is a two days, four days, one week and one month. But you can set these to anything, you can set these to anything over here, you can go up to a year, or you can come down to, you know, in terms of hours, you can come down to minutes also, you can do all of that stuff over here. So I'll just leave it as is, it's set to two days, four days, one week and one month, which is ideal for a swing trading environment.  And of course, now the markets are open. So let me jump back into the day trading setup and let's see how that is working right now. So let's go into the intraday. And this is the ES, of course, you can do the ES, you can do the spider, you can do, you know, the SPX, the SPX, of course, doesn't trade, so you won't have volume information on the SPX. But here you go. So now it looks like a little bit to the downside, let the indicators recalculate. And then we'll, we'll look at this chart again. And so the futures are up mildly about five, six points. And now it looks like it's taking a little breather here. All right, here it seems to have corrected itself. Sometimes because of all these calculations that are involved in all of these charts, it could take a little bit of time. All right, so now we are set on the swing trading environment. This is a five day 15 minute chart. And you can see that there is a bearishness at least, you know, on the 15 minute as well as the 30 minute. On the three month daily chart, you're still good.  Let me try to go back to the day trading environment. Okay, we have it on the five minute 15, a five day 15 minute chart. And now we have it on the one minute chart as well. So you can see the whole thing is now aligned to a bearish. So the market started, you know, right here. And then it's just been bearish. Now this is a one minute chart. So if you were to trade on this chart, obviously your trade is going to be, you know, in terms of a few minutes because you're trading based on the one minute chart. But if you were to trade on the 15 minute chart, you can see that four of them are lined up to the bearish side. But the four hour trend is still not lined up. Now, does that mean you cannot take a trade? No, you know, you can take a trade if you want, just be aware that all five have not lined up yet. And so you might want to give it, you know, give it some time. Now you just heard that sound that is because when all five get aligned on the chart, you know, after a break, if all five get aligned, you will you will hear that sound saying that, Hey, okay, now there is some alignment here. And so on the one minute chart, there is alignment of all five of them. And that's how you would look at it. Excuse me. Now, you know, generally, I wouldn't advise trading based on the one minute chart because as you can, you know, as you can expect, it can be very, very choppy. It can be very choppy. You can see one bar will be down or the other bar will be up and you can find it, you know, extremely choppy. So what I'll do, let me see if we can move to, but I don't want to move to a five minute chart because then the data won't come in that quickly. So this is as you know, this webinar is a demonstration of the indicator. So for that purpose only, I have put the one minute chart here, you can see now the second red dot has also come. And so a little bit more conviction, at least on the one minute chart, you have some conviction that, you know, you want to go bearish here. So and this works of course, for for all stocks and all ETFs, it works on any instrument. So it's not just for an index, it can work on every stock, anything that can be plotted on charts. So obviously for this one also to turn on the 15 minute chart for the four hour trend to turn red might take a little time. Now it could happen, you know, it could happen sometime, you know, now or it might take another few bars of that before that happens. So let's just focus on the one minute chart and see what it's, see what it's showing. So it's still showing bearish. And so now you have three red dots based on the one minute chart. So in general, regardless of the time frame, you can expect anywhere from four to 10 of these master level indicators. So as you can see, now we have three, we actually have, we actually have to, you know, five plus three eight over here. So the trend really started over here, you don't want to get shaken out just by one of these, even though that was a seems like a big bar in terms of three, two, two, eight, no, actually, just went up two points. But you don't want to get shaken out, especially if it is at the lowest level timeframe, because the lowest level timeframe is where you will see the colors changing very often. And that's just because, you know, that the lowest level is the timeframe of the chart in which case, and in this case, it is a one minute chart. But you can see now we've got three, you know, three reds at least going on.  And, you know, if you were to take a bearish trade, you would be the trade for maybe five or six minutes, because you're trading based on the one minute chart. And it may not, it may not have been a bad trade, you could have gotten down somewhere here, three, two, three, zero, it's a three, three, two, seven, three points. And if you were to play the options game, 35 delta or 40 delta, would, would fetch you a decent, decent return, you know, at least a 30% return there. So here we have, we have the fourth one also over here. What I want to wait to see if at the 15 minute mark, whether this kind of price action on the 15 minute chart is enough to change the the four hour trend, I would highly doubt it if you go back and if you see, I would highly doubt it because, you know, it's coming from here, this was a big move. So I would doubt it would change the four hour trend. But you don't have to keep it four hours, you don't have to keep this two hours, you can keep 30 minutes, one hour, two hours, three hours, or, you know, you know, anything in between as well. So but just keep the lowest level should be the time frame of the chart, you know, you just have to keep that in mind.  But as you can see now, on the one minute bar, if you don't count this little green dot over here, we have five red and five red. So that's all, you know, that's 10 of that almost consecutive. And so from testing, we noticed that generally, you know, that is, you know, that is when a trend could change at on this particular time frame only on this particular time frame on the one minute time frame, a trend could change at that point, because it's, you know, it's run out. Now on the on the 15 minute chart, you can see, you know, it went on here, here, it went on for about eight or nine times. And here, if you don't count this dot, it also and this dot, it went on for about eight or 10 times here also. So it this was a nice little trend in the pre markets, of course, if you were trading the ES futures or the ES options on futures, you could get you could have gotten a couple of good trades. So this is still bearish, it's still going down. And obviously, if you were in the trade, this would be a nice trade for at least four or five points on the ES. So now let me also say, okay, so this is as far as the ES. So how are you going to look at what is, you know, so I've got this my my market watch here. And so many people you might have seen these columns here, you know, we have a day trading algo and a swing trading algo on the day trading what I have here is the day trades column. And you can see, you have the very bullish, you have the you have the very bullish all the way till here. And then you have the very bearish that's starting and of course the day trade will be very dynamic, it's going to change all the time because depending on the as I said, you can see here now the trend has changed over here. And so this is going to change. So if you were to look at it in a day trading environment, you if you had, you know, instead of cycling through every stock that you know, if you have this algo right here for the day trades, it already tells you which one is bullish and which one is bearish.  And you can, let's say if you go to Google, the problem with switching to another one is, you know, it might take a little time, but let's just switch once and because I want to show what the bullish looks like over here. But this, this algo gives you a filter. And so that you can look at which stocks are bullish, which stocks are bearish, of course, in that particular timeframe, you know, whether it's day trades or whether it's swing trades in that particular timeframe, it'll give you all the stocks that are bullish or bearish. And so with the help of this, now you don't need to scan through every stock in your watch list or every stock on the index, you immediately get a handful, you know, handful of good, good quality candidates that have been picked out. And, and so this, you know, this becomes very, very helpful. And so there you go.  But, you know, it was in the very bullish. And even on the 15 minutes, it looks pretty good. But we'll wait for these colors to change. My senses on the one minute, yeah, on the one minute, it's already changed. It's, you know, it's turned back to red over here. But over here, I would say these bars would have been nicely green.  So if you were trading on the 15 minute chart, you know, this would be a good point. Now, obviously, also you have to bear in mind when the markets open, you have to give some time for the data to come in, because you know, every day is different, every day is different in the market.  So here we go. So we're looking at a one minute chart over here. And here Google, now just now it showed up, it showed a bullish after this bar over here. But let's see if that continues. But this is a very good example of how you can filter the candidates for that particular timeframe. So even if you're looking at a swing trading environment, and I'll show you that. So in a swing trading environment, and this is the column here. So let me customize it. I've already shown the day trade. So I'm going to take that out. Let me show the swing trading environment and see what that looks like. And what is bullish and what is not. And of course, these charts are not designed for swing trades. These are these are intraday charts. But as you can see on the swing trades, you have all of these stocks that are very bullish. You do have a couple that are bearish, which is Oracle and TLT, of course, is the bond ETF. And so those two would be the bearish. So even this algorithm will tell you which want to pick out. So I'm going to go back to the swing. And let's come back to the swing here. And let's see on this, of course, it went back to ES. I'm going to go back to Google here. Okay, Google it's saying on this particular timeframe, it is bullish, which is the five day 15 minute. Let's look at the three month daily. As you can see three month daily, it is, you know, it's been bullish. Somewhere over here, it ran out of steam. And you can see there is two red dots in the lowest timeframe, which is the daily chart. And so that would be the lowest timeframe. And so now it's come back to a bullish level over here. And if you wanted to take a bullish trade, you know, that would be that would work well. Okay, so that is how you would look at it in the swing trading environment. If you have, if you guys have any questions, please type it into the into the chat box. And we'll, you know, I'll answer those. And then what, you know, just wanted this to be a demo of how this indicator works, both on the, you know, on an intraday on a swing trading environment on a long term environment, it works for every kind of chart and every kind of timeframes. And the good thing is on each chart, you have the direct visibility of five different timeframes so that, you know, the so that you can get a good, you know, good idea. So Dan says, can you please show us how to plug in the indicator to the watch list? Yeah, so first, Dan, you need this algo. And I think you may have it, I don't know which Dan this is, but you, I think you may have the swing trade algo over here. So what you want to do is, yes, you have it, right? Okay. So what you want to do, you see this little gearbox, you just say customize, and you pick out the day trades or the swing trades and just say add items, that's it. Just like you did for your market watch, you would do the same thing over here, you would do the same thing over here. And so, and that's it. And then make sure you save your workspace and your, you know, in all of that because the next time you log in, it may not be there if you don't save it. So once you save it, it'll all be there. And you can put it right here. So you have a, you know, you can eyeball which ones are bullish, which ones are bearish on what timeframe and immediately you can, you can trigger your trades. So having shown both of these, let me bring up the website and what I want to do on this, you know, on this webinar is, so if you know the multi timeframe, the indicator itself, okay, so let me bring this over here. This is the multi timeframe indicator. Now, as you know, I have a launch special, which is for 1497. But what I want to do, it's a launch special and what I want to do is, I, for anybody that buys it, you know, I also want to throw in this algo, which is either the swing trades or the day trades. So whichever one you prefer to have, you can let me know and I will throw in that algo for free.  That way, you can have a filter right here for your trading timeframe. Now, if you want both the swing trade and the day trade, you just send us an email infoadoptiontarget.com and we'll, you know, we'll discuss that. But I have a special on the multi timeframe trend indicator for the month of December and that will be 1497. And along with that, you can either pick the swing trades or the day trades for free. And if you want both, just email, you know, email me and we'll work something out there. But that is really the special that I wanted to announce, because I, you know, I realize and of course, this algo might go through some improvements also. And one of the improvements would be to try to see if we can put a scan function. But the problem with the scan function, which my developers telling me is that you can scan for maybe one timeframe, but you know, you cannot scan for a total flexibility in how you want to design your timeframes. And you cannot put that out as a as an indicator yourself, because, you know, then people will be confused as to, you know, which timeframe you have to configure. So the better option is this kind of a thing where it gives you an immediate, you know, a sense of which stocks are bullish, which stocks are bearish. And therefore, you already have a scan function here. And that will make your trading so much more simpler, you don't have to cycle through a whole bunch of stocks, you don't have to cycle through, you know, the all the all the stocks in the SMP index and all of that, whatever is your watch list. And, you know, you just put it up there, and it will automatically tell you which ones are bullish, which ones are bearish. And so you have a filter over there. So that's, that's really what I wanted to say on this webinar wanted to do the demo first, first of all, and then also tell you that if you get the multi timeframe indicator, if you already got it, you know, and we'll work it out, you can email me if you already bought this, a few people have bought it. And so we'll work that out. But, you know, if you haven't bought it, then you're going to get the swing trades or the day trades. And if you want both, just email me and we'll work it out. So that's really it folks, it's a very powerful indicator, it can work on all timeframes. And so it keeps your trade entries very, you know, the highest probability I would say.  And so you would have at least maximized some profits. And even if you did not get out at the very top, I mean, that's impossible to get out at the very top on any trade. So, you know, the best thing you can do is try to maximize the winning, you know, the winning trade, the winning part of the trade, and you get out when you don't like the price action. So that's, that's what it is. And so, all right, so that's it. So if there's any questions, you can, you guys can send me an email info at option tiger.com. But this is really, you know, this is really what I wanted to show it's a very powerful indicator. And I also wanted to say that I'm going to be throwing this, this indicator for either the swing trades or the day trades in for free. All right. So that's it folks. Let's, you know, if you have any questions now, you can send it to me at info at option tiger.com. Thanks.


So, just to begin, older adults really constitute a larger and larger proportion of the population at large, and this is an especially relevant problem in the domain of cancer, where older adults, patients over the age of 65 actually account for about 60% of cancer incidents and 70% of cancer-related mortality. This is especially relevant to kidney cancer, where the median age of diagnosis is 64, so clearly there's a relationship between aging and kidney cancer in general, but one thing that I will say is that despite this slew of novel therapies that we've developed over the past decade, we really don't have a concrete understanding of the relative benefit and relative safety of targeted therapies, and even immunotherapy for that matter, in older adults. So the goal of my research was really to develop a general sense of how older adults do in the current era. My study looked at a total of 562 patients that have been treated at City of Hope over the past decade. We honed in on 219 patients who had metastatic disease, and amongst these patients, we divided them up into four categories based on age. Patients below the age of 55, patients from 55 to 64, patients from 65 to 74, and patients greater than or equal to 75 years of age. And our real intent in this study was to see whether or not patients in that oldest subgroup, age 75 or greater, had a difference in terms of clinical outcome. What was very interesting is that when we looked at the clinical and pathologic characteristics of these patients, when we looked at their MSKCC score, when we looked at some of the other prognostic criteria that we routinely used to identify kidney cancer patients, we didn't really see any variation between age-based subsets. However, when we looked at the treatment of these patients, what we saw is that older adults, patients specifically over the age of 75, received fewer lines of systemic therapy. Furthermore, those older patients tended to discontinue therapy for progression more often, and they actually tended to discontinue therapy as a consequence of side effects more often as well. So this is interesting data, and it really culminated in our look at overall survival. And what we found is that there was really no distinction between survival amongst patients less than 55, 55 to 64, and 65 to 74. But in contrast, the survival in patients aged 75 or greater was far lower. So we found that ultimately in terms of net clinical outcome, in terms of overall survival, older adults tend to do more poorly. And this really is a call to the research community to take a bigger look and a better look at how older adults with kidney cancer do. So perhaps issues such as side effect management and so forth, while they're certainly essential in younger patients, maybe of critical importance in older patients to allow for maintenance of dose and schedule of therapies, absolutely. Well, I think the first question out of any kidney cancer patients' mouths should be, are there clinical trials available to me? And that's something that my mentor is including yourself have taught me over the years. So your question, Nancy, was related to what an older patient should be treated with relative to a younger patient, and I think that's an excellent question. And as we look across the phase three clinical trials that have led to the approval of targeted therapies, it's really hard for me to tease out a distinction in terms of clinical benefit between age groups. And in fact, there are certain trials that actually point towards a relative benefit in progression free survival on other endpoints in older patients as compared to younger patients. So I certainly think that every opportunity that we grant our younger patients with respect to targeted therapies should be offered to older patients as well.


Everybody forced here rip in a box of 2022 Procept metal football jumbo for Justin s we go Justin. Good. Look so this is the one with the Slabbed auto and nine autos as well on top of that Lot of hits in here. Oh, they're all top of this Sean. Nice. Nice. All right, I got Brian Robinson jr 13 to 25 Got a Cade Club Nick. That's his name Cade Club Nick 20 to 25 Crazy cave on tip-a-doh Number nine of 25 Tanner McKee's these are the Stanford quarterback there six of 15 Tanner McKee Action Inc. Action Inc Xavier Hutchinson 14 of 25 a Zebra auto is Jaden Rashada Five of five Zebra Jaden Rashada Tiger now, maybe it's just an orange zebra. I don't know. It's Austin Stogner one of five Probably orange zebra Definitely not tiger Blue auto here Chris Tyree 21 of 35 Zebra auto Derek Stingley jr. Numbered four or five nice parallels here a CJ Stroud redemption Congrats Justin. Oh ask a box CJ Stroud redemption there and And the slabs pre-production proof auto is a Malik Willis one-of-one Yeah, what a box There we go, Justin. Thanks again, man. We'll get these out to you


Hey everybody, it's Tossos with RF Elements, and today we'll be talking about what's gain. Talking about DBI versus DBM versus DB. So one of the most important parameters of an antenna is its gain. Gain says how strongly an antenna radiates in any direction in free space. Gain is measured in units called decibels. A decibel is a unit of measure on the logarithmic scale, which is very useful when numbers shown differ by orders of magnitude. So let me explain this because a DB scale is often a huge misunderstanding amongst users. The range of 3 dB on the logarithmic scale means double the energy on a linear scale. Zero dB of gain, let's say, is one unit of linear scale. And 3 dB would be two units, 6 dB would be four units, and so on. 15 dB a gain would mean 32 units. Still manageable, right? Well, let's look at 30 dB a gain would be about 1,000 units, and 45 dB a gain would be equal to 31,622 units. So instead of working with magnitudes of multiples of tens of thousands, we use a logarithmic scale. So we can use much smaller numbers. But remember, a difference between 30 dB and 15 dB is not two times, it's 32 times the energy. DB simply compares signal intensity to a specific reference value. It must always be clear what that specific reference value is. DB without a suffix is used when dimensionalist numbers are compared. DB with a suffix is used for variables with a reference value, like power and watts. Antenna gain is usually given in DBI, where the I stands for isotropic. This means the intensity of the signal radiated by an antenna is compared to an isotropic antenna. Isotropic antennas is a theoretical antenna that radiates equally in all directions. So many people, including myself, often say antenna gain is 24 dB. This is typically incorrect since an antenna gain is measured in DBI units. RF videos have a range of power that they can deliver measured in DBM. Here the M stands for milliwatt, that means the power is in decibels compared to a milliwatt. Here 10 milliwatt corresponds to 10 dBm, 100 milliwatt to 20 dBm, 1000 milliwatt to 30 dBm, and so on. In datasheets, the gain of an antenna is usually given as a single number. This is the peak gain of the main lobe at a certain frequency, which is often misinterpreted as the most important of the various gain values. In reality, gain changes with angle and also with frequency. It's impossible to describe gain as a single number, and it's largely inaccurate to judge antenna based on its peak gain alone. More on this topic and others in our following videos.


One of the more inexplicable oddities of the Super Nintendo library is the game Donald Duck, No Mahono Boshi, or Donald Duck and the Magical Hat, made by SAS Sakata back in August 1995, and for some weird reason this game never left Japan. I guess one explanation why it never got localized that I can speculate is that 1995 was just too late for any publisher to invest that much into a Super Nintendo game, since a lot of folks were already focused on the next generation of consoles. I've talked about this game a couple times over the years and it's surprisingly good, better than I originally thought. And the thing is about games that stay in Japan, there's not always a whole lot of information out there, case in point with Donald Duck and the Magical Hat. The way this game starts is with a series of minigames, one has you racing around on a bicycle delivering mail while you're getting chased by dogs, another has you competing in a game show where you have to complete an obstacle course set to a time limit, one has you sneaking around a house to rescue a bird, and the other has you, uh, washing windows. The reason you have to do all this is so you can buy a hat for Daisy, and if you didn't know any better, you'd think this was the entire game, like maybe that's why it never came out to North America, because it's just a simple game for kids, but after you complete the four minigames, Donald Duck and the Magical Hat opens up as a regular old platformer, and it's pretty good. You get a health meter with three lives and three continues to get through five levels after the four minigames, and there is a password system, and you don't need to know Japanese for this one. Even the passwords are English friendly, although I should point out that there is an English patch available, made by GorgiRip, and there's a lot of story sequences here with some great looking graphics, so if you like what you see here, it's worth your time. Once you get past the minigames, you first have to clear ghosts out of a clock tower by luring them into these lights, then the game shows an overworld map and your mysterious friend reveals he's the King of the Magic Kingdom, and he's been cursed by none other than Pete, and you have to complete four more levels to get to him. It's completely unexpected and the game gives no hint at the beginning that it opens up like this, and it's not like I can read the manual since it's all in Japanese, so you'll have to forgive me for missing all this. The platforming levels kind of sort of feel like a game in the magical quest series, although you don't get the same power-ups instead. The King of the Magic Kingdom helps you with his magical hat and allows you to turn invisible so you can dodge enemies, and you also get a diving headbutt for an attack, and that's about it. The gameplay is really simple, nothing all that different from many other action platformers of its time. It's just a slightly above-average game that happens to look and sound really, really good. I do like this Mode 7 rotating level, and one of the levels is a race against a rabbit for a change of pace, and the final section before Pete does get a tiny bit challenging, which is nice. The gameplay may be limited and Donald's jump is a bit clunky, but the sprite animation and the backgrounds in this game are top-notch, and that's really what carries this game. The big hang-up is, the mini-games at the beginning are just kind of annoying, and the section where you deliver mail, your bike automatically rolls forward, and the town just loops over and over until you reach every house. But you've got dogs chasing you, cars that pop up out of nowhere. Yeah, this section looks great, but it's hard not to flail around all over the place. When you have to retrieve Grammar Duck's bird, you creep around, and again the sprite animation is great, but the tiniest little thing can wake up the dog, and when that happens, you have to start over. Sometimes I wonder if these were purposely made annoying because it's an excuse to show Donald throwing a temper tantrum, and I can't help but sit there and be like, yeah, I can relate, dude. But still, if you want to skip to the regular platforming stages, you can just enter a password and play the rest of the game. But yeah, I think I would still recommend playing Donald Duck in the Magical Hat. It has enough going for it that it's an above-average game, albeit a bit limited and kind of annoying at times. It's not as good as any of the Magical Quest games or the Illusion games on Genesis, but it's still a good time. The ending, after you beat Pete, is a surprising seven minutes long. It's kind of cool. Just don't be fooled like I was. If you want a regular platformer, then just use the password I showed earlier, and you can skip past all those. This game was never released outside of Japan, so this is another game you'll have to play any way you can. Alright, I want to thank you for watching, and I hope you have a great rest of your day.


We had it it feel as in group to find that rhythm again and get rolling offensively and defensively I mean it was great You know we started from the defense We got big stops, you know they couldn't score on us We made our shots and of course I was you know, we brought that energy So from the beginning so we just we just did what we had to do still a lot to play for what will be the key to Keep in this momentum going and building on this We'll be the key to getting keep in the momentum going and carrying this over into the next game and just just focus You know just focus you know keep keep doing what you're doing and keep working ourselves You know where's the film? It's this chassis, you know and just like like in any game and there are things what we have to do What was I guess what were the instructions or what was the feedback you got before the game that? Kenny said he wanted to see out of you. He said from me or from For me the same thing.  So he just says always keep an energy analyst.  What do you what do you feel like at power forward in you know different position against bigger guys? I mean I play my my game, you know, I think it's just my game and Game never changed, you know, you just play your game just always stay stick stick with your game and just do things to do But who would do well and you know, just keep doing them So you didn't notice a glaring difference from the one position to the other Also, you know like in the beginning of the season I started as a power forward right and then they they moved me to the small forward, so It's the same the same with all the same so stretch for you know 34 just hitting the threes like that tonight, you know Kenny comment about what a big difference that that makes how much have you been working on it to kind of get that that touch back? Lot we've been working with Chris a lot for Chris farming We've changed some things also. No, I'm like just to just you know just working on it, you know Working every day shooting shooting every day gets me getting shots And you know improving as about just just get us to give some reps, you know How cool was it for you? facing off against dirknevisky and what may be his final game here. That was actually fun because He was my coach in the outside game So and at the beginning he was guarding me as a mug like as a mug guy, so I say to him I'm not the mug there. I'll make their shots and he said alright. I made those so it was fun though It was just funny, you know talk that they don't see the person who you already know who you already talked to In the past so we were just nice to play against him Also, that was nice when you know when the when the crowd spoke him of his corridor. That was nice. I like it