Hello everyone. In this video we're going to talk about a strategy for dealing with images in your application, specifically dealing with images that you want to add and delete as users are using your app. So today you have used images in your apps. You had them in your Seahawk Tours app, the beer advisor, the bits and pizzas app. So images are pretty central to many apps, right? And you know some of them are built exclusively around images like Snapchat, Instagram, that sort of thing. So today images in your app are referred, they are resources, right? You copy the image file into your Android project, and then whenever you want to display the image in an activity, you have to refer to the image resource. And there's a lot of downsides to that, as you have no doubt experienced. It can be difficult working with resources and those references. That r.id.stuff. What is that stuff really? It can be challenging to deal with, and you probably really experienced this pain in the Seahawk Tours app, where I asked you to store images or image information for each building in the building object. Another challenging aspect is those resource IDs, that r.id, they're not permanent. Every time you build your app, or potentially every time you build your app, and every time you add resources, those values can change, so you can't store them in some sort of permanent database. Also, if you were, you know, deploying your app to the world, any time you wanted to change the images in your app, you would have to redeploy the app, and that can take, you know, up to 24 hours. So working with images as resources is a little painful.  But whenever you are deploying a real app in production, that process can take up to 24 hours to reach all the users, right? If you are an Android user and you have automatic updates turned on, which you should for security reasons, it updates at most every 24 hours, right? So that's just not viable for an app like Instagram, right? If you want people to see your hot new plate of tacos right now, you can't wait 24 hours, that's unacceptable to redeploy the app. And how would you manage that anyway? There's millions and millions of users. Not everybody's pictures are in the app at once, obviously, right? So these pictures must live somewhere, and of course that place they lived is in the cloud. Right. So images need to be a part of your app's dynamic data. How are we going to do this? Well, we can put them in a database, but images really don't work well in databases, right? Databases are meant to search and query data. There really aren't image databases that you can search and query easily. Usually they exist with metadata tags. Could we put them in the fire store that we learned about last time? Well, unfortunately, the fire store doesn't let you store images there. However, there is a place that you can put them. There are many places you can keep them. The solution that everybody has for distributing dynamic resources like images, but also videos and also sound files, is to keep the file itself somewhere in the cloud, like a Google Drive or a OneDrive or something like that. But keep a reference to their location in the database, right? We've already seen with the fire store how that when you make a change to the fire store database, it can propagate out very easily to all of your app users. So in the database we can keep a reference to where the image lives somewhere on this planet. We can then tell all of our users, hey, there's this new cool picture out there, and it's located on so-and-so's Google Drive. Go grab it, then the app can go out and kind of fetch and download that image. That's the approach that we're going to have. Now a problem though, if you're interested in serving files to your app, there's a problem there. It's very challenging, right? Think about Instagram, right? I don't know what the most popular person on Instagram is. It's probably some celebrity I don't really care about. But look, they take a picture of their cute kids' latest $5,000 onesie, and they want to show it to everybody, right? And they've got 3 million followers, 30 million followers. I don't know. How are you going to send out 30 million copies of an image at once? Challenging, right? You need to be able to scale up quickly. Also, not everybody's connection is reliable or good to begin with. You're sending out 2 megabyte files, a nice picture, but it's not trivial, right? Think about 2 megabytes times 30 million users. That's a lot of bandwidth you consume, just for one picture to get it distributed to everybody, right? So, the other issue is files, especially images, can be large, right? And asking, this is a problem that faces you, the developer, telling your app to, hey, every time I open Instagram, I want you to go download all of Kim Kardashian's images. If your app downloads all of her images every time, you're going to be wasting a lot of your data, right? So, the solution to this is caching, right? So, you download the images once, and then you only re-download them if they have changed. This is called caching, where you just kind of store something and repeatedly read from it and only update it when it changes. Unfortunately, it turns out if you try to implement this logic yourself, it's not so easy. It is non-trivial to implement good caching logic. And there are whole companies, in fact, who deal with optimizing caching at a large scale. So, what are we going to do? Let me talk about a solution for you to use in your apps for your term project. We're going to use Firebase Storage. Firebase Storage is file hosting up in the cloud. You get five gigabytes for free. You can download a gigabyte a day, 20,000 uploads a day, 50,000 downloads a day. That's a fair amount at the free tier, right?  So, you're not going to run into any image limits or usage limits for this class. But what is it? It's just a file host in the cloud where you can put stuff. Nothing more complicated or more simple than that. All right? So, how are we going to put images in our cloud storage and have them dynamically update and push out to our app? So, here's the strategy we're going to follow. We've got the Firebase Storage, the Firebase Cloud Storage Service. In it, you have this concept of buckets. And a bucket is a directory, right? In the free tier, you get one free bucket, kind of the home root directory for your app. Now, you can have subdirectories within your bucket. It's fine. And here is where you're going to put your files, right? Again, you can store up to five gigabytes of files. On the other hand, on the other side, we've got the Google Cloud Firestore, excuse me, the Firebase Cloud Firestore. As we talked about last time, you can have different collections in there. So, we're going to have a collection in there. And this one in our example project, it's a collection of plants. And each plant has a name. And each plant has an image file associated with it. And the image file, these are both just strings. This image file, though, is going to map to a path over here in the Firebase Storage bucket to the appropriate image, right? So, this is just data stored in the Firestore. But when we are using this in the context of our app, the first thing our app will do, we're going to have an activity. Let me kind of paint the picture for you. We're going to have an activity that shows pictures of plants. You can click on a plant and get a new picture from a different plant. That's all it does. So, the way our activity works is, first, we're going to get the collection of plants, get the data from the Cloud Firestore. It's going to send it back. And then, our app logic says, okay, the first plan I want to show is the Venus Flytrap. So, we're going to use a library called Glide. Glide is a very popular library, been around a long time. It does image cap downloading and caching for you. So, you don't have to handle that logic of downloading and caching the thing. So, we're going to tell Glide, hey, go to the Firebase Cloud Storage, get this image file, images.flitrap.png, and return it. Now, you will actually have that file on your device, and you can tell the image view to display the file. So, let me show you what this will look like very briefly. Let me get my code up, and let me get my emulator up. So, here's my Firebase project. The first thing you want to do, if you haven't already, make sure that you have a user in here, and sign in with that user. The Cloud Firestore does not like you talking to it with anonymous users. You will get warnings and errors. I think it will still allow you to communicate, but you want a user to be authenticated. So, I'm going to create a new account. Oh, I already have it, so let me log in. All right, now I'm logged in. Okay, now in my emulator over here, I'm going to click on Launch Firebase Storage and Picture button. Okay. So, I don't know if you noticed, if you didn't, rewind it a little bit and watch. There was a very slight delay before it showed this picture of the picture plan. Okay, and that slight delay was the activity going out to the Firestore, getting the data for all the plants that I can show. I can show a couple here by clicking on them. They rotate around. Getting the data for the picture plan and then glide calling up to the Firebase Cloud Storage and downloading that image. Once the image was finally there, it popped up on the screen. There was a slight delay. Now you'll notice as I click through this, they show up instantly, and that's because Glide, our library, is caching these images. It's not re-downloading them. It's just pulling them off the disk. Okay. Let's go over to the Firebase project for a second. Here's the project overview. We're going to click on Storage. Okay. So, in storage, this is my storage bucket. This is the default bucket. I'm going to click on bucket per app. That's fine. That's all we need. I've created an images directory here. Okay. Inside this images directory, I have the names here of the images. And if you click on them, it'll actually show you a little preview of them. So, uploading files is pretty easy. You just do this and pick the image. Okay. That's it. That's all that's in my bucket. It's more magical than that. I've got a directory and I've got some pictures. Let me go back over to the fire store by clicking on the database on the left. You can see I have two collections here. I have the people collection from last time when we were manipulating the fire store. And then I have plants. And inside the plants, I had to add documents corresponding to all the plants I wanted to display with their name. And then the directory, the location in the storage where this thing is found. Let's switch over to the code for a second. So I'm inside the storage activity. If we scroll down, here I'm getting my references using the firebase libraries to the firebase storage and the firestore itself. Here in my oncreate, I'm setting up some views, but here I make the call to the firestore to get all the plants, all the documents that are in the plants collection. Once this is successful, oncomplete, if it's successful, I convert each plant document into a plant java object, which I have defined over here. Plant java object is plain. It doesn't do anything. It just holds the name and a string that's the location of the plant in cloud storage. And I'm adding it to a list. All done. And then I have this update UI that's actually going to say, oh, I got something. Now let's draw it. Let's take a look at this. Update UI. I've got some checking here to make sure I've actually downloaded it. I'm keeping my plants in the plant list, but I've got to make sure that there's actually data in there before I display the image of it over here. Because there is going to be a little bit of lag when I first load this activity, where it goes out to the firestore, downloads the data, and then goes up to the cloud and downloads that data. But down here, I'm updating my view. Here the storage reference. Okay, so I'm creating this new thing using the Firebase library called a storage reference or excuse me, the cloud storage library. I get a storage reference and it's based off the plant image file location. So get image file returns to me this string. I get the storage reference and then I say hey, glide, go load the image and put it into plant image view, which is a part of the layout. And that's it. Glide kind of handles it all the magic in the background. So it's actually quite easy to deal with. There's some other stuff going on in here that I have to do to work with that glide appropriately. I don't want it to keep like trying to download stuff from the internet whenever my app goes in the background. That would not be good. You'd get some errors if it didn't do that. But anyway, it's actually not all that complicated. So these images are being pulled from the internet. So in your term project, I know a lot of you want to have pictures of the items you want to sell. Whether you're pulling the image down or putting the image up, the process is, you know, it's not so bad. It's not horribly, horribly complicated. And certainly, once you get it for one item, all the rest will fall. All right. So I want you to do then, that's your introduction to the Firebase Cloud Storage. There's a lab associated with this kind of talks you through the code a little bit more that I just showed you and shows you how to use it. So go ahead and work on this lab, work on the previous lab on the cloud fire store. And as a reminder, your milestone two that incorporates Firebase authentication is due this week. If you have any questions, you know how to get in touch with me. Have a great rest of your day.


The life and death of a revolutionary and the resurrection of a revolution. This is the New Testament. We see Jesus bringing good news to the poor, proclaiming release to the captives and offering sight to the blind, setting the oppressed free and declaring the year of the Lord's favor. We see the followers of Jesus doubting and believing, women and men who rehearse the reign of God and the world around them. We see the Spirit of God working in and in spite of Jew and Gentiles, slave and free, male and female, inviting all of us to discover the movement of God at work in the world. This is the New Testament.


So I'm enjoying. So before I start the session, I have a quick question for you. How many of us present here have some experience with vendor learning? Connected to a quick show of hands please. Just so that I know where I stand. Okay, thank you. Okay, so this is just to quickly value through the rollback for session. I will tell you briefly about what is vendor learning. We will, of course, run it here with it. I'm going to take the project which we're going to do. It's a vendor learning project. I'll show you the results. I'll, of course, be carrying home when we go from here. Okay. So, I mean, just imagine a picture of the vendor. It's no problem if there isn't a picture. Right? It's different to have a piece of learning. We put them in the vendor. We stir it and mix it together. And we put it in the braids of the spoon. That becomes vendor learning. Just so we can see. We have here night grabs. Basically, to put it in a nutshell. It all incorporates two components or two modalities of learning. One we have the face to face traditional classroom needs which all of us are familiar with. It's just been there the last 500 years. And now what we do is we take online learning and we online the two and it becomes vendor learning. So we will take the wet line you see on one circle. and the other one is opposite. And with the two diagrams overlap, that portion is the blended portion. So that's the simplest way to look at what is blended learning. Let's go a little deeper. So that's why I'm calling it the cuts of the blended learning. What are the savings? Or what are the savings? These are my terminologies. Most of the universities, they believe in the three savings. On one end of the spectrum you have the traditional pure face-to-face, another end of the spectrum is the pure upon-line, and somewhere in VVD you have the blended. This is why I call it the three sibling model. So in this model, and this is the one that we have followed, this sometimes also referred to synonymously as hybrid learning. Well, there are some universities which differentiate between blended learning and hybrid learning.  That is, most notably, the Illinois online network. What they have done is they have separated blended learning from hybrid learning. So in their model, blended learning is closer to face-to-face. So a larger component is face-to-face, a smaller component is on it. And hybrid is the reverse. A larger component is online, a smaller component is face-to-face. But however, we follow the traditional three sibling model. Okay. Let's take a quick look at the classification set in there. Rotation model is the one that you are focused on, where the students survey different modalities of learning at the distribution of the teaching. And this is going to be some models, which I'll share with you a little later. There are other components also, like for example, flex learning, where the students need the professor at the flexibility, at the ability, you know, a-to-day basis, a need-to-basis to the professor. That's what's called the flex model. There are a lot of classes that we go to restaurant and we order food according to what's there in the menu. Here the student picks up one course, which he wants to do, here she wants to do online, and the rest of the courses he or she wants to pursue face-to-face. That's called a la carte model. And then we have the enriched virtual model where the professor starts with the face-to-face and then the student continues online and enhances his experience. So that's about it. This is the traditional classification. However, a little more sophisticated version of the same classification is the next one. If you take a closer look at this, you see that the rotation model is the one which is a true hybrid model. While the flex, the a-to-day, and the enriched virtual are closer to the online concept. So we will focus on the rotation model, especially the subdivision or the flip classroom, because that's not our project law. But I'm going to explain to you how it was a flip classroom and what is a flip classroom, and that's going to be interesting. So let's go to the next part of our presentation. What was this project like? Well, I'm a neuroscience professor, so let's move on to the first project. I was speaking to some of those friends back in Europe last year. I was a neuroplasticity, and neuroscience is a very, very difficult subject to teach. You can see I've lost most of my hair, right? That is genetic, by the way. This is just a joke anyway. And in neuroscience, there are certain topics which are even more different. And therefore I chose a really difficult topic. That is the hearing pathway, we call it auditory pathway. How something goes through this year and goes to the center of the brain and goes to many other parts of it. So I decided that I'm going to do a blended learning project on my students using this. And I had three objectives. First, to see. This is a pilot project. To see whether it does really improve student outcomes, learning outcomes. Secondly, I wanted to get feedback from the students. How they felt about this whole blended learning project. And you'll see the interesting results we did here. And of course we used this audience response system clicker. How many of us are familiar with this ARS, audience response system clicker? Okay, so I'll tell you about that one. So I'll show you the results also. You'll see the actual results in real time. So this was my three objectives of my project. So this is me taking the class, and those are my classrooms. Those are my actual, of course, they gave me some other projects. As an airman students, only our three students in a basic medical science course. Neuroscience, as I told you. And I was working in the carry maps. And I was pointing towards small island. And we had to drill down really on Google Maps. So as it's so small that you have to go right almost above the ground to see the size of the island. You know. It's very small. You can see one end of the sea and you can see the sea on the other side. Very small islands. So anyway, so this was where we did the project. So let me tell you briefly about what was it. It was a pilot project as I told you. And it had two cooperates. One online cooperate and one face-to-face cooperate. The online cooperate was for 30. I mean, I estimated that the students do not have to spend more than 30 minutes at Google Maps. I mean, I don't want to burden them too much. You know, that's pretty blue murder. And I say the face-to-face cooperate will be 50-50, 100 minutes. So this was the... And as I explained to you, it was a rotation model of blended learning. The fifth classroom. How it is, I'm going to show you just a little bit. Okay, so how did we do the online cooperate? First, I explained to the students briefly, look guys. I'm going to do a nice thing for you guys. What? Blended learning. The Bolly Horses don't get so upset. I didn't go to the must-eaters as I did here. I told them, it's nothing. If you go to the teachers, treat it as a nice video at home. So I explained the whole thing to them. And then I gave them the online cooperate. So what was the online cooperate? I gave them a picture of the three classrooms. I'll show you the picture. I mean, it's really crazy. And then I gave them a link to a video, an online video. Just 4.1 minutes, that's all. And to help them along, I gave them two objectives so that they'll focus on those two objectives when they look at the video, otherwise they're treated as a movie. And I also gave them two questions pertaining to those objectives so that they would have something to focus on. And I told them, you look at that movie as many times as you want. Don't spend too much time. Don't move around. Don't Facebook around. Don't Twitter around. Just look at that video only. And just look at those objectives. And you leave them tomorrow when I come for the class. Okay, so this is the picture that I already passed. This just, by the way, this is not a class. Neuroscience. But you can see how difficult, how complicated it is. It's really crazy. And then I gave them this link. So they have to just click on that link. And this is very small. Next, these are the two. I told them that you have to focus on two things. You have to know what are all the components of the object pathway. There are eight components. And you have to know them to the right sequence. Watch for these eight components in the right sequence. And you must also know exactly the impulses go from where to where and how to travel and all the rest of it. That's called the natural energy protection. This is a little technical. But these are the things that have to focus on. And these will save two questions which I have asked. For the confidence and for the laterating protection, just keep two questions in mind. That's all. Nothing more. Then next. The face of this component. Before we get started in the lecture, embedded within my PowerPoint slides, I put three questions. Embedded them using this software which I will show you just now. And these were the three pre-natured questions. And after the whole session was over when I finished my lecture for 100 minutes, I embedded five more questions. What was their feedback? And I'm going to show you the questions and I'm going to show the responses also. And how we did create this embedding, we did it by means of this audience response system picker. So those of you who are familiar with it and those of you who are not familiar with it, you can quickly read what it was. It's actually a software for turning points up from turning technologies. So we saw this software in the river and we opened our slides within the software. And each student is given one instrument in their hands. Small instrument size is called a credit card. It's called the ARS clicker, audience response system clicker. As you can see, it's got donations. A, B, C, D, E. And it is controlled by radio frequency waves. There's a small USB stick here. It controls. So we put the question embedded within our slides. The students see a question. We give them one minute. They take it off. The parents share and they'll enter one minute and I say, okay, finish. And I press the next button and give the response. So this is how the audience response system clicker works. The clicker as well as the software are the same software. Okay. So I'm going to show you the three questions and I'm going to show you the students' responses. There is a nice place where you can also go to review them. Yes. Okay. So this is the question. I gave them all over the question. It's a technical question. It's a question about how to do part. You don't worry about what is inferior polyclase, what is lateral leptiscus, and what is nuclear nucleus. It's not part of our session. So I put this question. This is what I do. So before you even start the lecture, this was meant entirely on what they had studied in the online conference in the previous day. And I put these three four options and I gave them one minute. Okay. You have one minute. If you press your clicker so you can talk, you can discuss what is important only for one minute. And yes, what we got answered. This is an actual response I'm going to show you now. So when I press the switch, the next button, the great answer came up and the students' aggregated responses came up. And as you can see, just a minute before I started my lecture, two-thirds of the class got the question right. So it was a small, small, this is the equation for me. At least they have learnt something. So now I know where to start. Okay. The next question, same thing. Again I put that question. One minute. Give your response. Okay. So this was the response. A little less than two-thirds of the class. All right. The third question was a really difficult one. It was a dramatic question. I just wanted to see whether they're fooling up, fooling my leg or whether they're doing it. So I gave them a really difficult one. This whole three-thirds of the question. So what do you think is the biggest response to this one? Good, bad, ugly. Good. You're not guessing me. You're absolutely right. 92% of the class got the question right. It was a really difficult one. As you can see, the options, etc. It was a crazy option. I mean, I don't give this question the exams, but I give it there. I understood it was so happy, they all started clapping, you know. I mean, the boss made sure to do the question right. And why not even start a lecture? This was purely based on what they did wrong and wrong. So these are the three lecture questions that I posed. I had my session, 15 minutes, then break in 15 minutes, answering questions, 30,000, everything. And then I posed the next five questions. These were to get their feedback about the whole project. The first question was, how did they find the online video? So it was in the form of a liker scale from very helpful to a lot of helpful. I considered ABC as somewhat of the positive side and DFT as somewhat of the negative side. So let's see what were the responses to this. The activated response was sort of mixed. So I would say that ABC together cost you about 75%. Well, the rest of them. Every class has a package, it's not very important. So this is the first question. Next question. The pre-work question, the two-question question, taking them at home. So what was their response? A game about anyone, about 45th of them said, okay, helpful, moderate, helpful, reasonable. A game about 50th of them. Usually, we can expect that. Next question. How did they find the pre-lectured question? The three questions that I showed you just now. What was their feedback about that? And again, nine-tenths of them said, we really found a useful helpful. Maybe because there was two thinking of the kind that they got it right and whatever the reasons. So the fourth question was, overall, what was their experience about this blended learning project? Maybe the phase-to-phase component for the online component and all the rest of it. And again, about three-fourths of them generally said, okay, because recently we've done the last one. This will give us an insight into the minds of the students. Wouldn't they like to have some more exercises like this? What do you think? Yes, yes. That's what we would like to see. So what actually doesn't work out that way. That's what it gives us an insight into the minds of the students. They're drinking people. We have to understand them how to base them. So only a little more than half of them says yes, maybe not me. So this was their response. Would they like to have more? This was just a small project. We were moving 43 students. So this was the last one that I had to respond to. So therefore, just to summarize, I mean, the most of the students understood the material well even before I started. After my lecture, the majority of them found it helpful in a manner of speaking of the system. And as you can see, that the error's response system, the clicker system, I've been using it for a long time and this one is the time when I really put it to use, put it to test. And I found that it gives us wonderful results, wonderful from both points of view. We as a teacher, we immediately come to know how much the students have learned and after we have taken a look, let's suppose a concept and explain the concept and we find that the majority of the students have understood it well or not understood it well. Then we know we can deliver our course, you know, we can tailor our course to actually coordinate it. So the clicker system is a very useful tool in this regard. And how was it? It was a rotation one that I told you. Rotation only means the student's rotation of fixed schedule determined by the teacher at the discretion of the teacher. So in this case, the schedule was you do the object, object chapter, okay? You don't spend too much time on this and the next thing we'll have to face was a rotation. We can have many more modalities of learning but one of those modalities have to be online to perform the definition of the intended learning. And why was it a flipped classroom? Now let's take a traditional classroom which all of us have familiar with. What do we do with the traditional classroom which has been there for the last so many centuries? We first teach the students the basics of the concepts and we tell them you enhance it at home. You learn more further there. Here we did the opposite. They learned the basics as well. We enhanced it in the classroom. So therefore, we flipped the classroom. That's why it is called the rotation model method flipped model. So rotation flipped classroom. So this was the rotation flipped classroom model which we did. As I told you, this is just a pilot project. Therefore, we need to do more studies. Be a lot like the the largest group population. I should give them more difficult topics. A written pathway itself is not sufficient. It's very difficult but I should give them something like the Basel Ganglia or Parkinson's or whatever. And I should have a larger group of students. I should have more robust results and more concrete conclusions. Only then we can generalize our findings to the rest of the population. But otherwise, the preliminary results, this was what we got. And it was quite encouraging to stimulate us to do further work. And finally, when we leave this room for our coffee, what will we carry on with us? Those of us who are not familiar with the learning projects, we have seen that there are four models though we do not remember the names of the models but we do know there are four models. We have seen how to conduct a blended learning project and we have seen what is the at least the preliminary educational value before climate learning. What else did we learn? We got inside of the mindless tools how they can fool us. So we should always be ready to understand so that we can deliver, we can tailor our core delivery strategy according because we have to understand in order to deliver our learning effectively, we should be one step ahead of their training process. What we think can be effective teachers. So this is a useful exercise so that we can get an incentive for the students and we also see in this how an audience response is done, turning point technologies, how it works and of course not that this is part of the session but all of you know that there is something called original pathway, isn't it? Something about hearing pathway what happens when hearing goes from this year as the whole same was it goes from this year it comes up from this year no, it goes from this year and it goes to this half of the great 90% goes to the same side how does it happen, it goes from last year but it does happen so that is the original pathway that was just part of it that was just a by-direct of this whole exercise so these are some of the things that we will carry home when we go from here okay so thank you very much for watching this was and if there are any questions any comments, anything I would be very very happy to explain to you yes please


I wish I had pom poms here to wait right now because I'm so excited about this. We don't have to see pitchers hit anymore The Universal DH will be across baseball. I don't want to see pitchers who average barely a buck 20 when they hit I want to see another hitter at the plate. What are your thoughts on the Universal DH? It's 20 years too late, but I'm glad that it's finally happened I mean I've had arguments with people that love the pitchers hitting because they say it robs you of some You know strategy moves, but listen for every time that Bartolo Cologne hits that unbelievable home run Pitchers are helpless at the plate, and I'm not blaming them. They don't hit since high school They don't hit why the National League thought it was entertaining to have three Abysmal at bats where it wasn't even competitive and then oh, but you know what the strategy in the double switch Please save it They've needed this for a long time and it's good that both both leagues are gonna operate with the same rules


Demonic presence at heart-saving levels. Lockdown in effect. Demonic presence eliminated. Lockdown disengaged. Disengaged. Lockdown at heart-saving levels. Lockdown in effect. Demonic presence eliminated. Lockdown disengaged.


They had no idea, as we never heard the expression, concentration came, or death came. Very emotional. It's been a long time, but still, it's something that will never leave me. The guys who formulated the final solution were educated officers, and they planned the annihilation of a complete generation, and I'll never understand that. If you don't forgive, and you're angry, you're the only one who's going to suffer, and you're not giving me anything, you're not accomplishing anything. You should not hate anybody. We could all get along. The world is large, room for everybody.


Hi everyone, my name is Joni. I work as a solution architect for that and today I thought that I'd show how we can run our application across different footprints. So this scenario I had in mind to demo is that let's say you're a company or organization or an individual and you have some kind of environment. It might be a data center or you know, you're running an application in a cloud context or a public cloud context. But their request comes in to move that application and running on another location, another footprint. Maybe it's an edge device running on another location like a train, a bus or something like that or a factory or remote office or some kind of smaller footprint if you will. So you don't have a full-fledged data center at that location. To do this demo, I used a couple of different components. So in the center, we see OpenShift or actually it's code-rated containers. So code-rated containers is an all-in-one installation of OpenShift and OpenShift is Red Hat's enterprise Kubernetes distribution. And we are also making use of Asable Automation Platform that we will make use to create the automation necessary to deploy our application out to the edge device. And the edge device is then a rel node and on that node, we're going to make use of a couple of different components, one being SystemD that manages the the upstart of the operating system. And we're going to make use of Potman, which is the container runtime. And I'll also show some aspects of Red Hat Insights. As you can see, I have my environment up and running. So to the left, you see my web browser running Asable Automation Platform. And to the right, you see I'm logged into code-rated containers, our OpenShift environment. I do have a demo script that I will run and I'll walk you through what's going on in the background. As you can see, I'm using my local laptop as a demo environment. So CRC there is code-rated containers or OpenShift. And then Asable is, well, Asable. So first, we are going to need an edge device. So I will create a virtual machine. So I'm just using a script to create a VM called EdgeOne. It's going to have 20 gigs of disk, two CPUs, two gigs of RAM, and it's going to be based on rel872. And just to go through what the script does. So first, we're going to create a new project called Minecraft. So our application in this demo is going to be Minecraft. I will also make use of HE Proxy to front the the Minecraft server just to show that it can be a more complicated application. And then we're going to allow anonymous access to the registry so that our node can pull the image. This is more to simplify the demo in a production environment.  And then we're going to create a build. So while I go through this, let's just kick off the script here. See here. So now we see to the right that the project is actually created. We can also go into this here and just to see that it's going to create what is known as a build config in a while. So first of all, we added the unauthenticated access so that an anonymous user can log in. And now we have created something that is called a build config. And the build config is basically an object that knows how to combine cover different components into a running container image. So in this case, we're using the Docker strategy and it's going to clone from this GitHub repo to and basically run a Docker build against that cloned content. So we are creating two Docker builds in our Opusheft container Opusheft cluster. So the first one is then the HAProxy Minecraft, which is basically a HAProxy instance that tries to connect to a backend server, which is then Minecraft. So these two containers are now being built on top of the cluster. And then we're going to add a build hook. So this is a post commit build hook. So what happens is that when we trigger this build, it will call out to the Ansible Tower REST API to launch a job that is created in the Ansible Tower instance. So while those builds are running, I'm actually going to continue the script over here. So this is adding the post commit build hook to these build objects. So the next time we create a build at the end of that build, it's going to call to the Ansible Tower instance to start that job. So just to show you guys how that looks, I'm going to log in in my Ansible Tower instance and I'll show you my jobs. So what I have is that I have a template called push Minecraft HAProxy. And this job is what is going to be kicked off when we create or when we launch the builds in an open shift. So the builds are now done. So let's check one of these out. So we now have a container that has been built in open shift. So we could pull this container image now to this environment. But let's kick off this build again. So at the end of this, we're going to see the post commit hook. And it's going to start the Ansible Tower job that is going to deploy the environment. So if you go to build configs, we can go to the Minecraft server and we can click start build in. So now we can also follow along what's what's going to happen. So if we go to the jobs page. So again, the on the right side, we see the build starting. So it's going to clone the GitHub repo down to the build environment. And then it's going to more or less do a Docker build to this content. So it's going to follow the instruction that is in that Docker file to produce a container image. And as the last part of that, before the image is pushed to the registry, it's going to call out to the REST API to start this pushed in Minecraft, HAProxy Ansible job here. Yeah, we're good to go. So while this is running, I will log into what is known as insights or reddit insights. So you go to cloud.reddit.com. Insights is part of the subscriptions of REL. So we can see systems that has been registered to this environment. And insights represents Reddats approach to doing proactive support. So the background of the story around insight is that, you know, someone looked and saw that in, you know, large degree of the instances when someone calls Reddit for support, we were already aware of this challenge or problem. So if someone, someone other customer had this problem and we were already aware of it and it fixed actually existed. So someone came up with the brilliant idea of, hey, what about we proactively notifying our customer about this potential solution to their challenge? Just as a caveat here, if you look to the right here, we see the run curl command that is going to trigger the job. So if you go over here, we're going to see the job starting. And as you can see here, push Minecraft, HAProxy is actually starting. So we see here that, yeah. So it's gathering facts. And we see that it has found our virtual machine here, edge1.home.lab. So let's continue the discussion around insights. So anyway, if you register your Rails server to insights, it will proactively notify you around known problems or issues that we are aware of at Reddit. So it's going to be registered and it's at some point going to show up in your inventory. So the basis for this demo was actually a blog post. So I want to just highlight that. So if you look at, if you Google for SystemD and Podman, one of the first articles is going to be running containers with Podman and shareable system D. So we're deploying to an edge device, which is raw, but we still care about, you know, things like, what if the VM crashes and restarts? How do we make sure that our container is up and running? And if you, if you're aware of how Podman works, you would know that it is a, it's running, it's not running as a demon, so it's demon less. So how can you make sure that the container restarts when the VM comes up? So we're making use of system D to do that. And this blog post goes through to how you can create a generic system D unit file to deploy a container to a system. And that's what we're making use of. As we can see here, the job is progressing. So the first thing that's happening here is also that it's running a registration. So it's registered for an entitlement or a subscription. And once that's done, it's going to go towards the insights. So let's take a quick look at the playbook itself. So and the playbook is really simple. So the deploy HAProxy here, what it does is register the machine. And I'm showing that because I have passwords in that file. And then in the roles section is where it becomes interesting. So it's going to include the role. So this is where the magic happens or magical magic. But anyway, so if you look at tasks and main, this is basically what is going on. So first, what happens when the system is registered is going to install the podman. And then it's going to do basically a Docker pull or podman pull against our open shift environment. And if you see, if you see here, the app's dash CRC dot testing, it actually corresponds to our URL up here in our open shift environment. And then it's going to lay down these system D unit files that will make sure that our container is up and running on the system. And that is basically what goes on. So very simple. Now we see that the insights client has or is installing. And we should be able to if we go to the inventory, we should be able to see that showing up now. And now it's progressing to the next step, which is then installing podman, as I showed in the playbook. But if we go back here and refresh the page, we should be able to see our node up and running or being registered. And there we go. H1. So some more information on insights. So the first information we do is some some overview information. So facts about the systems, you know, what type of capacity, memory, CPU, stuff like that. And then there's a couple of different sections that, you know, all quickly run through. So advisor is, you know, what it sounds like if we have any advice for this specific system, which there aren't any as of now, the vulnerability tab represents security issues or vulnerabilities that we think is important for you to be aware of. So if we, you know, expand one of these, we can read some more information about that specific CD. So the specific one is about cryptography in one of the packages installed in the system. And then we have compliance. So if there's any policy created for the system, if it's, if it's compliant to that policy you created and we haven't created one, and patch represents if there's any other packages that might fix, you know, known bugs or issues with the system, we can find out more information about that as well. So this represents how we would long-term manage because this demo is showing one machine, but what if we have 50 or 100 or maybe even thousands. So insights allow us to proactively manage all of that. And we can also fix this. So if we would like to, we could, you know, select all of these and we could remediate with Ansible. And this would create a playbook that would have the instructions that would fix these issues on the system. Also as part of the playbook, we deployed something that is known as, or we enable something that is known as cockpit or the web console. So if we now log on to the Edge One server, we can actually manage the server through the web UI. Just to show you. So even if you're not a, you know, you've been working with Linux for a long time, there's a way for you to manage the system through a UI. So this is just an example. You can show some, you know, performance metrics, how's the system behaving, what's the CPU and memory consumption at the moment. You can do like access logs of the system and you can access these different log items. So you can do some basic troubleshooting and start understanding what's going on with the system. You can do also some network configuration. So let's say you want to configure the network in a certain way. Also if you want to manage the accounts of the node and also access the terminal of the system. And if we look at our job here, the job is actually done. So it has now deployed our container to the local node. So let's see how that looks. So if we do a Podman PS, which is basically a Docker PS, we can see that the containers is up and running. And if we want to look at the system, the unit files, we can also find those over here. So we check on services and we filter for Minecraft. You can see that we have our two system, the unit files deployed to this system. And as a last note, let's see if we can launch our Minecraft client to connect to this newly deployed server. Hit play, it's gonna start the client. So my system is running low on resources at the moment. So it's taking a bit longer here. And we do a direct connect and we see edge one dot home dot lab port 80 and hit join server. And we are able to access our Minecraft server deployed to our edge device. And that is it. Thank you everyone for your time with this demo and I wish you a good day. Thank you, bye.


Democratic Republic of Congo's Defense Minister Gilbert Kambada has been summoned by MPs to explain how Rwandan troops were able to cross the border. He is expected to say what measures have been taken so that the issue does not recur. On Monday, Rwandan troops crossed into the neighboring country in the investigative north-eastern North Kivu province, clashing with dear Congo soldiers near the border. The U.S.-sponsored radio, or KAPAI, claimed had returned the villages in Griyongo region following the incursion and residents of six villages who had fled their homes had returned. Hello, hope you enjoyed the news. Please do subscribe to our YouTube channel and don't forget to hit the notification button so you get notified about fresh news updates.


For a quick review of logic, we'll look at some of the operations that we have available to us. In this course, we're primarily going to be dealing with four different operations, ands, ors, knots, and exclusibles. Once in a while, you'll see nans and nors as well. And the majority of these are binary operations. They apply to two different propositions at the same time, and produce some composite of the result. So, for example, our and operation takes two propositions, and it will return true if both of those propositions are true. If either one or both of them are false, then the and operation will also return false. Your operation, on the other hand, says that if either of our two propositions are true, then the result will be true. The knot is a unary operation, and it just inverts whatever your input is. So, truths become falses, falses become truths. The exclusive or is a little confusing to people at first. It's like an or operation, but it more closely matches what we think of as or in a natural language. In this case, our expression is only true if either a or b is true, but not if both of them are true. So, it's only true if exclusively one of the two inputs is true. The result will be false if either both inputs are true or both inputs are false. Nand and nor are really just not and and not or, so we can apply a negation to the results of our and or or operations.


what is up ladies and gents welcome to the video this is going to be my top 10 runes for SOD level 25 pvp so this isn't going to be anything to do with you know future phases this is right now and this is something that we've kind of crowd sourced a little bit with chat we you know had a lot of back and forth discussions that kind of thing so it's not only my own opinions that being said if there are any runes you think that have been missed off at the top 10 please do let me know keep in mind even though your rune picks that you thought might be in the top 10 aren't there there will be some honorable mentions at the end with explanations and such so make sure you watch until the end of the video keep in mind that this is for general pvp so this is this is duels this is uh you know bg's warstone gulch uh and its world pvp so everything combined overall strength so without further ado let's get into the top 10 number 10 is gonna be avenger shield and it's a ranged aoe slow that requires you to use a shield but you can just switch to a shield and use it and this actually just allows rats to connect where otherwise they wouldn't be able to their mobility is really bad other than this and so this is the thing that is making rats so good right now they are able to throw this this avenger shield out if you can't dispel it then you basically need to be a druid to be able to shift it otherwise this rat is catching you and when the rats catch you they hurt so this is what is making avenger shield for me number 10 right now and until recently this this was actually counted as a day so you couldn't even shift it as a druid you couldn't pre-action potion it and so this actually got nerfed quite recently otherwise this would actually be higher on the list next up at number nine we are going to have void plague now you'll notice a lot of the spells in this list are actually instanced and that's because casting in classic is actually quite difficult a lot of things have longer cast and there's a lot of pushback so instants are valuable and void plague is no exception it's both the strongest dot in the game right now and one of the highest damage per global buttons the compress full stop it's also very very efficient it costs less mana than a shadow of pain and does over twice the damage so it's a super valuable button to be pressing on top of all that it scales really well spell power adding an extra 20 percent of your spell damage per tick for a total of 120 percent of your spell power increase over the duration coming in at number eight we have heart of the lion and on the face of it this one looks very simple but it actually provides so much raw power it stacks with all the other hunter aspects and it gives the hunter themselves an extra 20 percent overall stats which is actually huge when you think about it on top of that it also gives all their party members an extra 10 percent stats so if you add up all the numbers this is so much more added value for you and your team so in any sort of group combat this is going to give you all a lot more raw power and that's why it's such a high value room number seven is going to be wild growth and this is another relatively simple one but really just has a lot of raw power behind it it's another instant cast and it's one of the highest hbs spells in the game along with prayer of mending actually so it's actually a really really versatile aoe heal where it heals all party members of the target within a 40 yard range so this actually allows you to top any group in the raid and not just your own so this is very very valuable in things like warsong galt where there can be a lot of people taking damage and you know get that really valuable heal off to sort of keep the team going keep the team healthy but also it can be used in solo pvp as well where if you're kiting away it can actually be a really valuable tool to stay alive even though it's only healing one player it's super super useful at number six we have prayer of mending and this was actually really close with wild growth as they both feel kind of similar niches but i just feel like prayer of mending is a little bit more versatile and with the small change that they've done in SOD whereby you are able to proc it via healing as well as via taking damage i think that kind of just edges it a little bit above as you have a little bit more control over the spell than you usually would and it's not constrained to groups on top of that it's a lot more mana efficient and it's one of the highest hps spells in the game as long as you consume all five charges now as i said earlier you're able to proc this with healing as well so you can use things like lesser heal rank one or renew rank one to continue to bounce your pom around if it gets stuck on somebody or pet and this makes it very very powerful on top of that it scales really really well with bonus healing i believe better than wild growth at 43% of your bonus healing per charge now we are coming into the top five and at number five we have haunt now haunt is another instant cast and it is not only doing a nice junkie bit of damage it also increases the damage of all the other warlock dots on the target by 20% if it's dispelled or it expires it will heal the warlock for all of the damage that it's done overall it's providing a really really high amount of added pressure in terms of damage but it also really increases the warlock survivability and is just all around a very powerful button a nice added perk to this one is that it will also heal the warlock if the target was shielded which is not true for other drains it has a pretty decent scaling considering it's an instant of 43% and you could have probably guessed this next one was coming at number four we have master channeler another instant cast and a pretty high damage dot all things considered this is probably the main thing that a lot of melee are complaining about when it comes to warlocks and the reason that they are really having a hard time killing them it gives the warlock a tremendous amount of increased survivability with the added healing that it's providing it's difficult to avoid you can outrange it but any warlock worth their salt is going to keep in range so that it doesn't expire the damage scales with horn and this in turn increases the healing that it provides so this combo is particularly deadly and as mortal strike is not available at this tier the talent becomes even stronger you might see this falling off in later tiers now into the top three and these are the most complained about runes in the game and with reason at number three we've got beast mastery and this is the cause of so much grief it gives the pet 30% more hp and it does 30% more damage on top of that focus regen is tremendously increased and this is why you have wind serpents flying around doing obscene damage to people you have all sorts of videos of people running eyes of the beast and going around one shooting people because the wind serpent lightning breath can actually crit for around 300 and it's relatively spammable based on how much focus you have so these are really ones to watch out for and that's the reason why they're so strong is this room now number two and one might be up for some debate and you may have guessed them already but at number two i have put star surge and since the buff to this ability it has become insane it's instant it can crit for over 400 it's an insanely low cost mana spell of only four it has 42 yard range if you take the range talent in balance tree the cooldown is only six seconds and it scales 100 with spell power as an instant cast this is absolutely insane i have no idea where they got the numbers for on this they really did want to get balance into the meta and you know what that's one way to do it i feel a little bit bad if it does get enough because the rest of their kit is pretty mediocre but this one rune alone is bringing a balanced druids by the scruff of the neck up into s tier it is bonkers and it makes you wonder what could possibly be better than this in the first spot take your guesses now put it in the comments if you don't want to get any spoilers i am really interested to see what people actually think is the top ranked rune in the game before i reveal it if not sit tight here it comes the best rune in the game for sod 25 pvp is furious thunder i'm kidding it's complete dog it's of course penance maybe i'm a little bit biased i don't know maybe if i was biased i wouldn't say it was rank one pfft not sure it basically has very very very high single target hps it will pretty much top you from 40 to full and it's just really really versatile it's really really strong defensively but you can use it offensively as well and because it's three ticks extra pushback it's incredibly mana efficient second most efficient priest heal actually after prayer of mending as long as it gets five ticks it scales really really well with spell power and healing at 85% over the whole cast and the icing on the cake and maybe the funniest thing of all maybe not if you're not playing priest is the fact that cast bars in sod right now are bugged and what i mean by that is people cannot see channeled casts they will have to see the animation in game if they want to see penance being cast so most of the time it won't even get interrupted so that is why i'm putting it at spot number one as i said maybe you have a different opinion maybe you think penance is just as busted as i do i hope it doesn't get nerfed but that is the top dog now there are a few honorable mentions divine storm the perks of this ability obviously the fact that it's aoe however it does do really solid single target damage as well with a 110% weapon damage it can crit for over 300 and heals for 25% on a three party raid members on top of that it can actually proc an aoe stun if you're running seal of justice so overall it's just a really valuable button push we've got way of earth and this really nearly made it into the top 10 but as i said it was very very competitive and this was just a little bit too situational and that will be a common theme for a lot of the the runes on the honorable mentions section where they're quite good or really very good in certain situations but then completely useless in other ones or just get out shone by other runes way of earth is one of those where it will make make shamans really tanky and solid for a dueling overall but there are a lot more situations where there's other options that are better it does make them very good flag carries and war song but that was kind of the extent next up we've got meta and this allows warlocks to be really really strong into melee but not so much against casus and horn kind of overall out shone it a little bit in the hands of a more skilled warlock player it did allow warlocks to front line a little bit more in war song but the spells that takes away kind of limit the capabilities of the class a little bit more and for me i think that horn is just the superior pick if you are putting it in the hands of a skilled player next up we've got homunculi and again great for dueling great and well pvp but i just could not leave pom off with how strong pom is in group pvp pomunculi didn't make the cut as a result and this was a really tricky decision for me because i do love the homies but yeah they didn't make it on this time as i said is a very very tough top 10 next up we've got survival of the fittest similar to where the really just makes flag carrier is way tankier but it's too much of a niche rune and while it does really shine in that specific situation there are not that many others where you would want to take it over the free wrap which also i guess could do with an honorable mention not a bad pick either again not not good enough to make it into the top top 10 i would say but still worth a shout and then finally between the eyes and honestly i'm sure there's loads more that deserve an honorable mention again if you think uh if you think i've missed something please i'm sure i have please do let me know in the comments and we uh we could chat about it but yeah between the eyes almost made it in and as rogue's only stun at the moment it is very class defining right now however it just just isn't quite strong enough in group combat isn't that thing that will swing the battle in your favor it is still a little bit too niche that is why it is only an honorable mention that was it thank you so much for watching guys i had a lot of fun making this one we we had a lot of fun with chat theory crafting it and so on if you'd like to actually see the the making of this where we sort of went through theory craft that it made a huge long list of runes that kind of stuff i can do a making of video if not we'll continue on with the the pure stuff or the educational stuff in the pvp it really does depend on what you guys want to see so yeah just let me know thank you so much for sticking around if you made it to the end and have a good one


Fleet activities Yucosca has kicked off their holiday celebrations with a special visit from Santa Clause for the ninth annual holiday tree lighting on Yucosca base and at the Akego housing detachment. So MWR does it to really help our community have that sense of community and togetherness during the holidays which is so very important at this time of the year. Yucosca's Chief Staff Officer Commander Chad Spencer also had a message about holiday safety for the sailors and their families. Things we could do, particularly as we travel back to the states, we have to think about driving. When you go back to the states you have to drive on the correct side of the road. MWR will continue to celebrate the holidays with upcoming events through January. Petty Officer Jacob Allison, Yucosca Naval Base, Japan.