Hey, everyone. What's up? It's Rob. Welcome back to the show. So I got on Twitter recently and I asked folks, what would they like to see in upcoming Polycasts? And kind of resoundingly, a lot of folks said they want to see more Firebase. So I thought it'd be cool to kind of kick off a multi-part series where we talk about how you can integrate polymer and Firebase together into your projects. So today, what we're going to do is just get started. We're going to set up a very simple Firebase project and we're going to do some Firebase authentication. So follow me over here to my laptop. And the first thing I'm going to do is I'm going to go to console.firebase.google.com. You'll want to have a Google account already that you can sign into. So I've signed into my personal account here. And I'm going to create a new project for my Firebase app. And this is going to let me do all sorts of really cool things. I can do hosting with Firebase. I can do database work with Firebase, authentication, et cetera. I've got to give it a name, so I'm just going to call this polyfire or something like that. And we'll create that project.  It'll think for a second. The hamster wheels are spinning up. Polyfire is getting created and released into the world. OK, cool. After that's done, you're going to see a dashboard that looks kind of like this. And there's a bunch of options and things right here. It can be a little bit overwhelming. But we're going to start off really, really small. And the only thing we're going to really deal with today is authentication. And so what I want to do is click on this authentication tab. And it's going to ask me up here at the top what sort of sign-in methods I would like to allow in this app. Now, being a Googler, I've got to represent. So I'm going to enable Google sign-in.  And what this is going to let us do is anybody who's got a Google account will be able to hit a sign-in button and sign-in through that account in our Firebase app. The other thing that we need to do is we need to go over here to our settings. We go to Project Settings. And we're going to need this web API key that I'm copying here. Otherwise, our authentication will not work. So copy that. OK. So I think that's basically everything we need in the Firebase console. There's a ton more that you can do here. And we're going to cover that in some of the future episodes. But for now, we're pretty much ready to go with just the default setup. So the next thing I want to do is switch over to my command line. And I've already gone ahead and created a directory to hold my demo application. And Firebase also provides a really useful set of command line tools that you can install that will go ahead and like scaffold a project for you. So if you don't have those installed already, you can do npm install-g firebase-tools.  I've already got those installed, so you don't have to watch me do any of that. So what I'm going to do is I'm just going to run firebase init. And it's going to put a very rad emoji on my screen. And it's going to ask me some questions about what sort of firebase features I would like to have in this project. Firebase provides a real-time database, which is awesome. And we will be using that, so we'll leave that checked. And then we've got firebase-hosting. And that lets us basically just do hosting of static assets. We can host our entire site on firebase if we want. So I will leave that in there as well. I'll hit Enter. It's going to ask us what project we want to associate with. So since we just created that one called polyfire, here I'll move this up a little bit. This is a little easier to see. So we will associate with polyfire. What file should be associated with the database? We'll just use the default value there, database rules.json. What directory do we want to use? We'll say our public one. And then it's going to ask if firebase should sort of configure its local server rules to direct everything to index HTML. So if we were building like a single-page web app, I'm going to say yes, I would like that feature, because that's pretty cool. And at that point, it's basically done. And if we go ahead and we open this up in our code editor, we'll see that this has started to kind of scaffold some things out for us. So I've got these Firebase JSON, Firebase RC file that points to my project name, stuff like that. This is all just configuration to make Firebase work. What we're mainly going to be working with today, though, is this public directory. So this is where our code is going to live. The other nice thing that we can do with the Firebase tools is we can start up a local dev server. So we'll say Firebase serve. And it's actually going to look at the rules that we have in our Firebase JSON there that tells it to serve our public directory. So we can then just open up a local host, 5,000. And you'll see a page that looks like this, letting you know that your local instance of Firebase is working. Cool. All right. The next thing we want to do is we want to go ahead and install Polymer. And we want to install Polymer Fire, which is a set of Polymer elements that work specifically with Firebase. So because I want everything to live in this public directory, I'm actually going to create a .bauerrc file. So I'll create a .bauerrc file. So .bauerrc. And I will use this to tell Bauer to install all my stuff into that public dir. So I will say directory is public slash BauerComponents. Cool. And then in my terminal, bauer init, yeah, it'll ask us a bunch of questions about our project. We can just use the default values. That's fine. And then we will bauer install save. We definitely want Polymer slash Polymer. We're going to want Firebase slash Polymer Fire. And we're going to want Polymer elements slash PaperButton. All right. So that's going to go out and fetch all of those resources and dump them into our public directory, finished pretty quickly, which is good. And now we're basically ready to start building our app. And remember, the goal of this app is to basically have a simple sign-in flow for the user. So all I'm going to build today is a button that when you click on it, it'll take you through the OAuth flow for Google sign-in. And when the user is actually signed in, it'll just display their name on screen. That way we know we at least have something working there. So let's go into our index.html file. And there's a bunch of code here that Firebase set up for us that I'm just going to go ahead and delete, because I don't really need any of this stuff. So we'll get rid of that. We'll get rid of everything in the body. That makes this a little bit bigger. We'll rename this Firebase auth or something like that. And because we're using Polymer, because we're building kind of a Polymer app, I want to start off by creating just like a MyApp element that can sort of hold all of my logic. So I'll have a MyApp element here. I'm going to make sure to include an HTML import for that. So we're going to ask for MyApp.html. And inside of this MyApp element, MyApp.html, we're going to want to import some of the Polymer fire elements. So let's go check those out really quick. So we'll go to beta.webcomponents.org. This is the new catalog where you can find all sorts of interesting custom elements. The ones that I am looking for are called Polymer fire. So go check these out. So this is a suite of elements created by the Firebase team, specifically for Polymer. And you can see here that basically what we want is this Firebase app element. And we're going to combine it with this Firebase auth element. So when I power installed these, I got both of these already. But you can sort of see the signature for how these work. Here, I'll bump this up a little bit so you can read that. So you create a Firebase app element. You basically tell it about your domain. You give it that API key that we copied earlier. And you create a Firebase auth element. And that'll tell you when your user is signed in or not. So far, so good. So in our MyAppElement over here, I basically want to create an element that's going to hold that Firebase app element. So I've got some code here that I've already written and kind of stolen from another project. And let's go through and we'll update this a little bit. I can kind of explain what's happening. So I've got a DOM module from my MyAppElement. I've got this Firebase app element inside of here. And I want to give it the domain for my project. So if we go back to Firebase, we go back to the console. We look at our project settings. What it actually wants is this project ID right here. So it says PolymerFire or Polyfire11D42. So that's what we're going to use. So our auth domain is going to be Polyfire11D42. Our database URL, even though we're not using it yet, we can go ahead and set that up. And then our API key is going to be that one that we copied. Get rid of that. And we'll drop in API key that we copied there.  But essentially, this is all that my app is going to do for us. It's just going to set up the connection to Firebase app. And then it's going to have a little login element that we'll sort of toggle on and off. So let's go ahead and create that. Create a MyLogin HTML. So again, I've got a little bit of code that I'm just going to steal and drop in here just to start to scaffold out my login element. What I want to do is I want to make sure that I am importing the Firebase app elements. I'm going to steal this link tag here. I don't have any of my snippets now that I'm using Visual Studio Code. It's making me like the world's slowest developer. So if anybody wants to create a Visual Studio Code snippets package for Polymer, I would totally be your best friend. But what we're going to do is we're going to import our components slash, is it, PolymerFire? I believe PolymerFire slash Firebase-Auth, all right. So PolymerFire slash Firebase-Auth.html. And we're also going to pull in the PaperButton, all right. So we'll have PaperButton slash PaperButton.html. Uh-huh, uh-huh, uh-huh. It's looking good. Inside of our template, I'm going to drop in a Firebase-Auth element. This is the basic signature for a Firebase-Auth element. I want to give it an ID, because I am going to need to reference it in JavaScript a little bit. And then it's got a user property that we are going to expose to the outside world using this binding. So we're just going to have a thing called user. It's also got this value called status known, which could be interesting. It's a Boolean that tells you whether or not you can assert the presence of a user and whether or not you're allowed to check the user object. So I'm including it here. I'm actually not going to use it in my code today, because I'll be 100% honest. I'm not entirely sure if I need to use it in my code, but I am including it here just so you know about it. Maybe in the next episode, we'll discover if it's actually useful or not. But I'm just going to drop it in there, so it's on everyone's radar. And lastly, we have this provider value, which I'm just going to set to Google, because if you remember, we went through, and when we were in our dashboard, we set up the authentication method as signed in with Google. The next thing we need to do is we need to drop in some paper buttons. Here, I'll close the sidebar so you can see this bit easier. So I got a paper button here. It's raised, so it'll have a bit of a drop shadow. And when the user taps it, it's going to run a login method. And I've got this little thing that I'm doing here where I'm hiding the button if there is a user present. So if the user is already signed in, let's not show the sign in button. And I've got basically the exact same thing going down here for this other button. This will be our log out button. And we just sort of flip the logic. So if there is already a user, then let's display the log out button. And if there is not a user, we'll display the log in button. Cool, so far so good. Let's also add a little bit of script here to define our element. So we'll say this element is a my log in element. And for the properties, we basically want to expose this user property. So let's say user, let's see, which is an object. Let's see. We also want to have that status known property. So status known. And that is also going to be an object. And now I want to implement these log in and log out methods. So these should be pretty straightforward. We're basically just going to use some of the APIs that the Firebase auth element exposes for us. So I'm going to just go ahead and paste some code in here that I already copied. And what we're going to do is we're going to use the ID of the auth element. So remember when we say this.$ sign, that's Polymer's way of saying reference this thing with this ID. So we'll say this.$ sign.auth sign in with popup. And that method basically tells the auth element to open the OAuth screen and ask someone to sign in using Google. For the log out method, it's basically just call sign out using that. The last thing that I want to do is I want to add just a little template here that will toggle on and off when we have a user or not. And it will display that user's name just so we can verify that the user object we get back is correct. So I've got some code that I'm just going to paste in here. And yeah, so I'm using a DOM if. I'm checking if we have a user already. And then I've just got an H1 where I'm just going to bind to the user's display name. All right, so I think we're pretty close to having everything where we want it. Let's just double check all of our imports here. We don't want to have a white screen of death that does happen from time to time. So everything in my login looks good. In my app, we need to make sure that we are importing my login. So let's do that. Let's go back up here. So we will pull in my login.html. We're also going to want to pull in that Firebase app element. So Polymer fire, Firebase app. All right. And then in our index file, we are pulling in the my app element. So my app contains Firebase app and login. And then login contains Firebase auth. Let's cross our fingers and see if this works on the first try. We will run the provided Firebase server. I know sometimes we use Polymer CLI to serve things. But right now, I'm just doing everything with the provided Firebase tools. We're following their project structure and everything. In a later episode, I'll actually show how to integrate both Polymer tools and Firebase tools. But for now, let's just use the Firebase server. And it'll tell us that the app is at local host 5,000. So copy that. Drop that in here to the chromes. I see I have a sign in button there. Let's zoom in a little bit so you can see that. Clicking on that should give me an OAuth pop-up. It asked me to sign in, sign in, and then boom. It says, welcome, Rob Dodson. Let's me know that we have a user object. And if I want, I can then sign out and start the process all over again. So that about covers it for today. We've now got the basics of setting up Firebase and setting up Firebase authentication in our project. There's still a lot more to talk about, but I'm going to save that for the next episode. So if you have any questions, as always, you can leave them for me down below in the comments. Or you can hit me up on a social network of your choosing at hashtag as Polymer. As always, thank you so much for watching. And I'll see you next time. Hey there, Polycast Series. What's up? If you liked this episode and you want to see some more, you can check them out over here. And also, be sure to click that little Subscribe button. Thanks.


They love me, they love me not. These iconic lines echo in the fading light of the golden sun as you pluck that pretty rose petal by petal. Being there, done that, right? As time passes you realize that the question whether someone likes you or not is a bit more complicated than the local floor I can handle. Here are five signs that someone is denying their feelings for you. 1. They get jealous easily. Do they sometimes react weirdly over totally normal occurrences? What are your thoughts on the recent Perilla Leaves debate? Which BTS member do you agree with? In any relationship, jealousy can rear its head at some point or other. You might then question why someone who hasn't stated their intentions becomes jealous of you when they see you with other people. It's pretty straightforward. Their jealousy is one of the signs that they are denying their feelings for you. Their own feelings are all over the place at the moment, they can't seem to figure out why they're feeling the way they're feeling. This inner conflict makes it difficult for them to control their emotions or give a name to their feelings. 2. They're flirting but not following through. Do they compliment your appearance, constantly seek your opinion, and are generally pleasant in your presence?  This could be because they aren't sure how they feel about you or because they're unaware of your feelings.  There's a chance they have a crush on you if they compliment you and find excuses to constantly be around you, but they don't want to rush things or just aren't quite sure how to breach the topic with you. In either case, it is an indication that they're hiding their genuine feelings. 3. They give you mixed signals. Were they, oh so sweet to you at lunch today but didn't want to sit next to you on the bus? Perhaps they said they didn't like your outfit but then asked to borrow your jacket. What? If you constantly find yourself being pulled in different directions with them, it's because they keep giving you mixed signs. This hot and cold attitude is more about them than you. They're trying to fight their feelings or maybe you make sense of them. Then it's throwing them off their game. Ouch. It can be tough when you like someone but don't know what to do. So they might be acting very weird. 4. They talk in parables. Do you want to detect whether someone likes you? If yes, then you can keep a check on how they talk about others in their life. Do they stress that they are just friends with the rest of their circle? And the best part is you didn't even ask them about it? Also the person will also inquire about your relationship status in subtle ways. They might inquire about who you hang out with when you want to unwind and have a good time to see if they fit into your life. They might be using such references to gauge your reaction in order to gain insight into your daily life. All the while rallying their forces to take the next step. Maybe. Who knows? 5. The what ifs. Are you having wholesome conversations with them and exploring the potential of a future relationship but suddenly they say that there is no point in talking about it? Are they quick to put a damper on all and any discussions of a future together? This could be a sign that they're denying their feelings for you. They might be harboring an irrational belief that things just won't work out. Their conversations are often punctuated by a pessimistic fear of the future. They think you two might not end up together, which may cloud their judgment of commitment. It can be easy to get lost in translation or read too much between the lines. The insecurity of your reaction towards them or fear of losing a good friend might be some of the many reasons one decides to hold back from expressing their true feelings towards you. If you suspect such is the case, it's always a good idea for you to give them assurance if the feelings are mutual. Please keep in mind that while someone may be denying their feelings for you, if the situation becomes manipulative or toxic, it's important to set boundaries or even ask for help. Do you know someone in your life who's exhibited any of these signs mentioned here? Or on the flip side, have you exhibited any of them? Feel free to leave a comment with your experience, feedback, or suggestions. If you found this video helpful, be sure to hit the like button and share it with others too. Don't forget to subscribe to Psych2Go and hit the notification bell for more new videos. Thanks for watching!


When I left, I was a leading ran, and I was out for a short time enjoying my freedom away from the Navy because I felt I'd done my duty, but I was soon recruited to the Renance, which came under the Navy League of Canada, which were very active, and they were the girls from at that time. They were 12 to 15, and so I joined the, it was called the HD Stonecore at HMCS Discovery, and we met again every week, and we had up to 90 girls of those ages during that time, and we taught them everything, seamanship and ropes and protocol and signaling and things like that. I progressed from being a sub-left tenet to a left tenet, and I spent the first two years as a divisional officer, and then about three years as a executive officer or more, and in my final years, I was commanding officer of the HD Stonecore when I decided I had contributed enough, and I left, retired from there.


Hello, you're watching Daily Debrief. It's been 150 days since Israel's genocidal war on Gaza began, 150 days of utter impunity and contemptuous dismissal of calls from across the world to halt this atrocity. The death toll has crossed 30,500 and close to 72,000 people have been injured. Thousands are missing. Meanwhile, the U.S. and its allies continue their steadfast support of Israel, locking calls for a ceasefire, parading Israel's claims of self-defense and refusing to acknowledge the thousands of deaths in extremely brutal circumstances. We go to Abdul for the latest on this war. Abdul, thank you so much for joining us. It's been 150 days since the war began and the brutality is continuing. Of course, a couple of days ago, we saw a horrible massacre of people who were waiting for food aid, some even humanitarian assistance has become part of the death toll, so to speak. So, could you maybe now take us to what is the situation with the war, especially the Israeli offensive at this point? Well, Prashant, in the last 24 hours, more than 100 Palestinians have been killed and as you rightly pointed out, there was yet another attack on the Palestinians who were seeking aid in the Gaza city. So, the killing in the last week of more than 100 people, Palestinians again in Gaza city is basically repeated despite the global condemnation, despite the attempt by the Israelis to say that what happened in the last week was basically the fault of the Palestinians themselves who basically in a desperate way stampede and created a situation, a chaotic situation which led to the killing of people. But the repeat and again, there are reports coming that most of the people who were killed were killed by the Israeli gunfire and even tanks were involved. So, that is what is happening. Apart from that, there are also reports coming that a large number of Palestinian children are now subjected to malnutrition and death because of the lack of food. The number of Palestinians as per the latest report has reached 16. Palestinian children, I am saying, who have died because of the confirmed cases of malnutrition, lack of food and so and so forth. So, the humanitarian aid which was now there was a spectacle made last week of U.S. kind of air dropping aid, Jordanian's air dropping aid. In fact, this air dropping is basically looks like a kind of attempt to hide the global failure of pressurizing Israel to kind of allow more and more humanitarian aid on the ground so that the Palestinians, millions of them who are not able to get enough food get it and that basically affecting their health and particularly the health of the children. So, that is what is happening in the Gaza Strip. In fact, there are reports that despite the warnings again in terms of Rafa, Israeli forces were involved in bombing Rafa in the last 24 hours and dozens of people have been reportedly killed in those strikes which were carried out in Rafa in the last 24 hours. So, yeah. So, if you see, there is all the set patterns which are there since October 7, Israelis dropping bombs on the Palestinians, Israelis not allowing humanitarian aid to reach to the affected people and kind of particularly targeting Palestinian children continues and the situation is as I said before is same as we discussed previously. In this context also could you tell me a bit about what has been the discussion around the truth, the discussions have been going on for quite some time now. Every couple of days media reports seem to indicate there is some proximity to a settlement but nothing has been finalized yet. Well, as far as the dialogues are concerned, there are clear reports that though there are parties discussing the truth in Cairo, particularly what US Vice President Kamala Harris said on Sunday about the kind of need of a kind of ceasefire, which later she clarified that she is not talking about a permanent ceasefire. Only for six weeks during the Ramadan and extra days ceasefire, there is a progress on that. But as far as Israelis are not participating in it, the Israeli media is reporting that Israeli delegation has not been sent and it will not be sent as per the latest reports. So, whatever discussions are there, whatever terms are there in the public, it seems that Israelis do not agree with them with those terms. And despite the US claims, despite the claims made by Egyptians and other parties involved, it seems the Israelis are not ready to talk at this moment. And that is the latest situation. If you see in terms of aggression, not only in Gaza but in other parts of Palestine also, the Israelis have not taken any steps to kind of bring any confidence that they are willing to kind of halt their aggression and willing to have some kind of event temporary ceasefire at this moment. Thank you so much for that update. A study by University of Oxford researchers has revealed that privatization of hospitals leads to worsening health care outcomes for patients. The study conducted across various high-income countries found that in some cases, higher levels of privatization would even link to higher rates of avoidable deaths. We go to Anna to find out more about this study. Anna, thank you so much for joining us. A study which I guess its outcomes are not really surprising for those who follow this show, for those who have been working in the field of health activism like you. But first of all, could you maybe take us through what are the key findings of this study? Well, as you said, it's not really surprising, it's something that as activists, that's people who have been following health from a health for all perspective, we have been saying all along. And that is that unsurprisingly privatization of health does not work. It does not work as a regular good on the market. It cannot be left to market forces in order for it to function and to fulfill the role of supporting people's right to health, of giving them the chance to lead a better life. So what this recent study did is was looking at some of the previously done analysis of health systems in high-income countries and specifically at cases where previously public health services, including primary health, but also including hospitals, have been privatized and how that has impacted outcomes and quality of care primarily. And so what it shows is that of course, once something is privatized, that overwhelmingly you see a reduction in the number of staff, you see a reduction in accessibility for people. And so essentially what you see is a fall of the quality of care for patients. And that's interesting because it's something that's usually used as an argument in favor of privatization when those who want to privatize health systems approach governments when they approach the people. The first thing that they say is your health system is going to be more functional, it's going to work easily, it's going to be more accessible to you if we privatize because the public sector is so cumbersome, it's so slow, it doesn't actually work. So if we privatize, it's going to look better. Now what this research shows is that it's essentially the opposite. So while public systems do struggle because they are underfunded, because they're very big systems, which are very difficult to organize and to make sure that they can function on an everyday basis. Because the private sector puts highlight on profits instead of health, it turns out that they cut on some of the very elementary issues including pace, including the number of nurses and of non-medical health staff, which are working with patients. And more often than that even, they tend to cut the number of cleaning staff, of technical staff. And this of course has also impacts on quality of care, but it's not something that they're really prone to say openly. So essentially when you cut the number of cleaners at the hospital, you are putting people at a very great risk of contracting hospital infections. That's something that this research also points out. In this context of course, another key aspect is that even within this study privatization probably there are some winners and some losers when it comes to privatization. It's a very clear class angle as well. So you can talk a bit about that. Yeah, absolutely. So you know this is again something that we have seen over time is that when advocates of private healthcare come and point out the so-called good examples of how private care has improved accessibility and communications among the health system and patients, what they often overlook is that the private health system caters to a very specific crowd. So it's rich people. It's people who can afford private healthcare, who go to private healthcare. Now of course, because of the whole background of social determinants of health, we know that rich people or even middle-class people are of better health than of poorer communities. So of course, if you tend to attract people who can pay for healthcare, to begin with you are set to attract people, patients who are in better health. So of course, it's reasonable to assume that the care that you will provide them will be less expensive. It will take less time. It will be easier to sort out and you can focus on those aspects of care, which can generate much, much bigger profits for you. On the other hand, if you're a public health system, you care for everyone. And because of these influx and the strengthening of the private health sector, you tend to get patients who are in extremely vulnerable health positions who did not have the chance to care for their health before. So they're also more prone to turn up with very complicated health issues, which take a long time to address if they can be addressed at all. So it's kind of not essentially showing that the successes of the private health system, if there is, comes because it's actually, it's very specific to a particular population. And finally, I guess the key question often after studies like this is that is there really an alternative, especially considering the spree of privatization that has taken place over the past few decades with austerity policies with neoliberalism. So are there any examples of this process going in the reverse? Well, yes, I think it's fair to say that yes, there is. And while this study, it has to be said, it focused particularly on countries from the global north. So it's a bit different than if we look at the global picture. But if we look at the global picture, we do see people's initiatives to take back healthcare all over the place. So people have been essentially, they've been very vocal about the effects that the privatization of healthcare is having on their health status. So we've seen from alternative attempts to organize healthcare come up in Belgium, you know, through medics for the people who are trying to rebuild and to operate within a system, which is not really people-oriented to begin with. But then we have seen a range of cases, you know, along the tracks of deprivatization and remunercialization from other parts of what used to be a public sector and people taking back hospitals, people taking back health centers, people standing up to the closure of local health institutions. So that's definitely something that's going to be an interesting thing to follow as privatization pressures continue. Right, thank you so much, Anna for the analysis. Thanks. And that's all we have in today's day, lady. Briefly back to the new episode tomorrow. In the meanwhile, do visit our website, peoplesdispatch.org. Follow us on all the social media platforms. And if you're watching this on YouTube, please hit the subscribe button.


Last month, China dropped off from being the number one country from which the United States imports. So the United States had traditionally, China comprised about 20% of all imports into the United States with Chinese companies. Over 20%, 22%, 23%. I mean, significant numbers, almost a quarter of all the goods and stuff that the United States imports, it imported from China. As of July, not August, July, China constitutes 14.6%. So it's a massive decline with billions and billions of dollars. And this has started in 2018. And it's really accelerated since 2021. And we're down to 14.6%. And what has happened is that the number one nation whose businesses are exporting to the United States is now Mexico, which makes a lot of sense. Mexico is right here. It's close. So it's Mexico now, then China, and then Canada, all very close to one another in terms of the percentage that the United States imports from them. Mexico now is about 15%. China is about 14.6%. Canada, it looks like it's about 13%, something percent. So you've got a real shift happening in terms of trade, in terms of where the United States is importing the stuff that we consume. And what is happening is as buyers in the United States shift away from China, try to diversify supply chains, try to protect themselves from the potential for a war in Taiwan, a potential for, I don't know, some kind of economic crisis between the United States and China, sanctions, things like that, more and more companies are not moving production to the United States. What they're doing is they're moving production to places like Mexico, to some extent Canada, but primarily to Mexico. You're seeing a massive increase in the building of industrial parks, warehouses, all over Mexico, particularly in the north, in Baja, but also in Nuevo Leon, which is borders with basically Texas. But also in Chujar, I can't pronounce these places. Anyway, in the north of Mexico, also in the central of Mexico city and in the state of Mexico, just compared to the country, and in other parts of Western and Southern Mexico, basically across Mexico, there is a significant increase in economic activity, in building. Mexico generally is doing shockingly. I mean, really surprisingly, doing really, really well in spite of having a corrupt socialist leader as president of Mexico. Mexico has seen a surge of exports, primarily to the United States. It also has really the strongest currency in the world this year, stronger than the dollar, which is very unusual. So it has performed better than the dollar. The dollar's weakened as compared to the Mexican currency. There is a huge amount of foreign direct investment. It's a 40% in 2023 versus last year. And that's a consequence, again, of people diversifying supply chains, moving supply chains closer to the United States, becoming less dependent on China. And Mexico is a massive beneficiary of this. One could only imagine how well Mexico would be doing economically right now if it didn't have a socialist president, if it had even semi-free market policies as part of its economic policies. Tesla is building a proposed $5 billion factory in Mexico. So not since NAFTA has the country attracted so many investors, so much investment into Mexico. And we'll see. Mexico often blows these opportunities. This is a real opportunity for Mexico, whether it blows it because of horrible economic policies or whether the drug war goes out of control or something else, people resist making those investments. This could be unique. This is a unique opportunity for the Mexican economy. And the real challenge is, will they take advantage of it? Or will the corruption and the socialism of the authorities in Mexico undermine? Now, it appears that in the election, which I think is happening early next year, the two candidates, the candidate of the ruling party, the more socialist party, is I think the former, the mayor of Mexico City. And the opposition party is both women. So you're going to have a woman president for the first time in Mexican history next year. Clearly, the opposition candidate seems better than the ruling party candidate. But if this economic boom is a reality and continues, that might be an issue. The current president, Andrey Manuel Lopez Obrado, has repeatedly clashed with business interests, repeatedly clashed. He's a socialist after all and constantly is trying to regulate and control and break up. And if Mexico is going to take advantage of this massive amount of investment flowing into the country, it's going to need better business practices. Hopefully, the opposition could win. And hopefully, that victory will lead to a better, more prosperous Mexico. A more prosperous Mexico is great for America. More trade with Mexico is great for America. More building, more creation in Mexico. Fantastic for America. Among many, many things, it reduces the pressure on the border. We haven't really had positive net Mexican migration into the United States since the great financial crisis in 2008. Mexicans left America and went back to Mexico during the financial crisis. And very few have come back. So I don't think that's particularly good for the US. But it's good for all the craziness at the border not to have illegal immigrants from Mexico. The reality is, for Mexico these days is that plenty of opportunities in Mexico, they don't have to travel north. But they might be, if Mexico can actually embrace policies that lead to an economic boom, then Guatemalans, and Venezuelans, and others might decide to settle in Mexico because there are job opportunities there. Now, you've also got a low and order problem in Mexico that they're going to have to deal with at some point. This administration in Mexico has no interest in dealing and they basically cut deals with the cartels. I don't know if a future administration can do will and can't do any better.


Just like the swelling and the pain were caused by one thing, increased permeability of the capillaries, redness and heat are caused by one thing. Inflammatory cytokines cause vasodilation. Now think about that. Vasodilation, you are going from a little red capillary or blood vessel, arterial or venial that's here, and then you vasodilate. And how is it possible that that causes redness and heat? If you vasodilate, you're going to increase blood flow. Do you agree that if you increase blood flow, it's going to get red? Think about when you go running, just like this. That's what you look like, huh?   Why? Because I vasodilate like everything in my face.   So we vasodilate in my face, and it turns bright red so that my blood can cool itself on the surface of my skin. Vasodilation causes redness. Totally cool. If you are putting more blood in a place, what are you going to feel? What happens to your face when you vasodilated it so you can go for your run?  It gets down, which makes complete sense. So yes, vasodilation causes redness and heat. Now, the question is why? What is the advantage? Why would this be a beneficial thing to increase blood flow to an area?  Bring them in. If we increase blood flow to a site of damage, we are going to bring in more white blood cells who can attack. You know what? We're going to bring in more blood, period. Remember that our blood contains all our plasma proteins, including antibodies. If you shut down blood supply to an area of damage, and this is, this, you should think about this because when you damage a vessel, if you break the vessel, then you're going to go through the whole clotting thing.  But if you have an inflammatory response and all you're doing is creating chemicals, you haven't, you've actually increased the permeability of your capillaries. The increased permeability and the vasodilation are going to allow more blood flow to that area. If that blood vessel was broken, vasodilation would be a bad idea. It's not a broken blood vessel. We're just going to bring in the opportunity to have more warriors come to the fight. Does that make sense for your cute little brains? I hope so. Now, one of the things that happens, one of the things that's found in the blood that can possibly be a tool for battle is something called complement. And it doesn't mean that you said, oh, you look very lovely today. Not that kind of complement.


African swine fever virus, ASFV, has cost significant economic losses in many countries due to its rapid spread and ability to infect both wild and domestic pigs. In January 2022, two new strains of ASFV were discovered in Italy, one in Piedmont and the other near the first strain. These strains belong to the same genotype as previously identified strains in Europe and Asia, indicating that they likely originated from the same source. Additionally, these strains share similarities with the strains found in Georgia in 2007, suggesting that this strain may have been introduced into Italy through wild boar populations. Despite the similarities, it is difficult to determine the exact origin of the virus because the full-length sequences available in the database do not represent all affected areas. This article was authored by Monica Giamarioli, Dondo Alessandro, Cesare Kama, and others.


Hello and welcome to conformance testing the Kubernetes API tooling that makes the difference. I'm Caleb And I'm Steven We're with II a group in New Zealand with a focus on cooperative coding pairing is sharing for us You can find us at II diet in Z Who is II eyes made up of the following humans myself and Steven who are your speakers? Brenda who makes II function happy. Who's the founder of II? Rian who's the project manager and Zach? Who's the data wizard? Do I talk about conformance and it's tooling? What is Kubernetes conformance? I? Program by the CNCF to ensure that Kubernetes is the same everywhere with it you get stable API's November lock-in and Portability of workloads When I run my workloads, I expect them to run the same wherever No matter the vendor The general current conformance information about the program its vendors and distributions check out CNCF.io CK Calling that makes the difference We define and verify it conformance through tests Today we'll show some tooling that I use is to help improve Kubernetes conformance coverage The primary tools will focus on our API snub and pay dot sharing that I am First we have the API snub suite the suite is responsible for collecting and processing the data that makes up the definition of conformance That's allowing community members to generate the data that displays the results for conformance progress and also build out tests There are three components that will walk through First is snubDB, which is a Postgres database that processes the Kubernetes open API spec and any Etoedo log that you wish to make it ingest It runs as a job or it runs live in your cluster for querying And it also statically renders that data, which is then later picked up by web, which we'll talk about soon Next is audit logger. This is useful for live test writing It is a shim that sits between the API server and snubDB It captures logs using API server audit sync and audit policy to point to itself And it's also what we use for our live conformance testing development Finally we have web, which you might be most familiar with it's available at apisnub.cncf.io This is what picks up that statically rendered data and displays it as some very pretty dashboards and useful statistic information for sharing with the community Next we have pair.sharing.io Over the last year, IEI has built an open source development environment that runs in Kubernetes We think it's pretty cold to be working inside of a cluster Pair, governance name, it's about pair programming. With Pair, you get in a cluster With any clusters, any repos that you wish to work with In our case today, we'll be working with Kubernetes and apisnub Thanks, Steven. Now let's take a look at pair.sharing.io Here you can see the home page You're greeted with two buttons after you sign in. The first one is to list all instances and also this button to create a new one I'm going to go to this one to create a new instance, which will eventually give me a cluster Here I'm going to input the Kubernetes repo because while we're writing on we're writing Kubernetes tests and also the CNCF apisnub repo so that we have live test writing Enhancements. I'm also going to write apisnub ticket writing, which is a repo that IEI uses for all about ticket writing for Conformance tests. I'm also going to invite Steven as a guest so that we can both pair on it Normally now it hit launch, but since we already have an instance prepared. Let's jump to that one Going to the instance After clicking this list, you'll be greeted with a page to display a whole lot of information about it such as this name the creator, the time when it was created, who it was shared with, and various repos that it's loaded up with On the right hand side of the page, you'll see some beneath the metadata You'll see the sites that are available right here. These are ingress endpoints that are exposed in the cluster There's several ways to connect. You can connect through such things as a kube config through SSH or even through the web We have a pre-prepared window up to connect to the pair session right now. So we're going to switch over to that one Once in You'll be greeted with a A teammate Session teammate is quite similar to T-Mux if you're already familiar with it teammate makes those shared terminals Makes those multiplexed terminals shared With this cluster you can see that we're actually running the latest version which is 1.22.1 as of today If I run hostname, you'll see that this is the hostname for where we are right now Which happens to match this pod, which is the first of this list So you can see that we're actually working inside of a pod That's pretty cool. It's called humax Which is an Ubuntu base with teammate emacs and a whole lot of utilities that I use You can also see that You can also see the ingresses that are available This list matches the the one for the instance page also you have DNS access to your instance so you can manage any record that is at your instance name and beneath What's also special is that you have full TLS across all of the your pair host and subdomains You also have a web server That is running on dub dub dub With this you're able to to read and write files into the public html folder This will allow you to expose any files that you wish and Yeah, we'll look more into this later comes in handy Let's take a list of All of the pods that are running right now As you can see at the top you have Snoop db and audit logo. Those are the components from earlier And we're going to use them again very soon Why don't you tell us about emacs and org mode steven? I think that there's some very interesting things that we can do with that Yes Caleb. These are a ton of things that we can learn from emacs and org mode he's a basic Document that looks a little similar to markdown, but with emacs we've got some interesting superpowers that we get with org mode So inside of uh, code blocks not only can we document Sorry, we can both document the actual code but also the results from them. So here we've got the current working directory And here's the current pods So this lines up with what Caleb showed a little bit earlier the Abilities are Record both the content and the results is Pretty powerful and it helps us to keep on track with what's current and the next thing's on our checklist so This document here This is a starting template That we use when we're looking at starting a new issuer around potential endpoints that for conformance It's been helped to structure The discussions that we've had with the conformance group And so conformance meetings as well as with sig architecture. It's been very very helpful Down here When we're looking at testing for new endpoints, we can use api snow To ask it. What is currently untested? And by running this code block, we can start to document the process around Untested endpoints as well as what's the resources around them these resources once we Decide that They need to be tested as part of the conformance process We'll start to look at documenting them and then use the outline here as a way to start To structure how we're going to go about testing this new resource Once we've got that in place We would then update this Basic go test test that is currently working around pods To match the new resource. So instead of testing And creating a number of pods And listening them before deleting them We would end up Switching this out for another resource that's going to be part of conformance in the near future We can look we can track how the Odds are interact during this Test So that if we run it, we're going to see the Resource has been not only started but also terminated This lines up with the results that we've been given up here We can talk with and check with How api snow has seen these recent Endpoints been hurt And now a sequel a sequel query here the sequel carries showing the Create delete and the listing These endpoints have already been tested So unfortunately This follow-up query will query what is Currently going to be a change in test coverage But at this stage 402 endpoints showing full coverage at the moment Caleb what happens once we've got this far done? Great question So we're actually able to export it into different formats to use for different things For example, we can export it as various formats such as odt Markdown html or github flow markdown Along with the many more that there are i'm going to export it as html so i can view it on the web Now that it's exported i'm going to go to this folder and then copy that html file into the the public html folder From here we're able to navigate back to pair.sharing.io Once on pair.sharing.io We're able to go to the dub dub dub subdomain And view any files on it So i'm going to go to there And then i'm going to go to the the file that i put in there, which is called mock template the html Now i can view it in reasonably nice rendered html format This will enable quick review for anybody no matter what device that they're on Yeah, we we use this occasionally And another thing that we can do if i jump back to Emacs is if i go to the org file And then i export it again i'm going to this time export to github flow markdown And then from there i'm going to once again go back to Copy it to the public html and then return to pair.sharing.io And go to that subdomain and then go this time to markdown From here what i'm able to do is i'm able to Create a github ticket out of this Which i paste the contents of that into this box You can see right here that the ticket is rendered and it shows all of the steps of why do we need it What it is how we achieve it and so forth and Proving it from here we're able to bring this up into a discussion at the conformance meetings If not beforehand We we would also be committing this and pushing it to a branch for further review But i wonder what if there's an existing endpoint which just needs to be upgraded to Conformance and stable. What can you tell me about that steven? Pscale Once we've got a test that's actually part of the Kubernetes code base we'd be looking at Discovering where it is in The code base and i've got an example here in the diamond set This endpoint here has got a name A description inside of the name Uh quotes here at the top and with that Set of information i can Go back to a org file i've got org file here that's got the diamond set status and i'm going to run it at the moment and No endpoints have been hit at the moment But based on the Based on that Description that's in the top there we can go across to here and Put that information into a variable and then like at Running a ganko Uh focus test using the etui test binary This is uh testing the diamond set status and using some watches to check That various events have happened With once it's passed I can go back To the Query that we've got here on the block and when I rerun it I can find A number of endpoints have been hit This helps us to clarify with the conformance group And the appropriate sake in this case it was so gaps That we've worked with with a number of uh diamond set endpoints And this last recent lease And very well to confirm that everything's looking great So okay once I've finished all my work. What would I be thinking of doing next? Yeah, of course so Once we're finished doing our work We end up pushing it away and making sure it's committed and saved And then we make our way to pay dot sharing that I want small and then We can hit this big red button Which ends up deleting our instance this will uh Delete our cluster and uh Mean that we'll have a fresh one for the next day Why is it important to have a fresh instance every day? Because we want to make sure that our development environments are not pets This will increase automation and knowledge of how to work on the project And it'll also keep our configurations up to date and in sync and shared with everyone So that's pair Would like to give a special thanks to all of the conformance contributors of And community who have helped us get to 77 percent Conformance coverage, which is really awesome But also like to thank anyone who's contributed to make any endpoints stable or generally available Here are some useful links that you may wish to check out The top three are around the conformance testing program Ways to help out and also what's required to make sure that your cluster is certified For a particular release of kubernetes the last one further enhances the discussion around testing and how to find endpoints And just clarifying the process that we've shown in part here today Next if you'd like to get in contact Please reach us via the kubernetes like on the kates conformance channel. That's where you'll find the kubernetes conformance working group There's also the Google group and email that you can Send emails to which is on screen right there We'd like to give a special shout out to a number of open source projects that have helped not only the Test writing process become a lot easier, but also For presenting this Talk reveal js is really awesome and we're able to drive it through all mode Thank you those who attended live and those who have decided to watch later We hope to hear from you and we hope that this talk has helped you Let's move on to some live q&a