So next up, we have a talk by Korean about demystifying Async and await keywords and Python and JavaScript. Over to you, Korean. Thank you, Bhavin. Am I audible? Yep, loud and clear. I hope yes. So today I will be talking about Async and Avi, which is a way to write concurrent code in both languages like Python, JavaScript, and a few more languages. It's a foundation for multiple asynchronous frameworks that provide high performance and high performance for network and web servers. So during this talk, we will be covering what is the fundamental concept behind Async and await. Also, we will be looking about what is a thing of it and how we can write concurrent code in the context of both Python and JavaScript. Also, we will be looking what are the applications and what are some of the potential mistakes which you can make as a beginner when you are writing Async and await code. So a bit about myself. Myself as Bhavin, I'm Korean and I'm working as a software engineer cum data scientist at AOT Technologies, building forms for AI and open source solution. I'm an open source enthusiast and Python is the language which got me into programming. So if you are interested to follow along with the slides, you can check the link bit.ly-async-avai-pycon. So the first time I used the keywords Async and await, I was confused. I asked the people near me, what does this keyword Async and await, which is so on Pythonic doing? And they told me it was used to improve the speed of the program. Hmm, interesting. I thought and I started looking more and more about it. Once I started looking more and more, I got confused and I got into jargons like event loads, tasks, promises, callbacks and a lot more. If you are attending this talk, I am assuming you are also confused by asynchronous programming in both Python and JavaScript. So with this talk, we will be dignifying it one by one. So let's understand the fundamental concept of Async and await with each example. So I hope you know the person in the picture. This is Vishwanathan Anand, the five-time world champion and still India's best player. Assume that we are organizing a chess simul with 24 opponents and each of the opponent is rated with less than 1500 yellow point, which is a chess rating system. So usually 1500 yellow point players are having one years of experience and they are relatively new to the game. And assume that each game is ending in 30 moves and since Anand is an experienced player, he is moving in five seconds while the opponent, since he or she may be a low rated player, will take 55 seconds to make him move. So assume that if Anand was playing the game, one player like it at a time in the simul, just like a normal chess game. So the one game will take approximately 30 minutes and almost 24 games will take 24 to 30 minutes that is equal to 12 hours to complete. Usually chess simul are not run that way. In a real chess simul, it is usually asynchronous. So what usually happens is like Anand will make the first move, then he will move on to the second vote and to the corresponding votes. So as a result, Anand is able to play all the 24 opponents in two minutes the first time. After that, by that time the opponent will be, the first opponent will be ready for the move. So by this method, we are able to complete the entire set of game in one hour because if we are playing 30 moves, 30 into 2 minutes per each round, when we are playing 24 opponents, we will be able to complete in one hour. So if you look at this compared to our asynchronous chess simul example, we are almost 12x faster with this approach. So if you are looking at the bottleneck in the chess simul example, you will see that our bottleneck was to utilize Anand to his fullest potential. In the synchronous chess simul example, we were not utilizing him fully, but in the asynchronous chess simul example, since he is playing one player at a time, not playing from one player, he is moving on to the other player, he is playing very quickly. So such a problem in computer science is called input-output bond problem. It refers to the time, if more time is spent for waiting rather than actually processing it, such a problems are called input-output bond problems. So we usually have a solution for this that is used by using concurrency. So using concurrency, we are able to run different parts of the program or algorithm to be executed in the same time or out of order. So this is like a person juggling in this picture. Now assume that if we are organizing a different kind of chess simul. This time, we are not having the normal players, but we are having grandmasters who are almost of the same level like Vishwanathan Anand. They have been playing the game for years. So Vishwanathan Anand is not able to play as quickly as he used to be playing with the low rated opponents. So what can we do? A hypothetical situation which can be shown in this picture will be to add more and more Anand. And if more and more Anand are there, we can obviously play the game faster. I know this is not possible in the real world, but for computers, most of the computers are having multiple cores. So with octa cores and hexa cores, we are able to run our program in all the cores and we are able to run multiple tasks at the time. So what is the difference between concurrency and parallelism? So concurrency can be defined as a way to run multiple tasks with an ability to run it in overlapping manner. While parallelism is when tasks are executed at the same instant. So one is about the structure and the other is about the execution. If you are interested to learn more, I will highly recommend you to check out the first API talks on Asynchronousity. And you may be thinking which is better, whether we should use concurrency for all our problems or parallelism for all our problems. It depends on the task which you are doing. So that documentation will give you a good idea about it. So what is the keywords async and await? So I will like to define it from a layman's perspective for our sake of discussion as async is a way to write concurrent code. And await can be used to train all the code can't be running concurrently, right? Some code need to wait so that such code to have a waiting condition we are using the await keyword. So you may have been guessing why I am talking async and await in the context of both Python and JavaScript. So according to 2020 JetBrains survey, if you look at the Python usage with other languages, then JavaScript is the most commonly used language with Python among the developer community. So that's why I am talking about the Python usage with JavaScript in the stock. So now let's look at the look at a synchronous program and let's see how we can make it faster with an asynchronous programming in Python. So you can see this piece of code snippet. So you can see that we have a great after function. What the great after function is doing is it is having it. It is we are passing a delay and it is sleeping for one second. After that we are greeting the corresponding person with hello, person name and with a waving hand emoji. So you can see that in our main function we have called the great after function. So we are greeting Guido and Sebastian. So if you are looking at the output, you can see that how the output is coming as expected. So first we are greeting Guido and Rosam with three seconds delay followed by Sebastian Ramirez with two seconds delay and Luciano Ramirez with one second delay. And the program is taking six seconds to execute. So if you want to visualize how it is really happening, we had three functions and function one took a long time and function two also function two had two seconds delay. So since the program was running synchronously, you can see that response two, even though it was having a small delay, it had to wait for a long time. And even response three also had to wait for a long time before it was being executed. So you may be thinking how we can improve the performance like in case of the chess simul example with Anand when we played synchronously, we were able to get a 12x improvement. So there are mainly two ways to implement concurrency in CPython. It is using threading library and using the Asingger module. So if you look at the threading module, Python threads are implemented internally using the operating system threads. And in CPython, due to the global interpreter log, only one thread can be executed so that Python codeband can be run only once. So it's highly suitable for, it's threading library is suitable for input output concurrency. So let's look at a sample code to see how we can do the same code concurrently. So if you see that we are importing the threading module and after that we are using the threading.thread module and we are passing the target and finally you are starting all the thread with thread.start module, thread.start function. So I guess you may have estimated this output. So first we are greeting Luciano Ramaldo. Even though it was coming at the third position, since Luciano Ramaldo has the least time delay it is being printed first, followed by we are greeting Sebastian Ramrous with a time delay of two seconds and finally we are greeting Guido Vendorosa with a time delay of three seconds. So to visualize the program workflow, you can check how it is. So we had three requests here as well and in function one we were executing our program with a time delay of three seconds, function two, two seconds. So in this case with asynchronous execution and when we are using concurrent programming you can see that once a function three is being completed, it is not waiting for anything and it is not having the long time delay it had in the earlier case. So it is able to be executed right after with a one second delay. So it is executing after sometime in one second once the request has been started and then we are getting the corresponding results for response two and response one as well. So if you look at the Python's threading module, Python's threading module suffers some limitation. So some of the limitations are since threads are accessing the same shared state. So if both threads are accessing the same variable then it can update the same values and it can cause a race condition. So that is bad for us. In order to avoid race conditions some of the methods in threading live like logs etc but even then also there are same limitations with it like certain tasks may not be run in case of certain threads. So in order to solve the problem of certain tasks not being able to be run and to provide a standardized implementation of concurrency in C Python the Async.io module was being introduced as part of C Python I think from the Python 3.4 onwards and with Async.io module we are able to use Python to use cooperative multitasking to smartly run all the tasks and threads. It is using Async and awaits index. So when we are looking at Async.io module we have mainly four important concepts to look at one is the coroutines, other is the event loops, three is the tasks and four is the futures. So let's look at it one by one. So a coroutine is a special function which can suspend and resume execution they work like lightweight threads and it's a type of special function which is always being defined with the Async.defs index. And only within a coroutine we can use the available in the Async.io function. Then there is the concept of event loops. So event loop is like an indefinite loop which calls all the registered coroutines in some order until they all terminate. So what event loop is doing is like it is the real reason behind our programs being able to be run concurrently. So it's just a queue based on the coroutine function. If the corresponding coroutines need to be switched away and all event loops are the real reason for this. And you can run event loops in C Python using the Async.io.run module and from Python 3.7 onwards it's applicable. And if you want to run there is also something called UV loop which is a production implementation of the C Python implementation and it's almost giving 8x improvement in the performance compared to the normal Async.io.UV loop. So if you are using something for the production you definitely need to use UV loops. Then there is a concept of tasks. So task schedule is a coroutine in an event loop and you can wrap the coroutine to create a task with Async.io.CreateTaskMetal and you can run multiple tasks together concurrently using the Async.io.ContainMetal. So this is how this is all about tasks and then there is another concept of futures. So what futures is like it's providing in Async.io a framework which is available in multiple languages like in JavaScript where we have something to connect the producers and the consumers together and to wait for our execution to be completed. So futures is something in the C Python which is in the Async.io module which is used to bridge the low level callback base code to the high level Async.io. and it's providing the function of beating. So now it's an exciting moment for all of us because we are now using the Async.io. Async.io and the wait syntax for the first time in our talk and you can see that we have used the Async.dev main function to create a coroutine and we are using the Task1, Task2 and Task3 to create the task and we are calling the greet after function which we had used earlier. The only difference with this time is we are using and we are not using the time.sleep method but we are using the sleep method in the Async.io itself because certain libraries in Async.io are not compatible with the synchronous code so you need to use asynchronous libraries for that. Then finally we are running all the three tasks concurrently with the Async.io.gather task and finally you are calling the await to wait till all the tasks are being completed. Now in the main function we are calling we are using the Async.io.run function to run the event loop and to run this coroutine so that we are able to execute the coroutine function. So now you can see that we are getting the results as expected. We are now greeting Luciano, Ramaldo first and Sebastian, Ramres, second even though they were and we are now able to run our program concurrently. So concurrently now you can see that our program is ending in three seconds compared to six seconds and it may not be just a two-experiment in performance but for any input or to want problems which requires a lot of waiting it would be when we are using Async.io So now let's look at JavaScript and how we can implement some of the Async and await syntax in JavaScript. So this is an example of a sample program in JavaScript and you can see that I don't think you don't need to go into the details of the program but we are finding the prime numbers of one million numbers then followed by thousand and then ten so obviously since the program is being running in a potential order we are able to we are able to get the results only after a long time delay. So we need to wait for a long time. Let me have a sip of water. In JavaScript there are mainly three ways to write concurrent code so it can be done using the it can be done using callbacks, promises and Async and await syntax. So we will not be diving too much into the code for callbacks and promises so in callbacks callbacks is a way to invoke a function within another function. Within the callbacks if we are like writing our conditions properly we are able to ensure that our code is running asynchronously with callbacks but to program in callbacks it's difficult and now no one use callbacks because error handling is difficult and you may have heard about callback health because in any program any part of the function that ever can happen and it's difficult to spot it. Then there is the concept of promises so usually usually in any kind of programming languages there are two types of code one which is returning a result and another which is like producing the corresponding results. So promises are a way in JavaScript to link the prompt producers and the consumers together. So it's like an email newsletter which lets all the subscribers know when the result is ready for the conception and you can use the promises if you are using with a producer you have the resolve and reject keywords to get the corresponding values and if you are using if you are using consumers you can use promise chaining with operators like then catch etc. So now let's look at async and await syntax in keys of JavaScript. So under the hood actually async and await is being implemented with promises in JavaScript promises itself but it's a clean way to avoid the promise chaining promise chaining. So what async keyword is actually providing is it is allowing a function to return a corresponding promise and also secondly it is so it can either return a promise directly or inside it it can be called the awaitables like awaitables. What await keyword is actually doing is you can return the result of the promise once it is being settled with await keyword. So once a promise is being defined and if it is returning the promise only so it is like an indicator like which we have when we had discussed in the earlier condition initially in the layman's condition or it can throw an error or an exception when we are using await keyword. So now let's look at the sample code. So as an exercise for all of you you can read this code for 5 seconds and you can can you guess what the program will be printing after 5 seconds and you can comment in the chat box. So I hope you may have checked it out by now and got the answer. So we are having an async function called say hello here and what the function is doing is we are printing hello hello first and we are using a wait function and in the wait function what we are doing is we are returning the corresponding we are returning a promise with it. So what the if you look at the promise it is having the result and reject keywords and inside it there is a settimeout function. So if you are new to JavaScript settimeout to say function which like running a running minimum after 4 seconds and like if it is being really after running like it is going to print after 4 seconds what it is it is actually a call back we will look into it more detail in the coming slides and after if after the wait function is being called you can call the console.log world to print the world function. So I hope you all may have guessed the output like this way. So we are printing hello hello Patanastras thanks for waiting world. So you may be guessing why so let me explain this and why JavaScript is behaving like this with the slides from a wonderful talk by what the heck is when looked by Philip Roberts so I highly recommend you to check it out after this talk because it's something it's an amazing talk I highly recommend you to check it out. So you can see the source code we are having we are taking the console.log high then we are calling the corresponding settimeout function and after that we are calling jsconvue and in the so first we are going to the stack and printing high first when we are calling the settimeout function the settimeout function is me initially been going to the stack since it is calling a callback which needs to be waited for 5 seconds it's going to the corresponding queues by the same time by that time you can see that jsconvue is being printed correspondingly since javascript in runtime is asynchronous in nature and javascript like in webdisk asynchronous in nature or even in notjs also asynchronous in nature so jsconvue is also printed and after 5 seconds even loop is like printing the corresponding result of the task queue and after 5 seconds it's being pushed to the stack and we are getting the corresponding message with log there so this is how with the concept of even loops and using stacks and queues javascript is able to run asynchronously in the runtime so I hope you all got it so just to summarize what we have discussed so far we have discussed that we can run concurrent code in both python and javascript using threading and async.io so I think the stable summarizes everything perfectly so now let's look where async and await is useful so it's highly useful in case of massive scaling so without burning your pockets it's helpful to deal when you have a lot of users and you want to scale compared to other approaches like threading or multiprocessing and it's used to build high performance web frameworks dealing with a lot of input output operations like jpi, tonado, ars, ttp, coart etc so I hope you all have heard from Sebastian itself that how useful async.io function is and with concurrency only they are able to get almost great performance in fast api so now let's look at some of the common mistakes which we can make as a beginner when we are using async and await I have made all these mistakes and so I guess it will be easy for all of you to not repeat these mistakes so the first mistake can be we have a function f and we are having a promise which is resolving just a number and we are awaiting the result with that promise value so if you run this program you will see that you will get a syntax error so the reason is because we are awaiting without an async function so any async, if you want to use awaitables you need to always define it inside an async function only async await will be runable the next common mistake which you can make when you are starting is using async function without coroutines so async is a way to write coroutines but we are not awaiting or anything so in python this is going to throw a syntax error but and if you want to debug more you can use the python flags for async or debugging you know just imagine this like you async and await as a bullet for a bullet and imagine that if you have a bullet and if you are just keeping it in your watch instead of going for a write this is the exact scenario when you are using an async function without the awaitables or creating a corresponding task so another common mistake is to write blocking code so and you can all check out this piece of code and can you guess what will the output be in this case let me have a simple photo so you can see that we are calling task1, task2 and and we are greeting and we are using the async keyword and we are using the way to wait for something and you know we are using async.io.sleep as I said earlier itself for implementing in concurrently but you can see that this program is perfectly equivalent to our normal concurrent code so this is why this is why it is very common to this is why it is something which we all make and so you need to the mistake which we had here was you know we were awaiting all the time so that it was executing synchronously instead of being running concurrently so in order to fix that mistake we could have used async.io.gather method to run all these free tasks concurrently another mistake which we have made is like you know never run blocking code like read after function it was waiting for 10 seconds it was queuing up our queue right like our remand loop queue it was queuing up so don't use functions like that in our code so with that I would like to conclude by reminding you all of you to say that you know async and await is a great way to you know for input or bond calls let it be any database calls, api servers etc and if you want to build a wonderful web api frameworks which where you have a lot of network latency web api has a lot of network latency async.io is any frameworks based on async and await is a good tool and in both python and javascript it is having the similar similar syntax yesterday Sebastian Rambas mentioned some wonderful people who are behind these frameworks so I would like to tank all of them so these are the wonderful people behind implementing this feature and I would like to share some reference as well so I know a 30 minute talk is definitely not good enough to cover this talk so if you want to implement look into more into it like you can check out the mtn docs or async await in case of javascript and in python if you are interested you can check out the import async.io series in htp by lukas lenka so with that I would like to conclude my talk by offering tributes to arith chenwal he was a open source contributor in fosacea a wonderful human being thank you everyone and you can find the slides alright thank you


The current situation in Bishkek is characterized by high levels of air pollution caused by factors such as population growth, unregulated construction, and poor fuel quality. To address these issues, the city and national governments have implemented various strategies and measures, including legislative reforms, improved infrastructure, and public education campaigns. Research and policy development should focus on further improving air quality through the implementation of effective regulations and enforcement mechanisms, investment in sustainable transportation systems, and the promotion of renewable energy sources. This article was authored by Kenesh O. Desupov, Julian M. A. Bubin, Arsene A. Daruliev, and others.


Hello everybody, joining us today for our NCAR Super Science Saturday event. We have kicked off the morning with a dance party, some rocket launches, and we have so many more fun things coming up throughout the day. Right now, for this hour, we're going to have a little throwback to last year's virtual Super Science Saturday event with one of our favorite experiments. And so this is a really simple experiment that you can do at home with just a few materials.  And as you'll see in the picture, some paper towels in case there's a little bit of a mess. So we're going to put a hold on this experiment for 10 minutes in case any of you need to go run around the house and dig up some supplies so that you can do this. And then when we get back in 10 minutes, we're going to show you a video recording where our friend Cecile is going to walk you through this experiment. Now this is a DIY, a do-it-yourself experiment. So we're going to play the video and she's going to walk you through how to do it and what you're going to discover from that. And then you're going to have a little bit of time in the rest of the session to just play around, try it again, and or clean up your experiment and get ready for our next session at 10.30. So we're going to leave this picture up for a little while, give you a chance to go gather your materials, and then the video for the experiment will start in exactly 8 minutes and 19 seconds. Thanks everybody. I'm going to show you an experiment that you can easily do at home, that you just need baking soda and vinegar. Here I'm taking apple cider vinegar because it has a color and I like it, but you can use any type of vinegar. And I'm taking a paper towel, and I'm going to put 3 tablespoons of baking soda, 3 tablespoons to a set one. And then I'm closing, I'm doing a little wrap here with the baking soda inside the paper towel. Then you see I have a little wrap here. Now I'm taking a zip lock bag, and then I'm going to put half a cup of vinegar, the baking soda, and I'm putting it in the bag, and I'm going to close very carefully the bag, but I'm holding the baking soda at the top, that it's not falling in the vinegar yet. And it's very important that you close very well the bag. It should be very well closed. Then there's nothing that can get in or out. Okay? Okay, then my bag is only well closed, and now I'm dropping and I'm shaking. And then what you see, you have a lot of bubble coming and the bag is becoming bigger. And this is basically CO2 that's escaping, and you see the bag, there is a lot of pressure building inside the bag. Then you see you have the bag explode with the pressure of the CO2 inside. Then it's a fun experiment to do at home. Then I recommend that you do this in the garden because you can make a mess inside. I hope you enjoy it, and thanks for watching.


Everybody forced here rippin 2021 select football hobby six box number seven picker team style break Sack here. We've got Anthony P with the buccaneers Brian S. Chargers Chad M. Vikings Kurt S Ravens Davion T 49ers Dan M Broncos Don G Seahawks Eric W Patriots Gary D Eagles Greg B Bears Harper has the Jags Jeff P Colts Jeff C Falcons Jeffrey H with the Jets Steelers Bangles and Dolphins Jeremy H Cowboys Jesse O chiefs John C Raiders Cody G Texans Lane with the Titans Matthias Washington Miguel Lyons Nicholas you has the Saints Roy M. Panthers Shannon has the bill Sean T Giants Saul with the Cardinals Spencer and Ram Stewart Z Packers and young wung has the Browns. Thanks everybody for joining. Good luck on the break Click a link in the bio if you want to join a break Conkors red titty two gloves for the Broncos 39 and 99 silver Michael Carter Jets See me for Hoco 49 of 49 rookie Jersey auto for Dallas Taylor Silver Conkors Peterson for the Vikings Donald Conkors blue Zeke Elliott Cowboys numbered 121 of 199 Got Jim Zorn 79 and 99 of the Seahawks auto Jim Zorn There's Marshall Snapshots Jalen Hurts Eagles silver premier level JC Jackson Patriots Trey Lance premier level ice a monster hit Here. Oh my goodness. We did it again Jake level Jamar Chase Yeah, Jake's done, man. Yeah, we're like it. We're like a chase hurricane today, dude Holy cow, man 12 of 25 Silver Club level TG Hawkins and Lions Silver Sensation's Mack Jones paths over club level Corey Davis Jets Mills Jalen a waddle on the field level try color nice one dolphins 20 of 75 28 of 75 Magnet for your dolphins nice silver field level sake one for the Giants get your more Jefferson Waddle silver Jacob Harris Rams rookie Ron Dale Moore The link in the bio it's late in sports cards calm and then this break is full all breaks day time are full There's a break schedule on the website though try color my home's chiefs club level 21 of 149 silver club level tears watch your junior Panthers. We don't break unless all spots are sold. So If we're breaking something already that means it's already been bought chase got silver concourse Packers Devonta Adams Nelson cheese Tyree kill Jersey card 41 of 99 Silver premier level rookie Kenneth Gainwell Eagles Do other breakers sometimes break it's like it's not full. I honestly don't know Like I've seen people do things that feel like fillers and stuff. Yeah Yeah, we don't open anything like this full unless everything is sold for it Yeah, yeah, I'm yeah Or is like you like a 10-spot filler like three people get a spot or something like that Do it anyway, I guess try color rookie field level killin mon Vikings Number 49 of 75 nice month and a diamond brown 15 of 75 rookie out of Washington Yeah, so from lowest for like most common to most rare it goes concourse Premier club and then field Silver snapshots down and cook St. Brown's silver for the Lions Orange concourse Carson Wentz Colts nine of 49 silver micro Carter Jets Yeah, that everything I think every other football is the only one that has four levels now And I think club was new to last year Silver damn arena club level for the Dolphins Mike Evans Roddendale Moore, it's a 49 rookie patch card Cardinals 35 a 49 hey, thanks for the roses guys concourse silver DK or just Dan I think Thanks for the roses man, dude. I was sending Caleb chicken legs the other day I was like, I don't know it cost five coins. I'm gonna send it to him silver sensations Aaron Jones Packers Silver Quitty pay Colts. I send him chicken legs He was on I don't know if he's on sports or gaming. He was a gaming White Jalen a waddle club level rookie for Miami Dolphins crushing it now That is absolutely nasty with a jersey match there one of 35 clean card dolphins Silver club level Muth for the Steelers Herbert silver Dax Milne rookie field level for Washington laundry Stevenson Premier's middle for MLB is called. I think it's diamond level is what the field level would be for MLB Tri-color concourse rookie for its Titans deserts Patrick 38 of 249 got silver concourse Lance nice one Niners Jimmy G Yeah, the views a bit different, right Got maroon concourse Palmer for the Chargers that one is 20 of 149 silver Hertz premier level Eagles More that's silver JC Warren premier level for the Panthers Hunter long Rashad Bateman 123 of 199 rookie Jersey Auto Ravens Let's hit Ravens good amount of Bateman today. We've seen box three Yeah, so like the field level changes the name based on like the sport. So like basketballs court side WWE is ringside UFC is octagon side. I believe So it changes for the sport Tri-color Jimmy G premier level 49ers Number 74 of 199 silver club level Bajoco Cowboys Silver concourse Rashad Slater Chargers Trey Lance field level rookie David Montgomery 15 to 75 Jersey Card Bears Seriously, Vaughn. That's kind of weird. I don't know why somebody NBA players playing those programs It's over for me level Nico Collins Texans Like if you get hurt in that program like it just looks really bad Silver sensations bucks Dom Brady club level silver Stalback Cowboys Tri-color Baker for the Browns 142 49 silver Miles Garrett field level Browns. Oh, we got sensations bucks again. Tom Brady again Silver concourse Mahomes chiefs knew some field level rookie for the Browns Purple concourse Matthew Stafford nice hit for the Rams here 15 of 75 silver premier level Eli Mitchell Niners Silver concourse Eskridge for the Seahawks Gold after the waddle rookie Giants 37 who's that Gary Brightwell gold rookie club level eight of ten Congrats Giants Silver concourse Jetsack Wilson. Geez man. Good pack Elijah Moore Wilson Lot Eli Mitchell 1275 rookie Jersey Auto 49ers Seth Williams blue premier level Shannon Sharp for the Broncos numbered one or numbered 14 of 149 Lance Briggs Auto Bears blue 68 of 99 Wilson premier level now snapshots Tori Holt Jerry Judy silver premier level hurts Let's keep it rolling. Let's see if we get another card along the lines of that tie-dye chase right there That was from this break Congrats again bangles on that thing dude try color concourse Ellinger for the Colts number 226 at 249 Niners auto Fred Warner 95 at 299 Darden Hubbard concourse orange Calvin Ridley Balkans 1949 silver Randy Moss for them Vikings Jones. Yeah, that Lawrence was nasty Silver field level Curtis Martin Jets There's a base Curtis Martin Jets field level Can I know on who 27 to 35 Vikings rookie Jersey? Long woo Silver concourse Herbie for the Chargers Maddie ice Tie-dye rookie Jersey Auto for the 49ers Traylance a hit. I guess asking you shall receive Dude, this has been crazy today Damian has the 49ers In sane That's ridiculous in five of 25.  That's Jersey number Yeah, five of 25 is Jersey number. That's a big card Well, then That's why breaks are sold out today. I rookie selections terrace Marshall Jr silver Tony Romo Yeah, and then let me make some space because that's going up here, too That's going right next to the to the chase Selection silver DK silver at well for the Rams Nice a penny Sewell field level white rookie for the Lions. You're lions. Oh linemen love one of 35 Silver premier level escarge for the Seahawks Waddle silver Brevin Jordan Texans club level Both tie-dyes like two peas in a pod Concourse Jared Goff try collar for the Rams 1 16 to 249 silver Tyson Williams Ravens Got a Jim Kelly silver for the bills move Try collar Jalen Darden bucks club level 102 of 149 a Mahomes silver premier level any pits premier level a couple more here Lands concourse. Oh, we got a firestorm first firestorm. We've seen Hi Zach Wilson rookie firestorm. There you go jets It's pretty short-printed man. We're in case for that's the first one. We've seen it's present So it is silver firestorm Granted jets we'll get that magged for you field level silver decks milled for Washington Michael Gallup 23 of 75 Jersey Cards with the Cowboys Silver concourse David Johnson Texans. Yeah, it says Firestorm and basketball while you're right in baseball. It says on Fuego my home silver phenomenon silver Javante Broncos Wallace blue Camara Saints premier level 64 of 149 silver club level Cadarius Tony Giants Purple Peyton Manning concourse purple Peyton is 64 of 75 Carl Banks Silverado for the Giants non-numbered Jamar Chase 54 of 99 rookie Jersey auto. We are literally a chase magnet right now Every single break dude Jeffrey H with the bangles Dude, this is out of control God man. Jamar Chase premier level Seriously, we are chase magnets right now Silver snapshots, Ben Ralthusberger Steelers silver concourse Fitzpatrick Titans Tyson Campbell. We've got a tie-dye after the mills. It is a DJ chart concourse for the Jag nice tie-dye Jaguars 25 of 25 silver Seth Williams Broncos premier level rookie silver club level AJ Brown as a Titan Blue club level Ian book Saints rookie 99 and 99 on the bookends Silver shoots Smith Schuster for the Steelers Trevor Lawrence selections Jag silver club level Amari Rogers Packers, you know Aaron Rogers. Sorry So he's to say an Amari now Try color Luke Farrell Jags rookie 91 of 199 silver premier level Elijah more Jets the only prayer we don't have Tim Tebow, huh? Greatest tight end in the Jags history Silver premier level Dwayne Eskridge for the Seahawks dude if somebody bought the bangles in every single I don't think it's the same person all day, but if somebody had bought them all day They still would have been doing like insanely well right now Oh four of five a green Thailand Wallace rookie patch for the Ravens Nice one Ravens Some color there concourse silvers yummy brown Washington Lawrence concourse blue Peyton Manning for the Colts numbered 138 of 199 Silver Nick Chubb Browns Hey, what's up, Austin? Hey, Ben, man Rookie selections Davis Mills can anyone go 140 to a 199 rookie Jersey Auto Vikings John Funtailer Gold are you serious? There's no way Gold phenomenon rookie insert bangles Jamar Chase What like I do not know what is going on here gotta readjust my chair and everything. I don't know I Don't know man Jeffrey, I don't know but you must be happy right now seven to ten This is ridiculous silver premier level trace segment for the 49ers. I do not know what is happening right now Oh my god, who do you guys think that is that zebra right there? Who do you think that is? I? Got one guess it doesn't look like it though. I don't see any orange on the card yet, so It looks like a Texan or a bear That like navy blue helmet Is that oh gonna be fields Alan Robinson still very nice for the Bears premier level zebra case hits Nice one bears silver concourse Smith Marseille Vikings. I thought it's gonna be fields for a second Hubbard Kenny Nwangu light blue for the Vikings 55 and 99 silver club level Derek Gore for this for the Chiefs She ran it back in my head like what if that actually was a chase? I Don't know. I think I would have to leave the room for a second God Ravens to a 35 white rookie auto Rashad Bateman. We've got a lot of Bateman today, too I know Chase is the bigger hit, but like we have had no shortage of Rashad Bateman Pretty solid player Mac Jones Silver Sensation's Pats Heinecke silver field level This is break seven. This is six box number seven a Hertz club level silver eskridge for the Seahawks Quiddipay concourse rookie for the Colts 246 to 299 tri-color Silver for up. I was gonna say a partial mulk That's Marshall Falk Despite what I was thinking in my head partial mulk Got blue premier level ed reads something a bad word 126 of 149 for the Ravens silvered famous James There we go. Let's do a recap guys. Give me a sec here Let's do a bangles and other cards recap I'm just gonna I mean the biggest hit of the break Wasn't a bangle theoretically theoretically. Obviously. We don't know values change Who's to say what they'll be even tomorrow? Cowboys Michael Gallup sheep's Tyree kill bears David Montgomery Cardinals Ron Dale Moore Vikings Kenan Wang Wu and Ravens Tyler Wallace green autos now Ravens Rashad Bateman Giants Carl Banks Niners Fred Warner Bears Lance Briggs Washington D. Ami Brown Seahawks Jim Zorn We've got Rashad Bateman Ravens on the Jersey auto simple Hoco Cowboys Niners Eli Mitchell and Vikings Kenan Wang Wu Click the link in the buy if you want to get it on the break break late sports cards.com. You had the Zebra Allen Robinson firestorm Zach Wilson Jets tricolor waddle That was a 75 and a white Jalen waddle Dolphins club level now One of 35 dolphins with nice parallels Gold phenomenon Jamar Chase Bengals numbered seven to ten a rookie Jersey auto Bengals numbered 54 of 99 a tie-dye field level Jamar Chase for the Bengals 12 of 25 and a tie-dye Rookie signature material Jersey number five at 25 for the 49ers Trey Lance Wild wild break. It's been a wild day. We're gonna get that upload and keep moving


The brand new spinoff to American Horror Story entitled American Horror Stories is finally premiering on Hulu next week on July 15th, and since we last discussed it, FX has released the first official teaser for the show. So if you have no idea what I'm talking about, make sure you check out my last video about the spinoff where I go over everything we know about the show. But if you're still watching this video, I'm assuming that you know what the show is, so I'm just going to jump into my breakdown of the teaser because there is a lot going on in it. Before we begin, I want to take this moment to thank my members for making these videos possible. I cannot thank you enough for your support. Alright, I'm going to go practically shot for shot with this, so let's just start with the first shot. The teaser opens with a drone shot over the ocean, which then travels to the skyline of Los Angeles, which then travels to a red field where we see the rubber woman outside of the murder house. Not much to analyze here as we already know that the first two episodes of American Horror Stories will take place at the murder house and will feature a rubber woman, and of course we know that the murder house is located in Los Angeles. As the rubber woman approaches the front door of the murder house, she starts to glitch a bit and even disappears momentarily. This moment, along with the teaser's final scene, makes me think that this may be a hint that these episodes that take place at the murder house might have something to do with an altering reality or a shift between dimensions, but more on that later. Once inside, we see shadows of barbed wire on the walls, although sometimes these shapes do remind me of the Roanoke Blair Witch-esque dolls, but as we see later, this pattern is really just barbed wire. If this barbed wire is intended to be a hint, my money is on an episode of the spin-off potentially taking place in a prison, as that has been a long-requested theme that American Horror Story has yet to cover. And fun fact, early plans for it the second season of AHS were for it to be a prison theme, so perhaps this show will be where they finally get to explore that concept. Then we get a little jump scare of an alien that has a very similar design to the one that we saw way back in American Horror Story Asylum, although this one has very clearly human hands, which definitely were not a part of Asylum's creature design. We are pretty certain that the second half of season 10 of American Horror Story, which is titled Double Feature, will involve an alien storyline, so I think this easter egg might be a fake out because I don't think American Horror Story will want to do double dosage of aliens after about a decade of not acknowledging their existence at all, so I find it hard to believe that aliens will make appearances in both American Horror Stories and season 10, but who knows, perhaps American Horror Stories could explore the specific race of aliens that we saw in Asylum, and maybe Double Feature will explore some other extraterrestrials. Or at the very surface level this could just be a hint that an episode of American Horror Stories will relate to Asylum in some way, but moving on we then get a look at the ceiling where we see some sort of demon with forearms and forelegs. This demon is visually very reminiscent of the ghosts of the Chen family that we saw back in Roanoke. Next we get a look at an operation room in this version of the murder house and we also see a mother and a daughter. This is most likely a reference to Charles Montgomery and the things that he did in the house's basement. Does this mean that we will be revisiting Charles in the spin-off? Next we see a tall and lanky man with some very long arms. The first thing I thought of were these creatures that will be in Double Feature, but the man is also very visually similar to Slenderman. I wouldn't be surprised if an episode takes inspiration from the urban legend of the Slenderman. There is also a frame of this man that I think looks an awful lot like Michael Myers, so honestly I can't be certain which of these references they're actually trying to reference, but to me Slenderman seems like the most obvious comparison we can make, so that's what I'm going with. Next we see three girls standing at a table of candles and their eyes are glowing red. I'm taking this as a hint that may be the three main characters in the first episode of the series are practicing some sort of witchcraft. This was something that I suggested in my other video about this spin-off as set photos showed them wearing cloaks and holding wands, so honestly I'm pretty certain that this shot is a reference to our three mains for the rubber woman episodes. Next a man with an axe darts through a hallway and this could be a reference to maybe the axe man of Coven, but the way he swings his axe makes me think of circus entertainers which supports rumors that an episode of the spin-off will involve some sort of circus, which inevitably would probably reference season four's freak show, but moving on the rubber woman then walks through a door into a red void where she becomes face-to-face with the actual rubber man. Like in the beginning, both rubber people are glitching in and out. They both draw knives and swing at each other, but it seems that the rubber woman made contact first as the rubber man then explodes into some latex bubbles. The rubber woman then rips open the void and walks through it. This definitely makes me think that the Murder House episodes will involve someone trying to alter the timeline as we know it. Maybe time travel is at play again, although I hope this is not the case, but maybe we're getting a look at the Murder House in a different reality or a different dimension or some other sort of supernatural explanation of two different realities merging. Something along those lines I think could be interesting and that definitely seems like something that this teaser is hinting at. From there the teaser cuts to the word stories, but each letter is made up of something unique that relates to at least one of American Horror Story's seasons. The S is represented by a snake, which makes me think of Coven and Apocalypse's imagery. The T momentarily looks like a crucifix, which brings to mind both Asylum and Coven. The O seems to be a reference to Roanoke's blood moon, although it also looks similar to the ring. The R is made up of skulls, which reminds me of Apocalypse, particularly its title sequence. The I is a hand that looks like the classic image of a zombie rising from the ground, specifically like in the Evil Dead posters. If this is a reference to zombies, I'll call this another Coven reference. The E in the last S look like smoke and fire, images very synonymous with Apocalypse. The letters switch up a bit, and some other symbols that can be seen are a knife, more hands, roots or veins, and then what is maybe a sickle or some medical tools. I can't quite make it out exactly, but the only season that we know for sure will be related to this spinoff is Murder House, and for all we know, the remaining episodes will have no references to any other season, but if we want to be bold and take these letters as hints as to what seasons will be referenced in the spinoff, my money is on them being at least Asylum, Roanoke, and Coven slash Apocalypse, solely because they seem to be the only other seasons that are referenced in this teaser. Like I said before, there is a lot going on in this teaser, and it's a bit difficult to make any sense of as there's no real plot or anything concrete happening, but it's always fun to pick this stuff apart as the American Horror Story ad campaigns often hide little hints here and there, but those are all of my thoughts on this teaser specifically, but please continue the discussion in the comments below by letting me know anything I missed, and just let me know what your theories are about this teaser and the show as a whole. But before I go, I want to give you guys some more updates about the spinoff as the synopses and titles for the first four episodes have been revealed. These all come from the website SpoilerTV, who gets press releases directly from FX, so these are reliable. Episode 1 is titled Rubber Woman Part 1, and the synopsis is as follows. A teenager and her dads move into a forsaken home with a grim past. As the family makes renovations, a darkness takes root within them. The episode is written by Ryan Murphy and Brad Falchuk, with AHS regular Lonnie Perestier directing. Episode 2 is titled You Guest It, Rubber Woman Part 2, and its synopsis is as follows. Scarlett enters a twisted new romance while Michael and Troy are forced to confront their rocky relationship. This episode is written by Brad Falchuk only and directed by Lonnie Perestier as well. I'm going to go out on a limb and say that the Michael referenced in the synopsis is definitely not going to be Michael Langdon, so don't get your hopes up. But who knows, it could be if this episode is messing with alternate realities, but no, I'm going to say this is not our Michael. Episode 3 will be called Drive-In and this is its synopsis. A screening of a forbidden film has disastrous consequences. The episode is written by Manny Cotto and directed by Eduardo Sanchez. Manny Cotto has a ton of television credits, notably writing a handful of episodes of Dexter, 24, and Star Trek Enterprise, but I think his most impressive credit is that in 2001 he directed Xenon the Zequal, which honestly will be hard for him to top, but anyway Eduardo Sanchez is known for co-directing and co-writing the Blair Witch project. So we have the director of one of the most influential horror films of this generation directing an episode of American Horror Stories. So I think this episode is in some pretty cool hands, but I mean Blair Witch isn't nearly as influential as Xenon the Zequal, but I digress. Episode 4 is titled The Naughty List and is about a group of influencers facing a reckoning after posting a problematic video online. This is the episode with this cast that we talked about in my last video and it is the Christmas themed episode that has been confirmed. The episode is written by Manny Cotto and directed by Max Winkler, who has a handful of TV credits, most recently writing an episode of Cruel Summer. Alright so we only have the synopses up to episode 4 so far, but let me know all of your thoughts, theories, and opinions on all things regarding this spinoff. It's teaser, the synopses, and whatever else you want to tell me about in the comments below. And I will be reviewing the premiere episode of American Horror Stories, which you know drops on July 15th, so that will likely be the next video you see from me, so make sure you're subscribed because I am excited to talk to you all about the episode. It's been almost two years since I have reviewed an episode of American Horror Story, so I'm excited. But anyway, thank you guys so much for watching and I will see you next time.


Hello, and welcome to this presentation of the features of the STM32WB's Bluetooth Low Energy Peripheral. The Bluetooth Low Energy or BLE peripheral handles all real-time operations of the Bluetooth smart system, controls the Bluetooth Low Energy physical layer, and Bluetooth Low Energy's security. Communication with the Cortex-M4 processor, which handles the Bluetooth Low Energy profiles and application, is done via a memory-mapped mailbox and the inter-processor communication controller. The BLE peripheral operates autonomously and doesn't require application Cortex-M4 involvement to maintain a Bluetooth Low Energy connection, perform scanning, or advertising, thus enabling an ultra-low power implementation. Sharing system and security peripherals is handled via the hardware semaphores, or HSM. The STM32WB supports the main Bluetooth smart features. A BLE device is either a master or a slave device for one link. The STM32WB supports eight BLE links simultaneously, with a minimum of two slaves. The terms master and slave are the link layer roles equivalent to central and peripheral. The client server architecture is done at the GATT, or generic attribute profile layer, and is used to transfer values. The STM32WB Bluetooth Low Energy architecture separates the Bluetooth Low Energy profiles and application running on the application Cortex-M4 from the Bluetooth Low Energy real-time aspects residing in the Bluetooth Low Energy peripheral. The Bluetooth Low Energy peripheral incorporates a Cortex-M0 plus processor containing the Bluetooth Low Energy stack handling the link layer up to the generic attributes profiles or GATT and generic access profile or GAP layers. It also incorporates the physical 2.4 GHz radio. For more information on the 2.4 GHz radio, see the specific RF training. Communication between the Cortex-M4 and the Bluetooth Low Energy peripheral takes place over a memory mapped mailbox and the inter-processor communication controller or IPCC using a host controller interface or HCI like protocol format to support application control interface or ACI commands, responses and user events. Different sets of commands, responses and events are used depending on the final application. A set of commands supports generic access profiles or GAPs to define the BLE link role. Another set of commands is used for the generic attributes profiles or GATT to support the transfer of values via the client server architecture. Certain vendor-specific commands are used to manage CM0 plus, CM4 and BLE IP configurations. IR is the identity root key used to derive the LTK and CSRK keys. ER is the encryption root key used to derive the LTK and CSRK keys. And DIV is used to derive the CSRK key. The Bluetooth Low Energy radio test mode verifies the STM32WB transmit and receive performance. Standard and vendor-specific host controller interface commands are used to place the device in the different test modes. This way the device can be tested using a Bluetooth tester or with a PC and RF measurement equipment. The Bluetooth Low Energy peripheral autonomously controls the system's low power sleep, stop and standby modes based on the Bluetooth Low Energy operating modes. When waking up from low power modes, the Bluetooth Low Energy peripheral detects the system's operating mode and autonomously configures its system clock to ensure the application Cortex-M4 state remains unchanged. The sharing of the power controller and reset and clock controller resources with the Cortex-M4 is managed with hardware semaphore, preventing any blocking of resource sharing. Some security peripherals are secureable by the Cortex-M0 plus to grant exclusive access to the Bluetooth Low Energy peripheral. The AES-2, PKA and TrueRNG functions can be fully secured for use by the Bluetooth Low Energy peripheral. The AES-1 cryptographic keys can be secured so that secure keys can be used to encrypt data by the application Cortex-M4. These peripherals allow sharing on a needed basis between the Cortex-M4 and the Bluetooth Low Energy peripheral. The use of shared peripherals is managed via the hardware semaphore IP or HSEM. For application cryptography, the Bluetooth Low Energy peripheral provides secure key management with features to store, update, delete and load keys. To guarantee correct real-time operation of the radio system during critical radio phases, low latency access is granted to the flash memory. During this phase it is not possible to initiate new erase and store flash options. The Cortex-M4 can obtain real-time radio system information using the radio-critical phase flag and interrupt. Each Bluetooth device is allocated a unique 48-bit device address, which is a 48-bit extended unique identifier or EUI-48 created in compliance with the IEEE 802 2014 universal addresses standard. The STM32WB provides a 64-bit unique device identifier based on the 24-bit ST Company ID, an 8-bit Dory device ID and a 32-bit unique number. This STM32WB 64-bit unique device identifier can be used to derive the unique Bluetooth 48-bit device address, avoiding having to program the unique identifier in production. Here is an overview of the peripheral status at specific low-power configuration modes. The BLE peripheral can operate in all low-power sleep, stop and standby modes, except for shutdown mode. The BLE peripheral is capable to autonomously wake up from any low-power mode without the need for the Cortex-M4. When needed, the BLE peripheral interrupts and wakes up the Cortex-M4 from C-run, C-sleep and C-stop modes. In addition to this training, you may find the flash memory interface and system configuration trainings useful.


We determine that if a graph with n vertices is connected, it must have at least n-1 edges. However, the converse isn't true. A graph could have n vertices at n-1 edges, but not be connected. But can we say anything else about it? Had a useful idea in math. Maybe not so much in life. Concrete doesn't hurt. In other words, it helps to begin with an example. So let's try to draw three examples of a disconnected graph with, how about n equals 5 vertices and 5-1-4 edges. We might isolate one point and make four edges between the remaining four points. Or we could isolate two points, joined with an edge, and three edges, joining the other three points. We could isolate three points, but this is the same as isolating two points. So there are no other possibilities. Or are there? In any case, notice that the disconnected graphs have cycles. And this suggests the following. Suppose a graph has n vertices and n-1 edges, then it is either connected or it has a cycle. Let's see how we might prove this. Now to prove an if-a, then b or c, you may assume that one of them occurs. Because remember, b or c true requires at least one of them to be true. So suppose we have a graph with n vertices and n-1 edges. If it's connected, we're done. Well, we do have to consider all possibilities, so suppose it's not connected. Suppose g is not connected. Then it splits into two sub-graphs with p and q vertices where p plus q is n. And that's kind of interesting because both p and q have to be less than n. So if we could say something about these graphs, we'd be done. So we'll use proof by induction. Given our previous experience, let's actually use strong induction. So if a graph has n equals 1 vertices and 1 minus 1-0 edges, then... while we could begin this way, it feels wrong. So let's start with n equals 3. The theorem clearly holds for graphs with n equals 3 vertices and 3 minus 1-2 edges because there's only one such graph. Now we'll use strong induction. Suppose the theorem holds for graphs with n equals 3, 4, 5, and so on up to k vertices and k minus 1 edges. Consider a graph with k plus 1 vertices and k edges. If the graph is connected, we're done. If the graph is not connected, let its connected components have p1, p2, and so on vertices where all of our vertices are still there. So if we add these up, we get k plus 1. And since each of these subgraphs is connected, each has to have at least pi minus 1 edges. If any of the subgraphs contains a cycle, we're done. But in proof, it's important to remember if you can get to your destination in spite of detours, you can get to your destination. So suppose none of the subgraphs contain a cycle. Now earlier we showed that any connected graph with n vertices and at least n edges contains a cycle. Since a connected graph with n vertices and n edges must contain a cycle, each subgraph has at most pi minus 1 edges, one fewer edge than vertices. And so altogether they will use this many edges. But remember we still have all of our vertices, so all of the p's will sum to k plus 1 and we're subtracting 1 for every component, so we'll subtract m. However, m is the number of components. Since m is greater than or equal to 2, this will use at most k minus 1 of the k edges. So that last edge has to go somewhere, since the subgraphs are disconnected, at least one more edge must be in one of the subgraphs, which will cause it to have a cycle. No, no, that's a good thing. That's what we were trying to prove. While this completes the proof of our theorem, remember it's the journey, not the destination. Whenever you prove something, you should find the contrapositive. Every possible contrapositive. So in the theorem that we proved, notice that the antecedent is actually a conjunction. Suppose g is a graph, g has n vertices, and g has n minus 1 edges. So let's rewrite our theorem so that our antecedent is an explicit conjunction. Since our antecedent is a conjunction, we can split it and get the contrapositive of two theorems. First, we can make g has n vertices with main premise, or we could make g has n minus 1 edges our main premise. Since it's probably easier to count the vertices than the edges, we'll focus on the first and leave the other for homework. Now remember we formed the contrapositive by switching the antecedent and consequent and negating both. So we have this negation of a disjunction, either or, and remember the negation of a or b is not a and not b. And while logically speaking, we can say not g is connected, not g has a cycle, not g has n minus 1 edges. Let's rewrite those so they read better. So the negation of g is connected is that g is not connected. The negation not g has a cycle is g does not have a cycle, and the negation not g has n minus 1 edges, g does not have n minus 1 edges. And so this gives us a theorem. And the thing to remember is we obtained this additional theorem from the contrapositive, which is essentially a freebie. But notice the antecedent is a conjunction, so we can include part of it as our overall premise. And so we might get, however, the contrapositive reads better. So let's swap the antecedent and consequent and negate both. We could go bargain hunting and take the contrapositive again. And let's rewrite the knots. Swap out the antecedent and find the contrapositive. You know what to do. And let's swap out the antecedent one last time. And the significance of this is our consequent, the last thing that we say is that g is connected. And so this gives us a way of deciding whether a graph is connected.