So if you don't want to be recorded make sure to turn your video off now Otherwise you we you might end up on you So welcome to this special edition and enrichment webinar from the NASA nightstand network This webinar we welcome Jessica Swann to our webinar who will take us on a tour of a catalog of digital resources to help bring NASA Jessica Swann manages the Infiniscope teaching network or ETFs Jessica spent 10 years as a science educator teaching high school earth and space biology Additionally she taught geology through an online She's been working on her NASA educational programming since 19 since 2010 in designing curriculum since 2002 Her passion is developing science literacy through her focus on bringing high-quality relevant engaging NGSS related curriculum and training to formal and informal educators. We kind of like to think of all of the night sky network Astronomers that we work with as educators because you're engaging people and helping them understand The universe a little bit better So we're all educators on this Jessica earned her BS in science education at Wright State University and her MED in educational technology at Grand Canyon University. Please welcome Jessica Swann Well, thank you so very much for that amazing introduction. I am incredibly excited to be here with you all today. I do have an incredible suite of Digital resources that I would like to kind of walk you through today It's not just going to be a hey go here and check these things out I really want to take some time and dig into some of these digital resources So if there is a resource or two that you are interested in using possibly on a cloudy nights Let's say you have people coming and it's a cloudy night You can't set up the telescopes the way you intended It would be fantastic to have something like this in your back pocket that you could pull out and use at any given time So what I want to do is to go through some of these resources kind of highlight some of the tips and tricks as far as deployment And by deployment, I mean how are you going to use this with people? Maybe point out some of the details that you might miss at first glance So that you're well versed and you will have this as a recording so you can always refer back to it But I just want to make sure that you're well versed on how some of these things work I'd also like to point out some deeper more richer learning experiences that we build Because part of ETX Center philosophy is that we build these digital learning experiences These are full-on educational experiences We use an intelligent tutoring system to identify knowledge gaps and misconceptions of our users and push them down Alternative pathways to try to fill in those knowledge gaps along the way So while that's not necessarily what you're looking for if you are looking to measure Impact of your program. I have a little idea on how you could utilize some of those resources to measure impact So with that I would like to encourage you to interrupt me at any time as I'm going through some of these Experiences and these visualizations if you have questions if you're curious about something Maybe I didn't point something out feel free to you know kind of jump into the chat Let me know what it is that you want to know I want to make sure that you have all of your questions answered before we leave today And with that I am actually going to go ahead and do a quick screen share and I'm going to share with you the Infiniscope website So Infiniscope is actually publicly available when you go to Infiniscope and you'll see our URL up here at the top Infiniscope.org there are two rows of Digital resources. These are space explorations and earth explorations Now these are the experiences that I was telling you about previously that are the full-on learning experiences They're the deep rich Educational experiences that somebody could sit down and play through they can identify those knowledge gaps and misconceptions But when someone is a member of the network also known as you when you join the network What we do is you give you access to additional resources that you can utilize So what I've done here is I've logged into the network and now when I scroll down You'll see past my space explorations and my earth explorations Down to this thing called a visualization library So what we do is we make our visualizations that we build Available to anyone who is a member of our network Oh the quick first question we have here is Mundo Spanos in Spanish It is the majority of it is in Spanish. So let me scroll back up here So our very first product that we've built is where are the small worlds? That's number one out of the gate our first year on this grant And we've used that in a wide variety of capacities I'm going to show you an exhibit version that you can use on cloudy nights But what we did was as a proof of concept. We did do a translation It is this full-on digital learning experience that is built like a And we've translated that as much as we could into Spanish so that if you have a Young student who lives in a bilingual home that maybe has experienced where are the small worlds? They can actually take Mundo Spanos home to their family and they can share it with their Spanish speaking family So it's a great way for them to be able to share a resource that they've experienced So good question Anyway down back down here to our visualization library as I said we make our visualizations available So when we build simulations for these larger learning experiences We want to make those available to our user base to the members of our network So you'll see here I have an entire catalog and I'm going to walk you through a handful of these today As I said, I'm going to tell you a little bit about the tips and tricks Some of these will apply better to you than others But I definitely want to make sure I highlight the ones that work best for you in your capacity And I think what we might want to do is start with Maybe this Apollo 50th anniversary Since we've already started talking about the moon and Vivian is building this incredible resource for you for you to use When we go to any one of these experiences these visualizations that you would like to use You see this little drop-down appears Hmm. You can launch it directly from here just by clicking preview And so when I click preview it's going to open that visualization I Am going to restart and my apologies. It is allergy season here in the great state of Arizona So what I've done here with this particular visualization is I created what I like to call a mashup So this is actually not one of our visualizations It's not one of our simulations, but what I have done is I've taken taken visualizations from the NASA community And mashed them up into a way that we thought you might be interested in using so you see here This is actually the solar system website that is hosted by NASA. So this is fully interactive. I'm just clicking and dragging I Can click here and it gives me a little pop-out of information about that particular landing site But the other thing that I've built here is I can actually take you to the different landing sites So I've embedded this thing called moon track. So I believe Vivian mentioned that you guys you there was a Brian day was supposed to be one of your guest speakers. He in fact is part of moon track I guarantee that that's what he was planning on showing you So what I've done is I've taken moon track and I've zoomed in on this Apollo 11 landing site So we can see it here. We can visit I can zoom in I can zoom out I've provided you some mission info There's a little video here And then we can go back and we can explore other landing sites Some of the landing sites actually have VR enabled So if you happen to have access to a cell phone and you have one of the Google cardboards available or you could have something that's called a dodo case. That's very similar You could have your users Explore in virtual reality just by scanning the qr code that's embedded in a handful Of these landing sites and these qr codes are actually a flyover of this particular site So here's my Apollo 12 landing site and when I click on explore in virtual reality I use that qr code It creates a flyover three dimensional experience in VR Using one of those google cardboards if you've never used google cardboard before they're incredibly inexpensive There may be a dollar or two apiece Um if you get them printed with the name of your program, they're a little bit pricier But they're so really helpful You just pop it right in into the google cardboard and now everyone's able to see in virtual reality And all you need is a smartphone that can scan a qr code And so that's really everything for the apollo 50th visualization Just a quick little interactive something that you can play with maybe it's international observe the moon night You want to talk about this or you're doing programming over the summer for apollo 50th anniversary You have this in your back pocket and you can use it as is So before I move on do you have any questions about this particular visualization? Great, then we will go back to the website and I heard a little chatter about insight So I want to show you the visualization for insight Now I can't take credit for this one either really what I've done is I've taken um Something that was built by the jet propulsion laboratory And I've mashed it up into our system so that you can use it in this full screen experience If you've never used this before This is fully exploratory you click deploy You can actually watch insight deploy. It's solar panels There's no speed up here In real time There we go. It's deployed. I can click and drag Can look at it in three dimension There's also a camera system over here on the left hand side Oops, I can collapse it. Oops, or I could break my computer that will work too I can pop it back out So this is our little camera system. It's just a little context camera camera Context imagery to help us see what where we are You can also look at little different interactive components. You can bring insight to life So you'll see here the arm is blue so I can click and drag the arm Again, I can't really take credit for this one, but it's a great little I have it all kind of in one particular spot for you so you can explore at will So we can look at little individual aspects. I just clicked this little lander here to learn about insight So if I want to learn about the solar panels, I click Gives me some pop-up information You can see it turns blue so I can see exactly what that particular instrument is Maybe I'll go to the context camera And you see there it's that little tiny blue spot.  So that is the context camera So I can click on it. So it's fully interactive So it's a fun little thing to play with. Um, we've done this with, um, some kids in in, uh Elementary school and they they sit down. They do they really explore through this and kind of learn a little bit about insights And then they kind of move on it's built perfectly to be one of those little pass-through sort of experiences So that is insight experience and so before I close it out any questions that you might have You could use this as a group. That's a great question Vivian Um, so I could see this used in a couple of different capacities You could use it. Uh, maybe set it up as a kiosk You know, maybe build it as a kiosk mode individual users could come through they could play with the experience or If you wanted to use it on a projection screen, you could do very similarly to what I'm doing right here Um, super easy to play with you can walk them through each one of the instruments Maybe you have a little additional information This is where you get to use your talents and what you know about these specific missions To really kind of draw in all of that extra information for your patrons Any other questions about the insight experience before I pop back over the homepage and move on to our next one Alrighty then we'll just keep plugging away um I'm gonna skip phases of matter here for a minute because I have a really really really cool visualization I think you all are going to be incredibly excited about And it's this stellar nursery stellar nursery is in fact my favorite of all of our visualizations Because number one it's incredibly beautiful and number two as a former classroom teacher It shows all of the aspects of stellar evolution that I could ever have wanted to be able to show some of my students Anytime I bring this it doesn't matter if you are a formal educator an informal educator It doesn't matter who you are everybody. Absolutely loves this thing All right, so you'll see up here. I actually have a couple of little buttons So I have some informational buttons. So questions on how do you use the simulation? And viewing planetary systems. So there is a little tutorial that is built in here to help the user understand So what I'm going to do is I'm going to click new star So you can create a star anywhere here within this line And to create a star all I'm going to do is to click and drag The size of the star can be anywhere between half of a solar mass to 25 solar masses So let's go with Let's maybe go 10 solar masses Oh right on And and it automatically names it So I can click on it. I can zoom in I don't want to reveal these tabs yet And now I'm going to hit play So currently this is on an auto pause feature. You'll see how time is controlled So it is set up on a logarithmic scale. So you can speed up time or slow it down So you'll see here. I have my planetary nebula I'm going to zoom out And then I'm going to go ahead and hit play And you'll see my protostar beginning to form Maybe I'll speed up time a smidge Oh This smidge really went fast There we go And so now I've created my star. I have my little planets rotating around. You'll see I have a jovian out here I can actually see them transiting as they go by It'd be great if we could have some light curves in this one But I have a full experience for that if you're interested in using that for measuring impact So we do have information about the individual star So you'll see here. It gives you how old the star is tells you what the temperature is Um, it also tells you the class of the star You can't remember where we do that Over here, you'll see where it is on the hr diagram Can also see the composition of the star as it goes through fusion And you also get access to the spectra For this individual star now, I will tell you we don't get too deep in the weeds with the spectra We do try to keep it simple because most of our users are not going to be getting Really down into the into the dirty details of the spectra We try to keep it as simple as possible because we do typically Service mostly middle school high school students. So just kind of keep that in mind when you look at the spectra So I'm going to go ahead and move back over here to composition and we'll hit play Because this is my favorite graph to watch You'll see it comes my helium. There goes my hydrogen patience Feel like it's coming soon Oh, here we go starting to expand And you can actually watch it as it consumes some of those inner planets All right, so I've hit that I'm going to go ahead and keep going so it'll expand over here in the chat Yes, I'll agreed kin absolutely my favorite This is I wasn't sure where I wanted to show all of show this to you all But I'm always so excited about it. I have to show you All right, and then we'll do our final step here And even better Is that you can do multiple stars at the same time and you can track multiple stars So I can create that one was 10. I'm going to do this. There's a five I'm going to go 25 And do one more So now hit play pop this out And I can follow each individual one So here's my new planetary nebula So I can kind of pop around and watch them all The other incredibly cool thing about this is that as you create more and more stars You'll actually see the metallicity change So we come over here to the spectra. You'll be able to see the metallicity over time And that is stellar nursery So just out of curiosity, how many of you think that you could find capacity to use this in cloudy night? Programming or just general programming. How would you like to use this? So I really am actually doing some fact finding here. I would love to know How you could use this? What would be the capacity for using it? And if anyone would like to unmute themselves and chat, I think that this would be a great opportunity to hear from you directly If you're having trouble unmuting let us know in the chat because I had to mute some of you earlier on You know, uh, this is kin from, uh, ania, california We get so many Questions about how stars are born or whatever and you know, we're fortunate that we could see nebulas in the sky but having and we have some of the ministers and handouts But the animation is just going to be so much nicer. So I'm looking forward to using it Right, it's incredibly powerful If you can really put a nice visualization in front of somebody That you know, we've actually taken a lot of time and money to build something that that looks good We have astronomers from asu who have provided the data. They've gone through it to verify They've vetted it to make sure that what we are presenting here is Accurate but also not too complex for the average user Um, so absolutely. I think this is this could be a really fantastic tool for you to have in your back pocket To be able to reference at any time or for example, you might have people coming to you asking about black holes now Now that you know, we have we've imaged a black hole You can create black holes with this and so you could do things like little challenges Maybe you have games.  What is the size of the star have to be? What is the class of the star have to be? How many stars would you have to have you could list a whole series of challenges Um, excuse me just focused around Just focused around particular events and so in this case, obviously the black hole And so lens says yes presentation on the life of the star. That's great Uh, yes, so harry asked the question of I assume you need network access for all of this to work Um, can any of it work offline? So the answer is no, it does not work offline. I'm very very sorry about that um, so you would need to actually have a Either an ethernet or a or a wi-fi connection to make it work. Good question One other question that I typically get asked is uh, the difference whether or not you can use things like iPads We can use tablets essentially anything that has a track pad So a mouse that you can click and drag that sort of thing Those are the things that will work with any of our visualizations and our experiences The one thing that does not work incredibly well is an ipad So I don't suggest using ipads for the most part my experiences most people are using Chromebooks or tablets as opposed to ipads because ipads tend to be a bit more on the pricey range, but You're welcome to prove me wrong and tell me differently All right, so that is stellar nursery I feel like this is the one that is the creme de la creme of all of the things to talk about So don't run away because I do have other things to talk you about even though I've shown you creme de la creme All right, let's see back over here the chat real quick Is there one on how we figure stellar distances? Can new subjects be requested? Oh, that's a great question So this is a question from dawn So with stellar distances um, you could Remember I said earlier that we have all of these experiences that you could use to measure impact So maybe you do something where you you use stellar Seller nursery In your programming and you'd like to see if people were interested enough in your program to go off and learn more Well, we have this thing that's called celestial jukebox, which is the full-on learning experience This one is it's all about transits, but we use a sound mechanic for transits So transiting objects will make a sound Um, we they actually the user actually ends up deriving Kepler's third law. So there is some formal education compel component to it Um, I have to hit play here in order to be able to move on you can't hear the sound, but I can hear the sound Um I'll show you I'll show you what this looks like in just a moment as we get past the video Everything that we build as far as these full learning experiences We build them to be compelling in some way shape or form Some of them are just strictly visually compelling. So we have something about mars and it's these beautiful 360 degree Images of mars from the three different rover sites This one is compelling and that We have this kind of theme that goes with it about this celestial jukebox And you earn coins along the way as you unlock these achievements Uh, we have like small worlds is a straight up game and I'll show you I'll show you a little taste of small worlds here shortly As this one loads and it's going to make this dinging sound in my ear You'll see that we also you'll see that the little Sound note there that has the x across it So we have tried to make this accessible for those that are hearing impaired So they at least do get a note. So as the object transits you get a note And what we do is we step the user through Helping them understand the distance of an object related to the sound that it makes So they have to decode distance And they have to decode period. We show them how to do those two things differently So here I'm taught that I need to use this mechanic And as I move it it's making this sound and I'm hearing it make the The little sound as it goes And as I move further away my sound gets slower and even further moves much slower I don't want to get too deep into the learning experience But I did want to give you at least a quick taste that we're using the sound mechanics. So the way that I'm The way that I'm suggesting that you use this in order to be able to measure impact is you know You can create bit.ly links And if you own the bit.ly link then you can see how many people have accessed that bit.ly link So what you could do is you could hyperlink The link to this particular learning experience into your bit.ly link And you can give those as handouts give your little quarter sheets or however you send out information with with your patrons as they've come through And if they've accessed that bit.ly link, then you know that it is a direct correlation to they connected to this content as a result of your programming So if they were really super interested in what you've done there with seller nursery or anything else that you've brought to the table Regarding seller evolution and you point them directly to this they go You know how many people you've impacted as a result of that particular programming I like that because I feel like that's a great measuring tool Um, well, I also like it because they're using our content, but that's that's neither here nor there Anyway, so that's one of the full on learning experiences. Um, does that help to answer your question? Um a little bit Don Let's do it. Maybe so Not really. Oh no I'm so sorry Um, oh because you're asking stellar distances. You're not asking about the about exoplanets That's totally my bad. I don't have that. I should have read better Um, I do not have that but I will file that away as a potential topic in the future Um over this next year. We're focusing on things like seasons. We're focusing. We're finishing up releasing stuff around eclipses um We're building a full lesson for stellar nursery, but I don't think we're doing anything with distances on that But I will definitely catalog that as a possible idea. Sorry okay Let's move on to another experience that you might like Not an experience. I'm sorry a visualization Let's do Actually, let's go down and let's look at this exhibit version of small worlds So as I told you before small worlds is actually a full game What we've done here is we've stripped all of the game like mechanic from it And we've used just the simulation with a few little buttons that allow us to kind of explore These objects that are moving in the night sky so I can toggle them on and toggle them off And it gives us a sense of how quickly they are moving in the night sky So the actual experience itself it it's um Very covertly helps the user to understand kepler's third law regarding distance and the speed of the object So here we're just straight up using the objects. So if I turn on the near earth objects There are five near earth objects five main asteroid belt and five kuiper belt objects that we have here Um, these are all from the perspective of the sun And so I'm looking for these dots that are moving across the night sky that are unlabeled And when I click it It's going to take me to it's going to launch my probe And it's going to take me to that world so that I can explore We are in the process of updating because we do have new skins for some of these small worlds And so if I click this that is actually an artifact from the game. So there's an astro caching theme So the users can go out and search for these coins or these astro caches on these different small worlds and collect 15 coins along the way So we tell them where they could go find that Or we can go and find another and let me check the chat real quick How is this different from celestia? I am A dentist I am not familiar with celestia. Can you give me more information on that? So now I'm going to hit my main asteroid belts. So I have one here We also have a new night skybox That we're going to be releasing shortly So the star field will look different. There's one. I'm going to click this one See what we found and I found series I can explore series Got some general information about series Go to find another So denna says that celestia is like a Stellarium where you can move to a planet or galaxy and show the sky from there We do not change the skybox for hours. So when we go to visit it's all It's still the same star star field. So we don't get differences in our constellations That would be how it's different And kuiper belt So just a quick trick. As you know, kuiper belt objects are uber slow So when we click the kuiper belt object, we crank this feed up so that the user can actually Find one of these objects moving in the night sky You'll see I have one moving here I'll leave my mouse there so you can actually see that it is moving off the mouse Have one here Let's make a guess maybe this one Let's see what we got I got Pluto. Yay Super excited And so we can explore Pluto quick easy Nothing too difficult Again, you can set this up in kiosk mode users can kind of come in they can explore a little bit learn about these different small worlds And then kind of move on right I should go and see I might show you a little sneak peek of the new star field If you're interested The new star field is so beautiful. It makes me happy All right, so questions you may have about small worlds then Our little tutorial is just plugging right along All right, so you get to vote. Um Actually, I'm curious. Do you ever talk about craters here on earth? Would it be worthwhile for us to for me to show you the craters of earth visualization? Yes, uh, you'd love it. Okay, great So let me show craters of earth. So this one is actually it's kind of built like a virtual field trip Um, it it actually is contained in a virtual field trip So we have marked a number of crater sites across the planet And so this is actually related to a full learning experience. It's called dyno doom Dyno doom you step into the shoes of walter alvarez and you collect all of his data along the way And ultimately have to identify where the impact is So let me click on one of these so I can kind of show you what it looks like So when I click here, I want to open my image data And so it shows me the crater I can actually make measurements of this crater crater so I can click I can get And it's diameter so you see down here it shows that this one is 13.3 kilometers across Now in the learning experience The reason that this this measurement is in there is because they've actually calculated the size of the impactor And then they've calculated how large the impact would need to be So in order to be able to find the culprit for the extinction event So that's really why we have these measuring features in there But I love it because it's just a great opportunity to be able to help demonstrate where some of these craters of earth are You can show how some of them have been erased over time and maybe do something comparative Maybe you're looking at the moon or you're looking at mars or mercury I mean what the differences are the similarities and differences are between cratering of the planetary bodies Um, and then just the sheer size of them. So I can even do the circumference of Do you see I'm just going to draw up multiple pinpoints along the way All along the edge of the crater Okay, now I'm I'm becoming more of a lumper and less of a splitter, okay And there we go. So I finish it out and it shows that it is 39.8 kilometers in circumference So I can do that for any one of these. I'll take you over to schixalube because I'm sure you're wondering There we go And this one we can't even see the see the impact But if I do click across 184 kilometers And I'm going to clear those points And now I'm going to lump real quick so we can get what the circumference is bad drawing There we go 567 kilometers in circumference.  We also give you what the the image Where the image data came from so you can go and reference those if you'd like to in your programming So that is craters of earth in particular crater you would like to visit before I close out pretty simple Okay, so ken says he likes this yesterday He was doing a moon lesson with first craters and we did the pebble and flower demo. That's great I used to you do that with my ninth graders too Kids ask about craters of earth. That's perfect awesome All right Oh, you said meteor crater. I'm sorry don. I'm I'm just now mentally catching up Meteor crater. Let's go there it is Right here in my own backyard number nine Bearings your crater coming up And there it is and 1.34 And then let's do our circumference There's the visitor center There you go. Almost there and last one 3.9 kilometers around If you've never been to meteor crater If you've never been to meteor crater It's so incredible because you're just driving and it's just flat flat flat land And then all of a sudden you see these rises these little mountains like where those come from Then you get up to you're like, oh, because it's the giant impact.  That you're picking so I have What's this one? I don't think anybody just said that one. Let me try again But I love that you guys are curious about these Come on Okay That one what else do we have? That one's massive. Let's see See if I can actually get Here we go Uh, this is one of the contenders. This is one of the ones and But its age is different So it could have been this one could have been the impactor but the age of it is wrong India Why so tiny? Here we go Two kilometers What else do we have? Oh Oh, this is the new one in russia. There we go Not the new one 100 kilometers All right over to the chat Thanks, Ron. All right, so I'm gonna leave you all to explore the remaining craters of earth. I feel like it's 15 that we've tagged Um, obviously we didn't do them all because we had a specific instructional objective that we were trying to Achieve and we didn't want to give them all of them to have to go and explore and make measurements on But it's a pretty good sampling, you know, you definitely can get all sorts of different ones So I highly recommend you all go check that one out and it's 642 So let me see. I think I have one more that you might be interested in using And that is this phases of matter now before I open up phases of matter Um I'm going to full screen this one like stellar nursery. I just haven't done it yet. So just envision that it's big Okay All right, so I'm gonna go ahead and launch the preview See full screen. You can see it It's massive So what we do is we can choose if we want to drop solid liquid or gas on the surface of the planet And see what it turns to so if I drop gas here It's going to turn into water So solid liquids and gases which you know super easy to do when you're here on earth makes sense You can also Make it carbon dioxide or methane if you want to so if I want to drop like let's go liquid methane Let me drop it here at the equator Turn sustain If I go up here to the poles are the poles cold enough Nope Not cold enough. So what I like about this particular visualization Is you can I like to issue challenges To kids as they come by my table be like hey Figure out where on earth you could drop a methane in order to make it snow methane And see if they can find it But we don't just offer different materials We also offer different bodies So you can go to mercury venus moon or mars I like to take them to mars and have them figure out where water is and so they end up having to drop water There is like two little tiny spots I've done this enough that there are two little tiny spots on the surface of the planet that could support liquid water Um I mean, they're super tiny And like I said, it's going to be a lot easier as soon as I full screen it Because this will be larger a larger interactive There are graphs that are associated with this But I feel like they actually detract from the experience Um here you can play with the temperature and the atmospheric pressure But that has what you see here in this chart actually has zero impact on what's happening here and vice versa So these two things are at work in isolation So what you do is you drop your solid liquid or gas onto the surface of the planet See what it turns to or you can come over here and you can explore On this particular planet or you can come over here and explore How the pressure and the temperature will affect the state of matter. So those are two different interactions And I see we have a question okay and And then there's also this plot graph and we have other reasons that we use this So again, probably more of a distraction than it is a help But yes, this is what I like to do with this one I just kind of play around with it and issue challenges to people as they come by and see if they can figure out Where they can make different states of matter of these different of these different substances Or have them make predictions And then you could open up this graph and you could teach them a little bit about Uh pressure and temperature and its impact on states of matter And that states of matter affect more than just water. So that's a common misconception I even found even among Students that I used to work with that they whenever you refer to solids liquids and gases they really only connect that To water And that's really our fault in the education system because that's really all we teach them So actually applying that to other substances Does them a great service So that is phases of matter Any questions on that one is that one i'm actually curious would anybody use that do you ever talk about that in your programming the states of matter Could you add enough to make greenhouse gases like is that Something that you could visit is it cumulative? It is not cumulative. I know that um We're talking about doing something with greenhouse gases I do have a sim If that's something that you guys are interested in let me know So vivian, maybe you can do a survey and find out if that's something that that your astronomers are Interested in or we could do a quick informal survey here. I think I do have a sim that's that's in the same course as this one I I know that it went through the rebuild because we we converted all of our sims from flash over into html I can look into it and see if we have one. I'm not sure if we do So then that would be that that would be the next question So I see I see a lot of people saying regarding this one that you don't do it not so much Um, but don's is not usually but now you have a tool that you could do it If you had one for greenhouse gases, would you all use it? Don's giving me the thumbs up as is harry and denis. All right, okay That's probably enough data. Um I'll have a chat with the team over the next week or so and see what we can come up with There was a question about sign in can anybody get a sign in jessica Anyone who is a u.s. Citizen can get a sign in as long as they're an educator Yeah, and you all are educators So and it's totally free. Um, so all you need to do let me log out real quick I'll show you what what to do here So when you go to our website again, it's in finish scope.org Go up here hover over educator login and click this sign up And you just fill out this short little web form And then I go in and I manually Create all of your accounts So you'll get a little email from me when we generate your accounts And so you'll use your email address and your temporary password to log in And once you're logged in you get access to all those visualizations and you can use them at your will So jessica, I notice on that on that little survey there that Most of the amateur astronomers are probably Be more informal educators is um, is there a way to Show that I guess other there Yep, could be other And then does that checking other does that change the next Um sort of chop boxes You asked me about the type of institution You could probably just say am an astronomy club. Yep. You can say that you don't need a school No, you address no not at all cool. No That's all I need and then just tell me what typical age groups you usually work with And you know subject shot, you know, you could probably skip that one. That's not incredibly necessary Because you're going to tell me that you're an amateur astronomer here And then even if you could under how did you hear about us? You could do other and then put that it was for this webinar. That'd be great That just helps me keep track of how what kind of impact we have with our outreach Any other questions about your free account? So since these folks are working with a wide range of ages of the general public Um That's not necessarily a choice for grade levels or formal education centers. Right What should they put Since they're more informal working with the general public I would click them all because if you work you're pretty much working with every age group Good question I will show you one other thing that you do get access to when you become a member of a network So it's not just the content, but we actually also have a community space And so if you click on community when I create your account, it takes you to this place called the hive space So this is where all of our educators are coming together and um, you know having conversations. They're sharing resources I do have this informal education tab I'm actually looking to kind of rework some of my discussion boards just based on the way that our conversations are currently flowing But we're also doing some crowd sourcing for svs the scientific visualization studio So this is where our educators are going in and they're tagging video content to make it easier for educators to search the svs site For the content they're looking for for their programming or for their classrooms The other thing I want to show you is I have this community events tab You can actually announce your events here under community events So if you're hosting an astronomy night You can put it here. Make sure that you put in, you know, where your location is so that people that are local can find it Um, each individual member has the ability to be able to turn on specific notifications So if they have notifications on here for community events and they want to know more about Who's hosting events and where as soon as you post here in community events it automatically triggers a notification to them Um, so that they they're queued in to go take a peek and see what's happening in the community event section So that is your section, you know, the only request I have is that you don't tell me about your um Garage sales or you know rummage sale that sort of thing Don't sell your sofa here, but tell me all about your astronomy that you've got going on So Kathy had a great idea. Um, we have tons we have about Between 15 and 20 events a day across the country. Oh my gosh happening astronomy events for amateur astronomy clubs probably about Well between 10 and 15 of those are public Events if you have any interest in pulling those into your feed, you're more than welcome to we have a way to set that up We've done that for other Like when we have world space week, they pull all of our public events into their feed and So we're happy to help work with that if you're interested. Okay. Yeah, we should have a conversation offline. See how we can make that work Yeah There's no need Kathy to do it over twice. We'll try and feed that in Thanks, Kathy Yes, I agree That is a fantastic idea So I want you to know that all of that stuff is also available. That comes also free with your membership So you have access to educators. You can invite them. I have a network of um, I currently have 2,200 educators in my network um, and so the the makeup of the network currently has about 75 formal educators 25 and formal And so I serve as librarians museums science centers and now astronomers So are there any other questions that you all have for me? I hope you all are excited about the free resources and hopefully you find capacity for using them Um, you know, I'm all about making sure that you have the resources that you need to be able to do what you do well And so if there's something else, you know, if you see one of our learning experiences the full ones And we don't have a visualization From that and you go man, I really wish they would give us access to this piece of it. Let me know Um, I typically end up building all of our visualizations Um separate from our regular team So if you just let me know what it is that you're looking for to have as a visualization If we have it I will find a way to build it for you Uh, so don says to be clear the educators that you mentioned could they be tapped for providing presentations at club meetings? um I'm I'm not super clear on what your question is don meaning could you Can you put a call out to the community for presenters to your astronomy club meetings? Because I mean it is the community. I mean you're more than welcome to try to engage with anyone in the community um Yeah, absolutely. You can engage with them. You can actually send personal messages. You can do instant messages There's a chat feature that's associated with our community So you could reach out to individual educators and see if they would be interested in working with you Great question Well, I sincerely appreciate all of your time. I'm so glad that you all were able to make it today I really enjoy being able to share these resources with you Um because I am the community manager if you have any questions comments concerns If you need anything feel free to reach out to me And I will do my best to make sure that you have access to the content that you're interested in acquiring Thank you, Jessica. Maybe you could put uh contact information in uh the the chat if you're Absolutely, and if uh, when you have a moment, maybe you could uh, stop sharing your screen. Oh, yeah, that would be helpful All right Well, thank you so much, Jessica. This is fantastic This is uh some really great resources to be able to use to enhance anyone's outreach efforts And so this is really great. So thank you so much You're very welcome and thank you so much for having me and taking the time to set this up so I could share these resources


So, before we start, I just want you to understand like what kind of a crowd we have. So, how many of you are UI developers? Any UI developer? No. Okay. And automation developers who primarily do UI automation? Okay. So, good. Okay. Because the session which I will be conducting today would be useful for UI developers as well as UI automation guys. So, okay, so let's get started. So today I'm going to talk about how you can add a flavor of Chrome DevTools to your Selenium UI automation scripts. So, we'll be talking what exactly is Chrome DevTools protocol, how it can help in your UI test automation test and how you can blend it with your Selenium based frameworks. So, moving ahead, a quick disclaimer. So, all the opinions which I'm giving solely mine and nothing to do with my employer, that's important. Okay. So, I'm Amit Rawat and I'm a civil engineer by qualification, but I work as a test automation architect for one of the investment bank and my like passion is development. So, in my free time I try to develop a lot of stuff. You can find me on Twitter, medium, so that's my handle at the rate Sahaja Amit and that's my website, so you can reach me over email as well. So, that's my personal blog, so you can find me here also, so I try to write some interesting articles there related to test automation stuff, so you can read some stuff there as well. So, I also have a small story, so I wrote a blog around, you can say it's around November 2017 on a similar topic where I said like Selenium plus Chrome DevTools make a perfect browser automation recipe. So, this was the time when Headless Chrome came and like Chrome DevTools protocol got lot of traction. So, just wanted to tell you Chrome developer like Chrome DevTools protocol is a quite old protocol. I think it was used in Chrome since last 7 to 8 years, but during that time frame because the Headless Chrome came and this particular protocol got lot of limelight, it got lot of traction, people were talking about it and lot of new tools were coming into the market like Puppeteer, Cypress, JavaScript based tools and which were leveraging this protocol primarily to drive the UI, which is little different from the way Selenium drives the UI. So, we'll be talking more about it in the coming slides. So, this tool, this particular blog was quite hit, it was like right by 26,000 people and I got lot of messages, emails also in the comments on this blog. So people were really, people found it really interesting and it solved lot of problems for them which Selenium cannot do for them. So, this talk is a kind of extension to that blog. So, today I'll be talking more stuff which I did not talk about during writing this blog and in the last 2 years that protocol has evolved, so I'll be talking about more methods in that protocol to do more advanced stuff. So, at any point of time if you have any questions please feel free to interrupt me. So, modification, sorry, motivation for this talk. So when like, so see, reached me to like give a talk in this event. So I gave a different topic initially that was like Selenium Grid, how you can create a Selenium Grid in your, in a private cloud infrastructure using OpenShift and Kubernetes. But the next day I watched a video on Google IO 2019 that changed my mind, that I should change my topic and I should talk more on this particular protocol and have to clear some doubts. So my like role also involves a lot of evangelism about test automation. So my job is to educate my seniors, my employer, even my community, like what, which is the best tool to do UI automation, how different tool stands against each other, how Selenium is different from Cypress, how Cypress is different from Puppeteer, what is WebDriver IO. So there's a lot of confusion right now and a lot of people are moving to JavaScript based frameworks. So I just wanted to clear some, some air in that particular area. So this talk was given by two Google engineers where they talked about a tool called Puppeteer, which was launched around two years back. And it's solely developed by Google, they maintain the code. And where what they did is they exposed a Node.js based API to drive the browser. So it's, it's a different from a way Selenium drives the UI, which uses a JSON wire protocol. And it's a standard API across all the client mindings. But this is a completely different API from Selenium where they, it's a more of asynchronous base API, you can drive the Chrome. And, and in this talk, primarily they highlighted these features. So if you see the features like you can emulate geolocations, you can track the network, you can mock the network, you can do service workers testing, you can do device emulation, right? And they talk more about like how to get the performance logs from the browser, how to crash a browser. So, but in this talk, they never mentioned whether all these things are done by Puppeteer or who is doing this all magic. So as an automation guy, if you watch this talk, you will, your takeaway would be like Puppeteer is quite a cool tool. It's much better than Selenium and let's move to Puppeteer and stop using Selenium. So I just wanted to clarify on that aspect. So whatever Puppeteer does is under the carpet done by Chrome they have those protocols which Puppeteer uses. So that we'll be covering in detail today how that protocol works and how you can integrate that protocol with your Selenium test moving ahead. So what is Chrome Debug Protocol? So if you go to the remote debug.org, it's a, it's a quite old protocol. So it's, it's kind of a standard. Still it's not a W3 spec like a Selenium. So this protocol was an effort by all the browser manufacturers where they want to bring all the browsers at the same protocol. So if you want to debug a Chrome using a remote interface, then it should be a standard way irrespective of the browsers. So and with that effort in the last few years, we have seen like most of the browsers now have a similar kind of a protocol. So now IE can be debug using the same remote protocol. Even the Firefox can be debug safari also. Even Oprah is not listed here. Oprah also uses a similar protocol. So you can go to that URL and find more stuff about that protocol, how that protocol works. So Puppeter kind of a falls in that area. So what Puppeter does, it directly talks to the Chrome remote debugging protocol. And that protocol talks to the Chrome using a web socket based interaction. So the objective of this talk is to bring Selenium also here. So how you can use Selenium and talk directly to the Chrome for that stuff which Selenium cannot do. So all that stuff which we saw like faking geolocations, mocking your responses. So all that thing how you can do in your Selenium scripts. So this is a typical cross sectional view of a Selenium based transaction. So when you are running a Selenium test in any of the language. So you have a client library, which is the client binding, depending on which language you are using. You have a Chrome driver executable, which is a server provided by the browser manufacturers. In Chrome, in case of Chrome, it's developed by Chromium team. And you have a Chrome, that's the browser, where your application and the test runs.  So when you fire any command like launch Chrome driver or find element. So from your client binding, it makes a REST call, which is a JSON via protocol. And that call goes to the Chrome driver, which is a server, which exposes a REST port. And your command is interpreted into a native protocol, which Chrome driver talks to the Chrome. So nobody knows what exactly is that protocol. So we have a question mark there. And as an automation tester, it has been abstracted from us, because it's not our business how Chrome driver talks to Chrome. Because we are more interested in the Selenium protocol. So, but here the question is, because there are few things, not few. Now I would say there are many things which Selenium cannot do. And still as a UI automation guy, you have to do all those things, because that's part of your ecosystem now. So how to bypass Chrome driver and talk directly to the Chrome in a native protocol, which Chrome driver uses. So, irrespective of browser, this interaction is exactly same. So in Firefox, we have a Gacko driver. In Microsoft Edge, we have Internet Explorer driver. And even for Safari, we have Safari drivers. So now we know Selenium is a W3 spec, which is a standard now, and all the manufacturing, all the browsers, have to kind of stick to that particular protocol, and they have to support that particular specification. So this is a view of a Puppeter interaction. So how Puppeter works? So Puppeter is a NPM module. You can just install it from Node package manager. And it has its own API. I'll not go deep into that API. But it internally talks to the Chrome using a remote debugging port. And it sends some web socket messages. Those are asynchronous messages.  Asynchronously, you have to just keep an eye on those messages and have to make some understanding what's the state of the browser. So for launching a browser, you have a particular message. Then to opening a URL, finding the element, interacting with the element. So all those things are controlled by a web socket messages, which is a asynchronous protocol compared to the JSON via protocol, which is a more of a transactional base of protocol. You send a request, you get a response. But here, even if you're not sending a response, you can subscribe to some events and you can keep getting responses.  So the whole idea of this talk. So after this, maybe I'll move to the demo part, where I'll show you live demos, how we are doing all this stuff. So here the point is, in your typical UI automation, you have your client library. You are talking to a browser using Chrome driver.  But there are a few things which you want to do out of the box, which Selenium doesn't support. And we have to understand Selenium is a standard now. And if Chrome supports something, Selenium will not include it in their protocol, unless all the browsers start supporting it. So they have to keep all the browsers in sync. So here the point is, if you want to do a service worker testing, or a testing of push notifications, or if to mock a response, or emulate a device, then you should not be dependent on Chrome driver. So you can still use your same code, but you can have another session, which will talk to the Chrome, but not using Chrome driver. It's directly talking to the Chrome using, like Chrome's remote debugger protocol. So a small note, so till Chrome 63, there was a limitation of Chrome. You can only debug Chrome using one session. So if one of the client is talking to the Chrome and debugging it, no other session can connect to it. So that was stopping us to have two sessions. So in Chrome 63 onwards, they added a multi-client debugging support, where you can have multiple clients debugging the same browser. So that way, because when you are using Chrome driver, Chrome driver opened a session, a WebSocket session, but now you are completely independent of that interaction. You have another session, and you are just passing your different messages, and both these sessions will run independently. So any questions still now? OK. Just for knowledge, can we use the WebSocket algorithm? So JSON wire protocol is the Selenium now. So when we say Selenium is now is no more a tool, it's a standard. So if you remove client libraries, Selenium is just a piece of spec, which every browser manufacturer has to comply to. So that spec is, if you go to the W3 spec on GitHub, so you will see it's an API documentation, which says it's a JSON wire protocol. If you want to open a browser, you have to send a post method to a particular host import, and in return, you will get a session ID. Same like for finding an element. So it's a standard. It's an API documentation. Every browser have to expose a kind of a service, like Chrome driver or a different drivers. And then you have to make a REST call, and you will get a response back. So this JSON wire protocol is a REST API, which every client binding, whether you as a Python, you're using Go, or Java, C-Sharp, or Ruby, Perl. So all these libraries are making a REST call. So when you are debugging Chrome using Selenium, your browser doesn't know whether you are driving the UI from a Java-based language or any other language, because for them, it's a REST call. From WebSocket, so first of all, there is no Chrome driver there. You are directly talking to the Chrome using that remote debug protocol, which is still evolving, hasn't become a standard till now, like Selenium. But most of the browsers have exposed a kind of a synchronous protocol called remote debug. And you can use that WebSocket-based protocol to control the driver. So that's more native interaction, I would say. So if suppose Chrome added a new feature in that protocol, you can immediately get it if you are using this particular channel. But if you are using that channel, then you have to wait for Selenium to add that feature to that particular protocol. So today, we'll be talking more on Chrome remote debug protocol, but having said that, the other browser's protocol also, I would say, 80% to 90% similar, because I've shown you that it's a standard. Now, if you go to remote debug.org, there they talked about. So Chrome is a kind of a leader which is taking this effort to bring all the browsers to that same level, so that we can have one protocol, standard protocol, using the same protocol, you can debug any browser. So OK. So that's just the slides I have. So I have more of demo. So now what we'll do, we'll see some live demo, and we'll try to do all these items and see some like test running and see how we can do all this stuff. So I'll go to my ID. So I have created a small project. In the last couple of days, I tried to bring all the pieces together. So there, you can find a lot of the stuff which I have talked about. So you can do all those stuff, and we have different JUnit methods and some other supporting infrastructure also to do this interaction. So if you're not familiar with WebSocket kind of a channel, so it's more of a persistent connection. So in a rest, it's not a persistent connection. So you make a connection, you send a request, you get a response, then that's it. So one transaction completed. But in a WebSocket-based transaction, you have to continuously have a persistent connection to the server. That's why it's very fast. So because if you want to listen to the event, so suppose you want to subscribe whenever. So yeah, so let's take another example. As a UI automation, we always struggle when pages loaded completely. So when you navigate to a page, sometimes on a single page application, it's very difficult to say page is completely loaded because continuously events happening. So in a technical way to say a page is completely loaded is when all the network activity is done. So there's no more network activity happening. That means page is loaded. So now you can proceed with your test. So if you want to subscribe to an event, when there's no more network, let me know. So that protocol can help you to listen to those kind of events. Let's start it. So I will start from before going to those items, I have a very small fun element. So I'll just show you one small test, which is a kind of a fun item. So I hope you would like it. So here what I'm doing, I'm trying to mock a server response on one of the website. And let's run it, and then we will see how it's working. So let's assume, as we know all Singaporeans, we, everybody loves durian, right? So let's assume there is a durian day. And everybody wants to see durian during that day everywhere. So if you open any e-commerce website, you want to see durian and nothing else. So suppose today is a durian day, and let's see how a typical e-commerce website would look. So I'm sorry, I'll be using Carousel first. As we are in Carousel office, so it will open a browser and open a Carousel website. So this is Carousel right now live. I open. And you can see everywhere durian. So that's the power you will get with this tool. If you go view more, so you will not see anything else apart from durian right now. Because today is durian day. And it's just not limited to Carousel if you go to lazada.com. Sorry, it's down right now. Oh, sorry. So yeah, Lazada even likes durian more. They have a background image. So you will see durian everywhere. So this inspiration also I got from the same talk where those Google to engineers not use durian. They use the cat. And they showed up to it a home page where they try to show like using puppeteer you can do that stuff. But I just wanted to let everybody know it's not the puppeteer which was doing that work. It was the protocol. So we'll stick to the protocol rather than the tools. So here I have done this using the selenium Java. It can be done in any language using selenium. So let me stop this. So let's understand what this protocol is. So I'll quickly start a browser. So what I'm doing is I'm starting a Google Chrome. And you can see I'm using a remote debugging port 9222. So anyways, if you open a Chrome, it opens a debugging port. But that port is random. So if you want to know which port you want to run this protocol on, so I'm giving explicit port. And I'm using a user data directory to open a clean profile. Sorry. OK, I think Slash is missing. Yes. OK, so it has opened a new browser. Let's open Google.com. And now what we'll do, we'll go to any other browser. And let's do localhost and 9222. That's the port we selected. So you can see it is showing you there's one page which you can inspect using this protocol and which is the Google.com. Just wanted to clarify, this approach can be worked on mobile browsers as well. So if I'll attach an Android device into the USB port, then I can debug the view ports which are running in a browser as well as the view ports, the web views which are running in your native applications as well. So if I click here, so it's a typical DevTool window, which you see when you try to inspect a window. But here I'm doing it remotely. So if I give you my IP, you can open the same view. And you can debug my Google session which I opened from your machine as well. So this is about the protocol. Now let's move ahead. So here you can see. So this is a Chrome DevTools UI, which is also developed by Chrome, like Google Team. So it has a lot of capabilities. So the beauty of Chrome DevTools is they are much advanced than their competitors. So if you see a DevTools of Firefox or Safari or I, they don't have that much capabilities which Chrome gives you. And they are constantly building newer stuff over this protocol. So I'll close this now. OK, it's done. So now we'll go all of these items one by one. So let's do a fake geolocation first. So in Selenium, there is no easy way to do geolocations. So if your website is a location sensitive, there would be a test where you want to know if someone in London opened my website how it would work. Primarily, if you think of companies like Uber or Grab, and they want to calculate the distances from your current location to their locations, then you have to test it from different locations. So how you will mimic a fake geolocation? So first, let's see it running. And then I'll show you how it's working. I'll put a breakpoint so that we can see it. So it will open Google and try to click on that small icon that what's my location. So as soon as the page will open, you will see it will show the current location, which would be the Singapore location. So it's like Bookit Mararite, somewhere near. But now suddenly, you will see it's changed to Googleplex, which is the way I have configured it. So I want my current location to be Mountain View, which is Google's headquarters. So right now, it's changed. So for this session, it's completely changed. So we can take a screenshot. And in the screenshot also, you can see this thing. So let's see how we are doing it. So if you see, let me just maximize this. So I'm launching a browser. So the way I'm launching the browser is the same way. The Selenium launches it. But the most important thing is the socket URL. So in my code right now, I don't want to stick to a port. So sometimes your last is having closed the port correctly. So it's better you let Chrome decide the code.  So what I'm doing is in this particular method, I'm seeing some Chrome logs. And I'm trying to figure out which port it is running on. So this is a CDP client. So this is a small class I created as a client for the Chrome DevTools protocol. So what it does, it makes the WebSocket connection. It sends messages. And behind the scenes in another thread, it keeps a track of the messages coming from the server to you. It stores in a blocking queue. And later, you can just go through those messages and filter them as per your need. So let's do it in debug mode. So if you see the WebSocket URL. So here it's a local host. And that's the random port I got it. And that particular ID which you are seeing is the Selenium session ID. If you go to my driver. So here you can see it's the same ID, dbc. So I have figured out the URL. Now what I'll do? So it will make a connection to the URL. And it will make sure a connection, a persistent connection has been made to the server, which is a Chrome here in that case. And now I have to send different messages. So here the beauty is now you have a connection. You just need to figure out what is the message to do your work. So in my case, I want to mock a location. So I have to figure out how that message needs to be sent. So to do that, let me close this. So if you do in Google Chrome DevTools protocol, so if you go here, so if you see here, so they also have a protocol to control V8 engine. So if you're working on a node and you want to do similar things with the V8 engine using node, so you can do that. But we are using the stable one. So here if you go and search geolocation, so that's my method. So it says to mock geolocation, you need to build a particular method, which the method name would be emulation.sat geolocation override. And it takes three arguments, your latitude, longitude, and your accuracy. Accuracy means you want to simulate the GPS is weak, and accuracy is 80%. So but in our case, we have used 100% accuracy. So now I just need to build this message with these three parameters, and that's it. I'll send it to that particular rocket connection, and that particular job will be done. So if we'll continue this, so here if you'll see, it says sending this message, and in the response, it gave you, I think in the browser I killed it. So if you see the response, so it gave you no errors. So this is the ID, the server gave you a blank result. That means there was no error. So in case you use a different method, which is not a correct method, not understood by Chrome, it will give you a proper error message. Moving to the next one, network tracking. So I think in Selenium, if you are familiar with Selenium bugs history, so there was a bug which was very popular in Selenium space, like if I want to know the response code of my network calls. So if I want to know whatever I made a call from the browser, response code is 200. So right now it's not doable in Selenium. If you want to do it, you have to bring a proxy in between, a tool like Charles Proxy or I would say any other proxy tool, like there are many proxy tools. So you have to bring a proxy tool in between, you have to intercept the request, you have to get the response. But without introducing a proxy tool, if you just wanted to know what's the activity happening on network, what's the response I'm getting from network, what are the status, what's the response code. So let's see that happening. So here I can see, you can see I'm building a build network-enable message. And if you see, here I'm saying network.enable. I'm giving a maximum buffer size. So what it will do? So in a way, I'm subscribing to the network events. So any event will happen on network, whether you make a request, you get a response, any kind of a network activity, be it a web socket, be it an API base, it's an image, it's a document, anything. It's a CSS load, it's external. So you can, so you'll get all the events which are happening in your network layer. So let's go and run this. So what I'm doing is I'm running a small URL, which is a patchstore-swagger.io. It returns your JSON, and we'll see that JSON, which we see on the browser, is kind of monitored in our logs as well. So this is the response we got from this. So I wanted to see the same response in my network layer. So if I'll go to the console. So here you can see, I'm saying here's the network response, and it's the same JSON which you got on the UI, you got it. So this way you can get any response. You can filter them by wildcard expression that you are just interested in a specific kind of a responses which have that text. You can filter them by URLs, or you can filter them by images, documents, CSS. So if you see the durian thing I did, so what I was doing there is I was just intercepting all the images which are coming in my browser. I just intercepted them and giving my own images and continuing that intercepted request. Any questions till now? Yeah. So in this particular test case I'm just demonstrating that whatever network activity happened, right? So I just hit a URL. So this is a URL. I try to hit it into my browser. And so I'm seeing this response in the UI. I just wanted to see how I can get hold of this response without taking it from the UI. Okay, let's moving ahead. Mocking response. The mocking response I think we've already seen. I'll quickly show you how I'm doing. So here you can see I have taken a small image from my code base which is durian.png. I have converted into a bytes. And then I'm passing it to a method called mockfundresponse. So what it is doing is it is running it. So this method starts another thread in background and what it will do, it will look for all the intercepted request. And if I show you what kind of a filter I have. So I'm saying the pattern is star. So I'm not looking for any specific host, but I'm looking for a resource type, which is so I want all the images type of resources to be intercepted. So another use case of this particular thing is suppose in your test environment there's a payment service which and you don't have a kind of a SIT or a testing version of that payment service.  So using this you can just intercept all those requests which is going to your external payment service and start feeding some mock response to that service. Or you can completely, you can just completely block that particular interaction so that it will never make a call to that external service. And still your test will pass. I think for that you don't need depth tools also. You're saying whenever your browser asks some permissions from you, right? Whether your browser wants to track your location or it wants to send you notifications. So those things you can easily, yeah. I think from Selenium also you can do that. From this also you can easily do that. So you just need to send a small message and like another interesting things like going to offline mode. So you want to test your application like whether application works in offline mode. So there are few applications which are like single page applications and you want users to get engaged to an application even they are offline. So if you see most of the desktop applications or all the mobile apps they have offline feature. So you can just turn off the network and then test and drive the UI how it is working. So moving ahead, service workers testing. So how many of you know what our service workers what's their purpose? Okay, I'll quickly show. So same example we'll use. We'll open a new probe session. We'll open, let me open it at the bottom. So there's a service worker's test in a Chrome developer's tool bar. Right now there's no service worker registered. Let's open meetup.com and to see whether meetup.com uses a service worker or not. So we'll see. Just keep close eye here what will happen here when I'll navigate the URL, okay. So you can see, sorry I, yeah. So you saw some activity here, right? So when you launch this URL, so on the startup they have written some code. They want a service worker to be registered in your browser client to track you even if you are not using their website. So service worker is a way you can give some data to them even if you are not using their website. So like push notifications, like some values your personalized things. So you selected some products. You have seen some like products you browse and Google and like next time you will open Lazada you will see the same products are kind of shown to you in the advertisements. So all those things are tracked by service workers because there's like this is a kind of independent service running in a different browser thread and it has nothing to do with your application. So now even I never will, I'll never go to meetup.com. Meetup.com can track me what I'm doing. They can send me push notifications. They can even track a lot of other things. So as a tester, that's your test case. Like when you open a meetup.com you want to see a service worker is successfully registered and it should be marked as green and active. So you want to test this. So from Selenium you cannot do this. So I'll quickly show you how you can do this with this approach. Okay. So this is the one, do service worker testing. So what I'm doing is I'm opening meetup.com. I'm sending a message which will enable the service worker interaction. So you are subscribing to all the events of service worker. So it will start sending you what was happening in the service worker layer. So there could be multiple service workers. What's their status? And I'm looking for a message. I'm saying like I'm saying get service worker URL. So I'm looking for a service worker which uses this URL meetup.com. And I want the status to be activated which was green we have seen in the UI. So I'll quickly run it. So in the console, if you'll see if you think you will see. So you will see some activity here now. So you can see like service worker.version updated version. So there's a lot of messages came from the server when we subscribe to service worker events. So initially it says there's a new service worker registered then it gets installed then it's become enabled and finally it's activated. So if you see the status here, okay. So here if you see the status like first stop then starting, starting, starting, running, running. And if you see the status it's a new then installing, installing, install, activating, activated. So whatever we saw on the UI like gradually it's kind of a installed. So all those events we got here. So we were just interested in an activated one. So this test pass. So, so finally we got a message which has a status is activated. So, so this is the way we can test service workers. Let's move ahead. Push notifications testing. So it's similar to service workers. So push notifications are also used to engage users. So even if you are not using your website you have closed the browser still you can get push notifications, advertisements, some other notifications which you kind of agree to subscribe. And that way you can engage your users in a more kind of in a better way where even if they are not using their website they can get to know about your products and services. So that's to push notification testing. Let me put a break point here. So I'll open a website which will like so which will send some push notification and we can simulate the push notifications to come now also. So what it will do it will scroll to a button. So they have given a button this website. Push notification you can see a push notification came. So I triggered this push notification from Selenium interaction right now. So, so if you see this website. So they have a button called send me a push notification. So it triggered a push notification. So now the thing is so I'll not use their website now. So they have given a curl command. So you can simulate them up this push notification from an independent command. And let's send a push notification and see whether we can get that push notification in our code or not how to assert it. So I'll resume my code and I'll go to. So I'll change the push notification message to the Keela push notification and let's send this. So you got a push notification right now. Let's see if our code has kind of got to know about this push notification. So if let's go to the logs. So if you see in the end. So I got an event from the server which says Tequila push notification right. So that way you can easily test push notifications. So when actual push notification will come from the server you can your test will get it and you can easily asset the messages and you can asset the count of notification also. Let me close the browser. So expedite your test. So right now as a Selenium developer we have to close the test between close the browser between the test right. So as we know when you launch a browser using Selenium it opens a new profile and then you whatever you will like navigate to. So it's a clean slate. So it won't be carrying any baggage of your last test. So and that's very important for an independent test. So your last test should not impact how the browser would behave but that makes your test very slow because launching a browser and closing a browser between the test would waste a lot of resources, a lot of time. So why can't we make the browser as a clean browser again without closing it? So that also we can do using like same protocol. It gives you a way to clean everything. So let's see one example here. Yeah. So it's exactly similar to if you are familiar with Chrome Dev2 there's a button like clear site data. So whenever as a tester if you are doing sometimes your developers ask you okay just clean open it in a new incognito mode and then test this feature because it has something to do with your offline data or caching data. So what we'll do is here I'll put a break point here. So I'm opening a website which stores some data as a local storage and we'll see how it is stored. So the same website and let's go there and try to inspect. So if we go here and see so there is some local storage right? So they are using some channel value and they are saving it locally. They have some cookies and they have some service workers registered right? So there's a method in Selenium delete all cookies. What it can do is it can just take care of this part but how about removing this service worker clearing some caches which are part of local storage and not part of your session storage. So there are two things right session storage and local storage. So this is like local to your browser and it can not be cleaned using Selenium API. So let's try this. So I have a call where I'm using Selenium to delete the cookies. Let's move this and now let's go back. Let me clean close it and inspect it again. So now if you see so this channel value is still there your service workers are still there but your cookies are gone now. Cookies are gone but still it's not a clean browser if you want to start. So we'll go back, we'll close it and now using the remote debugger protocol I'll send some message. I'm clearing the cookies and also clearing the data for this particular website. And let's move ahead. It's done so fast. If we'll go here again. Application service worker is redundant now. Still needed. And if you see that local storage there is no value now. So now this particular session is as good as a new incognito mode session. So you need not to close your browsers in between. You can just use this and a simple message and it will just clear everything from your browser session without closing it. I think we came to the last point. Taking element screenshots. So right now in Selenium it's very difficult to take full screens full page scrawlable screenshots. So that's a common problem with the UI developers because sometimes the broken element is under which is not visible in the viewport and your screenshot doesn't show it. Your screenshot is showing everything fine still your test failed because you didn't have the complete scrawlable screenshot. And sometimes your website is so much populated that it create unnecessary noise in the screenshot. Why can't we capture a small section of the UI which is the kind of a culprit? Suppose you try to click on a button. Does it make sense to show the complete UI in the screenshot or why not just show that particular section? So Selenium doesn't give you a capability to clip screenshots like so. It will give you the screenshot of the complete page but not a specific section. So let's see how to screenshot of a specific section. Okay, so this is the one. So let's run this first and then we'll see. So here I'm passing the X and Y and also the height and width of the element. So it's a meetup.com and I just wanted to get the screenshot of that meetup logo because that's my test case. Suppose I'm doing a logo testing I'm not interested in anything else. I just want to get the clip that logo and wanted to compare with some other image or want to assert it some other way. So it's done. And if I go here to my folder and if I see so this is the like it clip just a small element. So you can do it with any element. So this is also another capability which this particular protocol gives which Selenium doesn't have. And another use case is like if you want to print your web page to PDFs. So right now there are many products where their job is to just printing your websites into PDF. Suppose your business is related to PDF you kind of assure some statements on your browser UI and you want to just convert them into PDFs. So Chrome is a very good tool to convert your web pages to PDFs. So using this protocol you can just convert any particular document to a PDF in a headless mode as well. So I think I'm almost done. So I just want to conclude this talk because now Chrome is can be run in a headless mode. Chrome can be run inside a Lambda function in AWS or any other cloud provider. Chrome can be used to convert your documents to PDF. Chrome can be used to do a server side rendering. So they are like new ideas. Like you don't want users to waste time in rendering your web pages. You can have a server side rendering. So you can run Chrome as a service at your server side. You can render your page and then pass that rendered page to the user that would be very fast. So this particular developer protocol like opens like a lot of possibilities you can do with the browser and without coming out of from coming out from your existing tech stack. The best part is I was using Java Selenium for my existing automation, but still I leveraged the same tech stack and still using this protocol and still able to do everything which I wanted to do. So thank you. And any questions? So Firefox also has a similar protocol. So right now, Puppeter gives you a same API for Firefox as well. That is still under experimental kind of, it's still under experiments. So it's still not evolved yet. But in the past, I have derived iOS Safari using a similar protocol. So if you go to that, I think I showed you one URL. So if you know this one, remote debug.org. So here you can find more information about this protocol. So it's kind of a effort of the entire community to bring all the debug protocols for all the browsers to one standard. So here you can read more about it. So right now these are the browsers which are kind of a trying to have a similar protocol. So there's like 90% of these protocols exactly same. So whatever code you will build for Chrome can be reduced for other browsers as well. So Captcha was built so that people cannot do it. So that's the intention of Captcha. That's how I answer when everybody asks. So it defeats the entire purpose of Captcha if you can do it by this way. So that is if you are able to do this the next time company has to work harder and they have to kind of change the Captcha so that you cannot do it. So because Captcha is more related to like image recognition or it requires a lot of AI. Maybe from AI machine learning you can do it but from this you cannot. So as the Captcha means Captcha is coming. So the functionality of Captcha is like any automated robot cannot drive your website. So that's the functionality. So that can only test it by humans because if you're testing with automatic robots to test it, it defeats the entire purpose. That means your feature is not working if you are able to do it automatically. Yeah. Yeah, yeah. You can like, yes, yeah. So you can clip any section, any image, any grid, any span, any table, you can. So if you want to do visual-based testing suppose your website is very rich, content-based website and you want to compare a lot of banners, a lot of images. So you can have a baseline images, you can clip images using this protocol and you can compare it. So I'm not sure if who all attended the ApliTools meetup I think last year. So they also do the same stuff. They do a visual recognition of the websites. So you can build your own visual comparison kind of a testing out of using this protocol because now you need not to take the entire screenshot, element by element, you can clip them and compare them in the same resolution. If I want to test human notifications from my application when I submit a form, I get a notification. So can I just, with respect to the, or you're intercepting the request, right? So with that, can I at least get a, what is the content of that? Yes, yes, yes. So what I showed you is because I want to simulate that notification. In your case, once you submit the form, the notification will be sent. So before submitting the form, you have to subscribe to that event notification enable and then you will start getting all the messages. So once you submit the form, immediately you will see a message came. So whatever the text of the notification is a new form submitted or a new record created. So you can easily get that message and assert it. Yeah, yeah. So that code is already on GitHub. So if you, so that entire code base is there. So you can find the exactly same code which I demo demonstrate, I think. So I checked around nine hours ago, the last bit. So yeah, so, so you can try it on any operating system and you can play around with Chrome and the same code can be extended to other browsers. Any more questions? Okay. Thank you.


5 reasons why narcissists get married. Many narcissists choose to unite, as spouses in a consensual and contractual relationship recognized by law. And they may even have children with you. But narcissists are some of the worst spouses and parents in the world. So why do they waste their time. Why do they do it? 1. False image. Narcissists do not get married or have children for the same reasons that we do. Many of them do it to display a false image to the world because they know that it's normal for people to get married and they don't want to stick out like a sore thumb. They want to blend in, they want to look normal and they know that at some point they're expected to get married. It's important for their image so they will do whatever it takes to make sure they marry the right person. To secure their supply. Narcissists will get married because then they feel like they own you. Then they feel like you belong to them. They won't tell you this before you marry them. But this is one of the main reasons why they get married. Because then you're stuck with them. You can't go anywhere. So then they start to feel more comfortable around you. They feel like they can do whatever they want. And you just have to put up with it. 3. To prevent you from leaving. Narcissists believe that if they marry you, you are less likely to leave them. Because now you are legally bound to them.  You have a binding promise, agreement and decision that must be obeyed and carried out. Which helps to suppress their fear of abandonment. Most people may view marriage as a mutual concession where you meet each other half way. Where you settle your differences by means of a compromise. But that is not why narcissists get married. They don't get married to be a part of a team. They're just looking at what you're going to be given to them. They don't even consider your needs. They only care about themselves. Which is why they will intentionally choose someone who they can manipulate into doing what they want. 4. Emotional punching bag. Narcissists want someone who they can abuse. They want someone who they can blame for everything. Even if you're not responsible for it. Because narcissists don't take accountability for anything they do. They don't take accountability for the way things turn out. Which is why they need someone else to be responsible. They need someone who they can blame for when things go wrong. 5. They want a slave. They want someone who they can force to work excessively hard for them. Someone who will obey them. Someone who will be their property. Someone who they can control. Someone who will do whatever they want. Someone who they can devalue and degrade. So that they can indulge the abuse and feel better about themselves. Thank you for watching. If you found this video helpful, please give it a thumbs up. Share your thoughts in the comment section. Hit the subscribe button to receive the notifications. If you would like to support the channel, you can donate at paypal.me slash Narc survivor. You can book a one on one with me on our website. It's Narc survivor. Thank you for watching and I'll talk to you soon.


This kind of device adapts itself intelligently to the different symptoms and different needs of different patients and groups of patients. And that's the reason why it's the first one that is indicated for the use of children.


What's going on guys got Kyle and Donnie here relating sports cards and we are ripping 2022 upper-deck skybox metal universe champions hobby One box break number 23 random pack style did a randomized for the break. We had Cody with one down to Cody with 15 Good luck here guys. Let's see what we got. We'll have one through five on the left six through ten in the middle and 11 through 15 on the rights Start with the top probably a Tiger Woods 101 in here honestly six through ten and 11 through 15 on the right here All righty guys. Good luck. This won't be pack one pack one Cody H Cody with pack one tie tie Mickey Ward Kindle Brown Breece Hall this one is scoot Henderson on the Z-Force Z-Force insert scoop and a metal shredders Walker Kessler That's false information, I don't know Probably Sam right. Yeah. Okay pack to we got Daniel M Daniel M pack to Hey, there we go rich. Thank you, sir. Thank you Glad you figure that out to you. It is it is a little bit confusing I'm glad we could help you out with that. There's peppy Traylon Burks. This one is a throwback on the metal universe Maddie Corral And metal shredders is Will Zalatoris pack number three Mr. Han Han W got reader Armando Cruz Shaden Sharp There is 2,500 degrees calling more a cow. Oh We've got a freshman foundation scoot Henderson And metal shredders drew Jones drew Jones pack for Han Hit me baby Good song Got a insert cut above Jacob Gonzalez on the die-cut insert cut above and Shaden Sharp press foundations That was Han pack number four Now we got number five number five Tony Tony. Why just quit the preseason games go locker rooms five to three Five to three. Come on There's a Ricardo peppy skybox premium on the foil got a Jalph Felix metal shredders and a virtual Ortiz fresh foundations Let's pack five Now we got pack six pack six is Michael T You know someone's got to do it CJ stroud we got AI on the Z-Force Z-Force insert Cullen more cow metal shredders and CJ Stroud fresh foundations The new Texans cubie pack seven we got Tony Tony why the house Acunia this one is Traylon Burke skybox premium on the foil and a metal shredders Caleb Williams Heisman trophy winner might get to Although Jordan Travis floor state Could get a could get a Heisman number eight here Han Han W Legal good. Go tell that to Nick carry on it right now See your eyes probably drunk Okay, well this game There's a die-cut looking to the future Walker Kessler Fresh foundations Yeti cappy and a Stephen Burge vine metal shredders pack nine Pack nine is Joe in Joe in fighting when be security team Donnie is Donnie is a Britney Spears the security team, so he's got to fight wimpy 1v1 You didn't see that no when Britney Spears how to come to wimpy and his Security team like pushed her away. No, she said she said they like hit up my side or hit her or something It's pretty wild was one be like this one is sure pova intimidation nation. I'm sure he had no idea I don't think he was even was out towards foundations. I don't think he knew even noticed Alrighty guys pack 10 we got Han Han again here pack 10 This one is a zalatoris metal universe throwback And this one is Bryce young fresh foundations five more pack 11 is Kristen Pete Kristen P pack 11 Yeah, he brought had no idea who she was rich I would say He's only what 18 you probably doesn't know who Britney Spears is There's Otto Carson strong Donnie's got the hat on Carson strong on the Eagles Otto there Carson strong Otto got shading sharp metal shredders and Jackson holiday foundations nice box there nice pack Pack 11 that one was Kristen now. We got 12 12 for Jeremy T Jeremy back as shading sharp on the metal universe Got a Armando Cruz metal shredders and fresh foundations Bryce McGowan's pack 13. This one is Sebastian Sebastian L Got a Katerina Macario skybox foil And DJ uga lately on the metal shredders pack 14 is Jeremy T. Yeah, I'll stop saying Carson strong Carson strong Seattle sea dragons. Yeah, something along those lines We have there do we have there got a Marcello Meyers e-Force and a Traylon Birks press foundations It wasn't what I thought And last one here pack 15 Cody Cody H George winning WhatsApp. I just saw your message. That looks like a red PMG Cody, what do we got? How does a red PMG? It is Walker Kessler on the red PMG metal universe Nice one there Cody. That one is number 39 of a hundred Walker Kessler the jazz rookie nice one there third or third in the rookie of the year voting And then a Hank Davis on the back righty friends that will do it for the skybox Metal universe number 23. Give me just a minute. We'll get number 24 going appreciate y'all