Hello! And welcome to another ArgoIoGoo completion presentation, this time about ArgoIoLauts. So can I see hands, how many people know what is ArgoIoLauts? Okay, how many people are using ArgoIoLauts? How many people are using ArgoIoLauts in production? How many people are using ArgoIoLauts without ArgoIoShington B? You're the best. Το μου name is Kostis, I'm working at CodeFresh as a developer advocate. I'm also working with the ARGO team, mostly with ARGO rollouts, of course. And I'm also the co-author of the first ever GitHub certification, that you find in the link there and in the QR code. I have to say some things about CodeFresh. It's an enterprise solution on top of all the ARGO projects, not just ARGO CD. And if you have seen the news recently, OctopusDeploy said, oh, they are doing some nice things, let's acquire them. So what we are going to talk about today. First, we are going to explain the problem and why it's a problem. And then I'm going to tell you about some things that you might not know, a Kubernetes download API and ephemeral labels. And then we will see a demo because this is why you are here. Yes, and hopefully it will work. So let's start with the basics. If you have never seen ARGO rollouts before, this is a two-minute introduction. And I will talk about stateless services first. If you get ARGO rollouts, you get a Kubernetes controller that gives you access to progressive delivery. So you can do stuff like blue-green deployments, where you deploy a second version of your application. Nobody is touching it. You can run some QA tests, some smoke tests. You can give it to your favorite friend. They can test it, and then once you're ready, you say, OK, now promote, and you are off the races. There is also the Canary deployment, where you do a similar thing, but instead of having a single point where you do a switch, you gradually send traffic to the new version. And as soon as you gain more confidence, you see it's more traffic until you reach 100%. Another thing that you might not know is that ARGO rollouts has built-in support for several traffic providers, but until recently, you had to request a provider, say, I'm using NZnext, HIProxy, Solo, whatever, and they had to add support for this in the project itself. Now, there is a plugin mechanism in ARGO rollouts, and I'm also involved in the Gateway API plugin for ARGO rollouts, which means that from this point onwards, you don't need to wait for the project to add support for something. If your traffic provider supports the Kubernetes API Gateway, it will be automatically supported with ARGO rollouts as well. So if you evaluated ARGO rollouts some time ago and you said, oh, it's not supporting my traffic provider, you need to re-evaluate again. Now, as part of my job, I always stay in the CNCF Slack channel and I follow the ARGO rollouts Slack channel there, and I see all the questions people are asking. And one of the most common questions was, OK, ARGO rollouts worked great for a single application, but I have two applications. Usually, it's a frontend and a backend, and I want to do progressive delivery for both, and I want my new backend to talk with a new frontend. So this was a very popular question, and I did a presentation last year for this. So if you have this question, you can either read the blog post and watch the presentation again. So that's the intro. Now today we're going to talk about using ARGO rollouts with stateful services, and because stateful services mean different things to different people, essentially it's this scenario. You have an application that is not an HTTP application. Maybe it doesn't have an endpoint at all, like an HTTP endpoint. The classic example is you have a work here. So you have an application, you launch it, and then it goes to a queue, read some stuff, run something, and maybe it saves the result back to the queue. Or some people abuse the database as a queue, so you read something from the database and then you store it back. And instantly you will see that ARGO rollouts knows nothing about this connection. It's not something that you do with a traffic provider. So you say, okay, that's great. I will use ARGO rollouts with my worker. You, let's say, select a blue green deployment. You start the new version. Instantly it goes to the production database and starts reading tasks. And almost always this is not what you want to do. You want to start the new application and leave production untouched and maybe run some tests, as we said, in the new application until you are certain about it. So people saw this and they said, okay, ARGO rollouts doesn't work with stateful services. And I know this because, as I said, I monitored the Slack tunnel and this has been one of the most popular questions this year. So people are asking how do I use ARGO rollouts with stateful applications. There is even a whole discussion in GitHub and they all ask the same thing. I have an application which is not following HTTP. It doesn't have traffic that my traffic provider supports. What do I do? And until recently they said, okay, I'm not going to use ARGO rollouts. But you shouldn't do this. You should use ARGO rollouts even for these applications. So how do you solve this? The simplest scenario is you say, okay, I have my application running. It's using my production database and now I'm going to start the new instance and I will create a brand new database or a brand new queue. It doesn't matter. And this will be just for the new version. So the production version will not see anything at all. Live users will continue looking at version 1.0 and they will still use the production database and your new application will go to a new database just for that. So not only production is not affected by what you're doing, but also you can take this magic preview database and put, let's say, test data, some custom scenarios that you want to test. So you also have an easy way to give custom test data to your new version and then run smoke test, QA test, manual test and then decide and say, okay, now this is ready to go. So how do we do this? We can do this scenario pretty easily with some components that I'm going to talk about. The first component is the Kubernetes downward API and this is an API that you get for free with Kubernetes. It's unrelated with Argo Rollouts and essentially it's a very nice feature where you can put some special labels on your deployment or your pods and then these labels can be mounted as the file system in the pod. You can also use environment variables but it's not a very good solution and we'll see why. And essentially you can say take these labels and mount them in your file system in any path you like. Here I have an example at ETC pod info labels and then your application can read the labels like a normal file. So the application doesn't know anything about Kubernetes. It doesn't even need to know that it's running in Kubernetes. It just reads a configuration file and you have passed the configuration file via Kubernetes. So we can use this scenario with our problem and say we will pass some special labels to our application and we will tell the application whether it's running right now in Canary or not making the application smarter and we will also have our source code read those labels and then the source code can adapt according to the situation it is running on. The Kubernetes API, as I said, supports also environment variables but we are not going to use them. Stick with just files. So that was one component. The second component is Argo Rollouts and essentially it's a capability that Argo Rollouts give you when you define your Canary or your bloomed deployment you can tell to Argo Rollouts hey, while the Canary is running the active service should have these labels and the preview service should have these labels and these are managed automatically by Argo Rollouts like once the Canary is not running the preview labels are not there once it's running they are added by the Argo Rollouts itself. So now you can imagine if you put all those components together we have the magic sequence where we have the application it's running in its initial state it's using the production database and we have told it via labels that hey, right now you're running in production then we say ok, let's do a bloomed deployment we launch a new application and for that application we will tell it via labels hey, you're not running in production yet so go look at a special preview database that they have just created just for you then you will leave production untouched so at this point you can post the Canary like normal, do whatever you want to do with the new version production stays unaffected live users don't see anything strange and then at some point you promote the Canary or the bloomed deployment and you say ok, I completely removed my original version it's gone and then for the new version hey, from now on you're running in production so change the way you access the database or the queue and then from that point onwards you're back to square one where you have a new version as a stable version so from this diagram you can see that the first part is kind of easy but the magic moment is in the third square where you say to the application hey, your role has changed do something different now you're not in Canary mode anymore now you're in production so we need another component for this which is auto-reloading of configuration I've seen a lot of applications where they have this simple behavior you start up as an application you read the configuration and then you're done that's not the correct way to do it the correct way to do it is to read the configuration from files you should of course have configuration files for your DB or your queue and then you need to monitor the files and understand if they have changed and then auto-reload the configuration and unfortunately or fortunately you need to talk with the developers about this so I know that sometimes you think the developers don't know what they are doing and we are the best no, you should talk with the developers tell them what you need actually you should tell them that this is a good practice to have anyway even if you're not using Argo-Rollouts it's a good practice to have your application understand when its configuration has changed and auto-reload this and because I've made this discussion with developers I'm giving you today the ammunition and I can tell you that there is a library for their favorite programming languages that does exactly this so if they tell you no, we don't know how to do that you're going to ask them oh, you're using Spring there is this refresh scope you're using Ruby there is this thing this thing the demo that we are going to see today is with Golang application so it's very easy in most cases just one or two lines of code where you say to the application hey, load the configuration and then keep monitoring it in order to understand if it's changed or not and if it has changed then reload it so it is possible but they need to do something about it usually one of in all my presentations I select one slide and I say this is the most important slide of the presentation and in all my past presentations this was a technical slide but in this presentation it's this slide so for this thing to work you need to talk with the developers and convince them and make them understand what you need and have them make their changes if they don't make the changes then everything I'm talking about today either will not work all it would work would work with a lot of more effort because I know what you're going to say oh, I want the application to reload I will kill the pods and they will restart and they will load the configuration again which is not how you do it ok, so enough about the theory let's see the demo so I already have an application deployed here on my cluster this is the Argo Rollouts CLI and nothing is happening right now there is only one version it's both the stable they preview everything and I've actually made this application just for demo purposes and it shows me what it's doing so this is the application that's running right now it says I am version 1.0 and I know that my role is active I'm in production right now I'm also printing my configuration like where do I get the configuration from it's from etc. slash pod info labels this is also another good practice that I suggest that applications should say where they load the configuration from so it makes things easier for you to understand why something is not working or not so even if you're not using Argo Rollouts I think this is a good idea to follow and then this application also says I'm going to use a RabbitMQ server I'm using for the demo RabbitMQ which is just a Q implementation you can use a Kafka or DB or whatever you want to use just as an example and this application knows that it hits my production Q so this application is a bit smarter than other applications it knows it's running in production right now so what I'm going to do right now is I'm saying ok this application runs fine let's create a brand new version so I'm coming here in my manifest and I'm going to edit the manifest and then here you can see the magic labels that say what you do in the preview and in the active case and you can see I pass different labels for the roll so here at the top it says your roll is active but at the bottom it says your roll preview and also you can see the RabbitMQ server stays the same but I'm using a different Q this is just an example you could say use a completely different instance of RabbitMQ as well so I'm coming here and the only thing I'm going to change is not any setting I'm just going to get the new version so as an administrator even my job is very easy because I just change the version I don't care about the settings I've set them once in the definition I change the version and I say I want version 2 and then I'm going to apply and I have a new version so if I go now to my roll out I have two versions running one is running in production the other is the new version and you can see right now that the active is still the old one so just for demo purposes it's paused nothing happens automatically because I want to show you what is happening of course in a real production scenario this could be automatic so now if I restart my port forwards so now this is production and nothing has happened production still runs version 1.0 and it's using the production to the base but I have a brand new version which is running production 2 and this application and it's easy in this demo to see the change has a completely different configuration here so in this example you see my configuration with just the location of rabbit and queue but in a real application I might connect to free databases, 5 queues or whatever so this application clearly says that its roll is preview so it knows it's not running in production and I can also verify this with rabbit and queue so this is my rabbit and queue port and you can see right now I have two queues there one for production one for non-production and also I can play with my tester which in a real scenario to be my production instance using this service so here I'm saying this is production so send messages to production and then if I go to production then you can see the messages here the ones I just sent so my production messages go to production and my new version doesn't know anything about them because it's talking to a completely different queue and then here let's say it's my integration test or my smoke test or my QAT team or whatever and I'm sending preview messages to my new version and then these are only picked up by the preview version and production knows nothing so I have achieved what I wanted just by changing the version on my side I have two applications running they are completely isolated even though there isn't like a traffic manager in between and I have all the time in my world to do as much testing as I want so now we reach the magic point which if you remember is the promotion so I'm going to promote and I'm saying okay I'm ready I like the new version everything works fine and now if I go back to the rollout you can see that the new version is active and in 19 seconds the old version will disappear so if I start my port forwards again so now everything should be the same this is version 2 and now it knows it is active the preview is also the same we don't need to look at the preview you see it's active and I think the best demo to show this is now if I send some messages to production so I'm sending some more messages to production and I go here if you look at the log it's pretty clear the cut-off point where the application was running in canary mode so it was picking tasks from the preview queue and it says preview message sent out and then as soon as I promoted my canary now the application says okay I'm running in production so I'm going to stop picking tasks from the preview queue and I'm going to start picking tasks from production so that's it for the demo but I want also to show you in this particular case and it's not important that you know it's go long it can be as I said in any language that as far as the developers are concerned the only thing I had to add here so here you can see I'm saying these are my properties these are things that you read from the configuration you are going to search for them these are the standard paths so as I said the application doesn't even know that it's running inside Kubernetes and the magic lines are these four lines from 35 that essentially says hey, place a monitor on your configuration and if the files have changed then auto reload so you don't need to restart any pods or kill something in order for the application to understand the new configuration this is something that happens automatically and I already gave you all the examples about the other programming languages so as far as the application is concerned this is the only change they need to do in the source code and as far as you are concerned the only thing I added was the part about the labels that I showed you before so this is just a standard blue-green deployment it has everything that you would expect and the new section is this one the preview and metadata that is for the labels themselves and then at the bottom you can also see the Kubernetes downward API where I'm saying take these labels and mount them as etc. So this part is your responsibility the source code is the responsibility of the developers so I want to show how clear is the distinction between tasks so if you cooperate with the developers everything works as it should so this is the same example I used and the QR code you have seen is completely open source you can follow it by yourself So what have we seen today it's possible to use Argorolauts for stateless services and Argorolauts has built-in support for many popular traffic providers even if your traffic provider is not supported by Argorolauts check the Kubernetes gateway API and see if your traffic provider supports this there is a plug-in for that if you want to use it for stateful services with a technique you have seen today by using downward API and auto reloading configuration you can use this in application as well So essentially there is nothing stopping you right now to adopt Argorolauts for your applications I will monitor the Slack channel and if I see any more excuses I will create a blog post or a presentation Thank you Kostis if I may ask a question Thank you for this presentation that's a very interesting technique very useful I have a specific question you mentioned that the application the previous application reloads the file right and then you said 15 seconds later remove the old version now my question is do you have some way for this application to tell the Argorolauts controller hey I've finished because my question is what if this new application is stuck in some way or cannot read the new file you don't want to remove the old version but the new one has successfully reloaded the config file So that's a great question and one thing I didn't show you because it was go lang specific here if you look at the the source code essentially apart from reloading it also runs custom code that says to the application stop now first so if your application is doing something at this point in time with this stop now function or whatever you use you can say wait 5 seconds until you are finished so again it's up to you to decide when this cutoff happens but you need to talk with the developers and tell them what you're doing so they know better the way of stopping something in the middle thanks I have another question if you don't mind so it's a really great demonstration how it could work with a simple database let's imagine that we have a database that is password protected and we could not have flawed syndication but it could be external service that is not integrated with a cloud provider so any hints which direction we should look for a solution so how you use secrets with ARGO projects is probably question number 0 no, question number 1 question number 1 is 0 is how you deploy ARGO CD and question number 1 is how you do secrets it depends on the secret solution that you are using so if it's like no, sealed secrets or an external operator or something else I would try to make the settings not the secret itself but maybe for example the token that you use in order to fetch secrets or the authentication method that you use to fetch secrets so the application is not responsible for reaching for its own secrets and then you have to put all this stuff in ARGO rollouts in ARGO rollouts you just enter the new way of fetching secrets but you might be in a company that says so the application as soon as it's launched it has access both to preview secrets and production secrets at the same time maybe for some people this is acceptable maybe for some people it's not there is another big discussion which is not for now which is whether you have your application reload all the configuration it needs during startup or it loads configuration dynamically as it goes that's a very good topic but not for today ok, thank you another question here we are stopping application inside inside the pod inside the container when the pod changes so when the config map which is basically the source of the change changes all the applications and all the pods in the stateful set will restart so basically we might drop some packets that are going to them so is there any difference between this and restarting all the pods except for speed we have downtime anyway so in this demo this was a simple demo so the application just worked the database maybe in a real application you would have request there as well ok, last one and then you would use the traffic provider as well and finally got the traffic provider thank you that's it, thank you very much


Preach the God of Irfan Khan.  It's Corbin. I'm Rick. And you can follow us on Instagram, Twitter, from our juicy content. It's so juicy. And also some Patreon, follow us on Twitter, and you can follow us on Twitter, and you can follow us on Facebook, and you can follow us on K-Squad. Bang! And today, um, we are celebrating Irfan Khan's life. Yes.  Um, I believe they've compiled every single thing we've said about Irfan Khan. Oh my goodness. On the channel, and made it into a video. Seriously? Yes. Dang! How? They're, yeah. I don't know, I didn't do it, but they're awesome. Okay. Are you ready? Incredible. Oh, heck yeah, I'm ready. Hold up, wait, almost. Wait, uh, okay, good. I'm good. Yeah, yeah, yeah. Three, two, one, go.  No, but I'm still fixated on- Is it not her? I thought it was her. That guy has done a lot of American films, too. Who? Oh, my word. The other guy was in the chair. Um, I don't know his name. I feel bad about it, he's done a lot of work. Freaking cast. I want that guy who was in the car that I keep- I'm telling you was, uh, I've seen in- That was the Piku trailer. What? One of the cast members, the guy, I can't see the thumbnails well enough to know. Him? Irfan Khan? I can't tell from the thumbnail. Irfan Khan? Yes! Please go. I've seen him in something.  He kind of looks like SRK, honestly. Uh... We're so dumb. This is 90% of Americans, ladies and gentlemen. Oh, so dumb. He was in Jurassic World. Okay. Boom! Yeah, he was the owner of the park. The owner of the park. I knew I saw it. But this is how it starts. That's right. Life of Pi. This is how it starts. No! This is how people can get to know him. We both love Life of Pi. Yeah. So he's done a lot of American films. Yes! So... This is how it starts with every American. I promise. I feel really disliked. Yeah. We know why now. I actually thought I was going to get it. I'm going to need tissue. Kind of similar to him. Sorry. Minds me how much I love Irfan, Ben. I know me too. And how much I love Irfan is arguably the most natural actor. If someone would say to me, right up top of your head. Still true. Some of the most natural actors you've ever seen in your life. He is at the top of my list. He's the most comfortable. He makes it look so effortless. So effortless. He makes acting. I would say if someone were to press me. What actor makes acting look effortless to you? Like at the top of the list. It's Irfan. I can't imagine anyone else making it look more simple and effortless. It's him. Always. Yeah. But it has Irfan's tongue. Is that how you pronounce his name? Irfan? I don't know that it's Ir. I think it's Irfan. Irfan Khan? That's my guess. Irfan? Irfan. Highly acclaimed actor in Jurassic World. Yeah. His greatest role. Highly acclaimed actor. Known for contributing to the trail of the man who owns Jurassic World. Still a thing I remember about the movie actually. We're joking. We are joking. We love him. He's a legend. And we're gonna get in front of the fact that that's what most people in America know him for. Today, it's Irfan Khan! The best Khan. Of course. Look at the growl. We can all agree that he's the most popular Khan out there. And because he is a man, does that mean he's a Khan man? Oh, stop it. I'm killing me. Stop it. I'm killing me. Okay. Irfan, man. Yeah. That's exciting. That just went through the roof. Yeah. We enjoy Irfan. Yeah. Come on. Come on. Sure. It has Irfan Khan. Hey! I love me some Irfan. It's good. It's Irfan Khan. Right. He's a great actor because he looks almost so effortless. Right. In what he's doing. Yeah. Guaranteed you're about to hear that a thousand times. It's almost effortless. Natural. Effortless. Here we go. But it works. It doesn't look like he's not trying. Well, you know what I mean. I know exactly what you mean. It doesn't look like he's just there phoning it in. Yeah. Every Bollywood party song with Irfan Khan. Okay. I'm interested with Irfan. Yeah. Are we going to see a side of Irfan we haven't seen? The left side. The left. Hey! I don't want to brag about myself. I... It's true. Oh! It's called swag. Of course. Look, boss. I don't want to brag about myself. But I want to say something. Yeah! But I swear. I said it myself. I don't want to brag about myself. Effortless. All of your work is out for the sake of it. That's what we always said about Irfan. Let's go. We... But I think the DVD... I think it's the last of the Irfan movies that were like at the very top of the list where it was like cool. Yeah. And this was way at the top of the list. Jurassic World. Yes. Jurassic World. Life of Pie. Have you even seen Jurassic, Irfan? Because that's the first recollection I ever have of Irfan. Yeah. For me it's Life of Pie. We had no idea. We do now obviously. Yeah. He was a legend. A legend. One of the best actors in India. And Irfan is what he... If he's as effortless as anybody that we're seeing. And... I don't know if I've ever seen anybody be so effortless. Or maybe Michael Cain. You know, he has an effortlessness that reminds me. It's very, very different. Sir Anthony Hopkins. Sir Anthony Hopkins all the time. In fact... There you go. Sir Anthony Hopkins just... Is just so... Just there.  So let's just stick to the acting. Yeah. No one else would be better for that. Yeah. I just think. I can't say. I love that movie so much. Love that movie. What are my favorite movies? I just told somebody to watch it. The other thing I want to know is how's Irfan doing? Because I know he had some really serious health challenges. I don't know. If you have updates, please let us know. Like to know and make sure that the man is doing well. Because he's a genius. Yeah. Love him. Wonderful. Happy birthday Irfan. Happy birthday Irfan. Happy birthday. We hope that you were good. And today is... Irfan Khan's birthday. It's Irfan Khan's birthday. It's Irfan Khan's birthday. It's Irfan Khan's birthday. I bet you knew what we knew too. We love Irfan Khan. Love. I think one of the best actors. In the history of man. I love him. I do too. I love him. And I'm hoping. I think I hear he's doing better as well. Good. Good. So I'm hoping. I don't know if he's back on his feet yet. I hope so. I was riveted. Yeah. Well it's hard not to be when you have Nawaz. Oh the short film. Yeah. Nawaz. Yeah. When he's on the screen you're just like. You're so interesting. So interesting. So interesting. Just everything that's going on behind your eyes. Like he's one of those people that he doesn't have to do anything. Yeah. He doesn't have to act ever. Nope. Because he has such an interesting face on him. Same with Irfan. Irfan Khan. Irfan Khan. They're just. It's the. To me. It's the. Say it effortlessly. Goal. Hello brother and sister. Namaskar Irfan. Namaskar. I'll be with you today. And no. Oh. Anyway. This film is very special for me. I really want to promote this film as much as we've made it. But there are some unwanted guests sitting in my body. You're walking with them. Let's see who's going to sit next to you.  It's a saying. Well life gives you lemon. You make lemonade. It's very difficult to make lemon. But what do you have? And what's your choice? Other than being positive. In these circumstances, you can make lemon or not. It's up to you. And we've all made this film with the same positivity. And I hope this film will teach you. Will make you laugh. Will make you cry. Then you'll laugh. Enjoy the trailer. Enjoy the film. Enjoy the trailer and be kind to each other. And watch the film. And yes, wait for me. Sweet. I hope you're doing well Irfan. Yes. We're sending all of our love to you. Get well, be well. Make more films, be around. Decades to come, sir. Yes, sir. You know, bottom line. If he's in a film, I'm seeing it. Just bottom line. If he's in something, I want to see it. And as always, I don't know that I've ever seen Irfan have a false moment. I think he's the most, one of the most effortless actors, I think is what we said. He is as effortless as Sir Anthony Hopkins. Sir Anthony Hopkins. He is one of the greatest actors I've ever seen. Any, anybody. Yes, sir. All of our love to you. Reach the gospel of Irfan, John. I hate that. I do too. I suppose in the end, the whole world always heard the most without his lessons. I would never have survived. I know Sir Parker is a tiny little boy who survived. Thank you for saving my life. I love you, Sir Parker. You'll always be with me. I still haven't seen that. It's a beautiful film. Beautiful film. And thank you guys for making that. That was over and above and beyond. Truly. That was amazing. And the fact that to see our journey with this man and now I've been saying the praises for Irfan for a long, long time. I think the first film I always recommend to any American is Lunchbox. That's the first film from India that I always recommend. And I think anybody can enjoy it because it's just so perfect. And the acting is amazing in it. And they get to, and now even more so. Because I want people to know the genius. Obviously I wanted people to know the genius of India in that film. But I really want people to understand that. Because we've seen it a lot today from American publications, whatever it is. Variety or TMZ or... The Academy gave a shout out eventually. I was happy to see. But it's always Jurassic Park, life of Pi and things like that. And he was great obviously. And I know he was great in all those. But he's so much more than that. The New York Times got it right. The New York Times in their article, their headline when you hit the article. It didn't just mention those. It did mention the Lunchbox. It mentioned McBool. It mentioned like three or four of his biggest films from India. It's not American's fault. They're ignorant. Just like we were. And it's not like a blatant ignorance of, I don't want to watch that. We don't have access to it. You know we have a hard time even finding these things. And it's not just that as well. We've admitted and we realized how self-interested and self-important Americans are. Yours truly included. And we think that we're the center of the universe. And that everything revolves around us. Forgetting the fact that the biggest film industry in the world is not Hollywood. It's Indian cinema. And that I'm 100% confident that anyone, irrespective of where they live, but especially in the West, they would have the exact same revelation and experience and go from, hey, I recognize that guy. This is one of the greatest contributors to this art form the world will ever see. I'm confident everyone who watches this man's work and understands and just cares about movies and acting, you can't help deny that this is one of the greatest talents to ever walk the planet. I know it won't happen, but selfishly I want him to get a posthumous Oscar. I do too. I said this today. Dude, if he's forgotten at the In Memoriam, I will go down to the Motion Picture Academy and do a fricking protest and get arrested. I don't think they can. Well, they can. Yeah, they can. I know. They have forgotten people in the past. It's true. But yeah, I would love for him to get one of those just selfishly. I know he doesn't need it. He has the love of a billion people. I know. He doesn't. But the reason it would raise another level of awareness to people here if they saw that. It would just add another level to a few people. And the more people who can get to know him here in any way, shape or form, bring it. We love you Irfan. Love you Irfan. Miss you. Thank you so much for everything.


Sorry I didn't interrupt, but actually that, I've already forgotten my own. What? They what? Was that spoken like a conservative white guy? Yeah, good. Channel my dad. Peter Ellerton, we've developed a strategy based on critical thinking methods to analyse the Ninalist claims. That was tops, give me one more. There wasn't tops then, was it? The past climate change argument is just like that. It's kind of like saying... While you're not doing a very good job, fake news is everywhere. Brilliant. Maybe a bit too much. That's a good, that's a good, that's a good, that's a good thing. John Cook, I research how to miss. If you insist, the first step in analysing a claim is to break it up into its components. Things that... So that's the first step and that's really significant. But what can you do about it? I have that napkin, I'm going to sell that on eBay. This article. Don't you want to wait until I sort of swab my brow with it? But what can you do about it? You were great. The bigger the praise, the more likely you are to say do it again. And we used them all in this paper that we published somewhere. In this case, the third premise is false. It commits the single cause fallacy, ignoring that there can be multiple causes of climate change. Oh, don't do this to me. This is like when I listened to my dad on the phone. I'm just getting started. Which is ironic because I just stopped. Maybe a few different versions of the dabbing. Maybe like a sort of a... Yeah, that kind of dabbing. We're done. We're done. We're done. We're done. We're done. We're done. We're done. Fine. Go.


What's up, everyone? It's your girl, Kenty here from Layton Sports Guards, and I'm ripping 2223 Penini Prison Basketball Hobby 4 Box Break Number 20. Pick your team. Got Aaron H Nets, Anthony C Magic, Charles W Hawks, Chang-Yau T Spurs, Chris G with the Celtics, Chun-Way W Warriors, Cody H Blazers, Edward P Lakers, Eric W Thunder, Howie W with the Clippers and Sixers, James R Bucks, Jasmine W Sons. Thanks again, Jasmine. Close this out. Jeff M with the Rockets, Grizzlies, Kings, Jeffrey H Pelicans, John K Bulls, and Nix, Carol K with the Cavs, Kim D with the Pacers, Kosuke K Wizards, Marlon B Mavs, Matthew P Raptors, Max K Heats, Nan J Hornets, Paul B, sorry, Jazz, Tony Y Nuggets, Wen Shun S, T Wolves, and Zach B with the Pistons. All right, best of luck, everyone. Again, we got five teams remaining. Four out of the five are on sale. We got Nets Clippers, Nixers, Nix, Sixers, and Sons. All right, good luck, everyone. Thanks again for getting this filled. Here we go. Good luck, good luck. Again, four out of the five teams are on sale, and then you got Sons again for 29 bucks. Where are we going? All right, great first break of this case. What the heck? Here we go. We've got NICE! How about a red shade and sharp color match for the Blazers, 189 out of 2.99. Blazers starting us off, Hots, Toronto, Matthew P. Very nice one there. On the color match and all. We'll mag that one for you. Fearless AI. We've got Lou Dort on the hyper. I think these are just backwards. Johnson, Walker Kessler, rookie base, and Rodman. We mag that one first pack. Nice color match. Yeah, beautiful color match. We've got Blue Ice, KD for the Nets. That one is 50 of 125. Brooklyn, fireworks, Beale, Silver Booker. Here's backwards. Ben Carroll, Cell and Coloco. Prismatic Silver, Donovan Mitchell, Dirk, Silver, T.J. Warren. Nott, Mullins, Alofton. We've got Blue Max Stress for the Heat. That is 168 of 199. And King, Sensational Signatures, Keegan Murray. What a start. Sack Town, going to Jeff M. There you go, Jeff. On the Keegan Murray Sensational Signatures Auto. Mag that one too. McDermott on the Pulsar. Dyson Daniels, Olajuwon, A.J. Griffin, rookie base. Got Prismatic Lamello, Hyper, Sabonis. Chandler, Watson, and Bain. Hot case so far here. Jalen Durin on Luck of the Lottery. Silver, Darius, Basely. D. Wade, Mobley, Rookie, and Johnson. Ruby Wave, Rookie is going to be a Benedict Matherin. Nice one there, Pacers. Saying like all the names backwards. Justin Holliday, Hyper. Braun, McGrady, and Jabari Walker, Rookie. Ruby Wave, Jimmy Buckins, Luke of Fearless, Silver Bones. I don't know if Jeffson, Chad, or not, Timothy. Sohan, Rookie Base, Moore, and Ray Allen. We've got Red for the Cats. Karis LaVerse, 48 of 299. Now we've got Spurs on the Sensational Signature. It's going to be Doug McDermott. Spurs. Walker Kessler on the Hyper, Rookie. Jess, Jalen Williams, Rookie, and Brooks. Purple is going to be a Precious Achooa for the Raptors. That is 8 out of 99. Beed, Silver, Martin. Tunky Buckins. Pippin Junior, Rookie. Ruby Wave is Joellen Beed. Prismatic Beal. Got Yolkich, Hyper. Wilkins, Yolkich, Rookie, Tim Duncan. Silver, Fireworks, Kyrie. Lillard, White Screen. Diabatte, Rookie. Jackson, Wesley, and McGowins. All right. Solid first box there, I'd say. Two mags out of the first box. Let's keep it up. Prismatic, Paul George. Silver, Jeremy Grant. Boat Champ, Rookie Base. Jaden Hardy, Gary Payton. Should you cop the nuggets in Prism, four box? I haven't hit anything huge for the nuggets yet, so there might be one coming. Dyson Daniels on the Ruby Wave, Rookie. Nothing crazy yet for the nuggets. Lavine, Hyper. Terry, O'Neill, Williams, Jr. I think they're still available in the next one, right? Who do we got? Sun's Nets Clippers, Nick Sixers. Not in the next one, maybe in 22. We got Red Power coming up. Let's see. Let's see, let's see. Yeah, Timothy, that's six. Celtics. Here we go, Chris. What do we got? A Owl Warford. Big Owl. This is the second red power we pulled up him today. 41 is 75. Here we go. Celtics. Big Owl. Got Luck of the Lottery, Dang. Silver, Jaw. Richardson, Christie, and Nembar, Rookie Base. Looking for Christian Braun. Nice. We pulled a couple Bates and maybe like a Pulsar or Hyper of him. I don't think any numbered bronze yet. Ruby Wave, Eubanks. Randall, Gary Trent, Jr. on the Hyper. Lofton, Johnson, and Walker, Kessler, Rookie. Who's opening and closing the door? What are they doing out there? Right, yeah, some old school love going today. We've got Prismatic Silver, James Harden, Yolketsch, Ben Wallace Silver, Bancaro, Rookie Base, Devon Macel. Got Red, Palo Bancaro, Magic. Two out of $2.99. Think my guy Anthony had him this time. O-Town. There you go, Anthony. Nice Bancaro. It's a hard pull, any numbered Bancaro. Let me tell you, heck yeah, couple off that Jersey number as well. Congrats on that, Anthony. We'll mag that one for you. And behind it, we've got our auto. It's going to be a Jake LaRavia for the Grizzlies. This is a great break. And Pulsar, Jalen Williams, I.N. Williams. Coloco, there's a Braun Base, and McGrady T-Mac. This is a fantastic break. Come on, let's keep it up. Ruby Wave, Splashbro number two, Yanis Prismatic, Silver Cam Reddish, Houston Rookie, and Shit Unsharp. Blue Jason Kidd for the Nets. That one is $42.199. And we've got Hopps, Jalen Johnson on these Silver Sensational Signatures. Pulsar, Ubre Jr., Ingram, Chet Rookie Base, and Dang. Dang and Chet, follow each other. We've got Blue Ice Al Horford going for the Rainbow now, Chris, to $125. We got two. Dyson Daniels, Silver Bogdanovich, Minnats, and Molens. Ed is going to be MPJ for the Nets to $2.99. Prismatic, Trey Young. We've got Walker Kessler on the hyper for the Jess. And we've got Ladel, Jones, and Igbaji Rookie. Big Man Al, got to collect the Rainbow. Silver Fearless Dirk, LaMelo White, Green, Silver, Warren, Brown, Garnette, and Jalen Duran Rookie. Last time, Fox2. Zach Levine, Fireworks. They have Hyper, Jalen Green, Genobly, Matherine, Rookie, and Tyce Jones. No green seas color match though. No, I don't think we pulled a green yet. What are those? Still out of five? Fox3, I don't know if anyone's pulled a green out of prison yet, Chris. I haven't seen one. That's why I'm like, wait, what's that number out of? Greens are usually out of five, right? Yeah, it's your choice. Green scope. Let's see where we are in this next break. Let's see, let's see. Still five left y'all. We've got Nets Clippers, Nick, Sixer, Sons. Five to go. There is the link for you. Let's get that one filled up. Silver Prismatic, Lillard Fearless, Silver Tony Parker, Chandler Rookie Watson in Bane, Prismatic Harden, Silver Quentin Grimes, Walker Kessler Rookie, Rodman. That kid looks like he's like 16. Oh my gosh. Ruby Wave, Wilt Chamberlain, Booker, Lucevich on the Hyper, Van Kaeler wrote the base. Coloco. Purple is a Jalen Smith for the Pacers that is 92 and 99. Luck of the Lottery. We've got a Matherin, Silver Booker, Christian Braun Rookie, McGready and Jabari Walker Rookie Base. Five to go on the next one. Purple Ice is a Dremont Green Warriors to 149 Kawhi Leonard. Isaiah Mobley on the Hyper Rookie for the Cavs. Wade Mobley Johnson. Ruby Wave, Jalen Brown, Celtics. Luca Hyper of Josh Hartz. Sohan Rookie Base, Moore Jr. and Ray Allen. Otto coming up here. Got Blue, Kendrick Nunn for the Lakers. That is 185 199 and Lakers. Otto, we've got Max Christie on the Rookie Signatures. Lakers back here. Pulsar Rookie, A.J. Griffin, Carter Davis and Weber. Red Wave, Terence Mann Clips, Prismatic Barnes, Silver DeMar de Rosen, Wilkins, Jovitch Rookie and Tim Duncan. If it's a Supersonic, it's going to go to the Thunder as that's where they relocated to. We've got Brook Lopez, Red. That one is 190 out of 299. And we've got Kings, a Keon Ellis, Sensational Signatures, Rookie Otto. Kings doing well. Second Rookie Otto there. Jimmy Bucket, Hyper. Graham Ewing and Pippin Jr. Ace Patrick Beverly for the Lakers. That one is 112 of 125. Lakers Box, A.Bhaji. We've got Silver Finney Smith, Jalen Williams and Brooks. Silver Fearless, Lillard, Widescreen, Jaws, Silver Rookie, Patrick Baldwin, Jr. Warriors. Daniels, Elajoan, A.J. Griffin. Last Pack, Box 3. Fireworks, Lamello, Pulsar, Tyrese Maxey for the Sixers. Jackson Jr., Wesley and McGowan's. Last Box here again, number 21. We've got Nets, Clippers, Nick, Sixers, Sons. Five to go. Nets, 44. Clippers, 29. Nicks, 39. Sixers, 49. Sons, 29. Let's get that one filled up. Red Wave, Cameron Payne, Sons. Tatum, Fireworks, Silver, Josh, Giddy, Graham Ewing and Pippin Jr. Ace, we've got Precious, Atua for the Rafters. That is 19 out of 149. Bowls, we've got A. Signatures and B.J. Armstrong. Paul George Hyper, Nash, Williams, Brooks. Orange Wave coming. Show me a rookie. We've got Frank Jackson for the Pistons, 32 out of 60. Detroit, Jabari Smith Jr. Luck of the Lottery, Silver Eric Gordon, Sohan Rookie Base, Moore and Ray Allen. Silver Fearless, Barclay, John Moran, Silver Rookie, Kennedy Chandler, Jackson, Wesley, McGowan's. Let's see a numbered out of. Chrismatic Zion, Pulsar of Jada McDaniels, Wilkins, Jovitch Duncan. Luck of the Lottery, Chet, Silver Marcus Smart, Ben Carroll Rookie Base, Rocell and Coloco. Yeah, Timothy. So nice one. Ruby Wave, Rookie, Ty Ty Washington Jr. Rocket's Color Match, Lillard, Connington on the Hyper, Braun, McGready and Jabari Walker. Blue Ice coming up here. It's going to be a Chris Middleton for the Bucks. Now it is 114-125, LeBron fireworks, Silver Cameron Payne, Isaiah Mobley, Magic Johnson. Of Christian Wood, the 299, Mavs. Fearless, Barclay, Hyper Rookie of Josh Minot, T-Wolves, Griffin Rookie. Ruby Wave is Josh Hart, Prismatic Levine, Evan Mobley on the Hyper for the Cavs, Chandler, Watson, Bane, Tupac Slaps, Silver Fearless, Jop, Wide Screen Curry, Silver Rookie, Peyton Watson, Nuggets, Carter, Davis Rookie and Chris Weber.  Got red Tobias Harris for the Sixers. That is 63 of 299. And nice one here for the Bucks. How about a Rookie Otto, Signatures of Marjon Bochamp? You know Milwaukee? Nice Rookie Otto there. AI, Pulsar. We've got Jalen Williams, Ricki Mikes, Clark and Diabatte, Rookie. All right, another solid break. Started off hot, that's for sure. All right, recap time. A few Magged Cards. We've got a BJ Armstrong, Bulls, McDermott for the Spurs, Keon Ellis, Rookie Kings, Bochamp, Rookie Otto, Bucks, L'Arabia, Grythly's, Max Christie Lakers, Silver Jalen Johnson for the Hawks and our Magged Cards. We had the Sensational Signatures, Keegan Murray, Rookie Otto, Kings, the Red, Shade-On Sharp for the Blazers on the Color Match, 189 out of 299. And then the Red, Hallow, Bancaro for the Magic. That one is 2 out of 299. Grats on that one. All right, that'll do for 20. We've got number 21 coming up once it fills. Thanks, everyone.


It's time Yeah, I think so. Yeah, so thank you for coming Today I'm gonna try to Summarize in 20 minutes One year in QA LibreOffice QA When I thought about this presentation I I thought about a couple of things I could talk about but in this presentation I'm gonna focus on Baxila which is the the backtrackers we use and basically the main tool we use in QA So about me The QA engineer at the document foundation since September 2016 I'm based in Valencia, Spain, and that's my email and my nickname in IRC or telegram so in this talk I'm gonna focus on Three main topics the first one it's a New reports We got in Baxila during this year then second topic Tickets Three a triash during this time. It doesn't mean Those tickets were reported during this year, but it probably are sometimes they were reported before but they were Triash within the this year and then also I'm gonna talk about those tickets close during the the last year so The frame of time I cover it's from Lhasa Fosden Well a bit a couple of days before so it's from February 1st and then up to This week on Thursday I based this Talk on a couple of blog post I did in the past during this year where I Talk and I share some statistics in Baxila and I also did a similar talk in and LibreOffice conference in Rome but in this one I'm also adding some more information I didn't use in this Block post or that all this talk in the past and for in order to to get the The data I use an script that it's here. You can use it or even improve it and Yeah, I just add the script together all the all the data and well This is the general Build this is from from today. I took the screens of today This is Baxila the LibreOffice Baxila right now. We have 56,000 almost 57,000 bucks reported in general So it's difficult to Kind of summarize Baxila one year In a presentation so I'm gonna use a lot of Charge a lot of pipe pipe charge, maybe it's not the best one, but I don't really know how to Sometimes present this kind of information. So I hope you kind of understand it So first I'm gonna talk about the new reported tickets Well, we have to Do two categories in the reported tickets from on the one hand we have the Bax and on the other one we have the enhancements. So in general during this year little more than 7,000 tickets were reported in Baxila and from those Well, almost 1,000 were enhancements and the rest were Were Bax and it was done by 2,800 people and Here you have the top top 10 Users or people reporting Tickets and we have the list of the the first one who has reported 355 and then Jay Yeah This is how many reports we get every week and The bread one those are the box and In here those are the enhancements and as we can see most of the time the enhancements are Every week they are similar. We have the the similar number of reports, but then Talking about Bax. Well, it depends on the week we have like Release a new version, but I match the the releases and it's not the case So so far I couldn't find any way any reason why we we get more we got more reports this week sorry, yeah, and Yeah, in total we get around 135 reports and for for from those Around 117 are back reports in average And this is the same chart but split by by month so We got in average around 600 new reports every month and from those around 80 are enhancements Yeah, then About the current status of those Reports we got during this year. We see that if we look at the General picture here. We see that right now 33% of those are still open, but then if we split the chart between enhancements and Bax we see that 66 of the 56% of the enhancements are still new While 30% of the Bax are Still new so it's important to differentiate between enhancements, which most of the times are nice to have features and Bax which is From my point of view Things that we have to focus more Although enhancements are important as well And here we see The components We get for each report so right there in both cases is the Component we we get more reports for but then Talking about enhancements. We see that the second one. It's about LibreOffice in general While here the the second one is calc and then we also see here that Android we got we we get like 8% while in here we don't get much which is kind of expected because Android is under development now so people just want to have more features there But probably that also means that we should at some point focus more focus more on Android Enhancements because people is people are asking for that Okay, no, that's everything Yeah, it's not there Yeah, maybe Okay, so yeah, then it's only LibreOffice the product Yeah, probably yeah, and then this is about The version of those reports. This is not really accurate because if someone reports a bug saying it's happening in the Sixth branch in the release this week. It doesn't mean this bug is coming from that version Maybe that bug was there from the beginning But yeah, we see that during this year, which is kind of expected most of the bugs were reported against version 5 or the branch the interior branch, but It's also significant that we are still getting some Inherit from open office or even three LibreOffice three bugs then About those Tickets triage during during this year. Oh Okay, so it should be should fit here well Here we see the number of unconfirmed bugs per week So we see that the number of Unconfirms It's kind of a flat But then at some point we have some peaks where the number of unconfirmed bugs are going up And I think at this point we had the LibreOffice conference So no one was triaging bugs. So that's the reason we we have more Unconfirmed bugs there Ideally we should Have this to zero or at least try to because then The less we have the the faster we can triage triage bugs But yeah, right now like last year it was around 476 and right now it's about 410 so we are kind of going that way although it's going to its long process and here where we see When a bug is confirmed it means it's go it goes from unconfirmed to something in something else So it might be need info or new or resolve Duplicate so it's a every status different than Unconfirmed so during this time five five thousand six hundred tickets were confirmed from those Around 800 were enhancements and the rest were bugs and this triaging was done by 240 people See here we see the top ten and Right now. This is the the status of those Triage bugs or triage tickets. We see that if we look at the whole Picture we see that 45 percent are still new but then if we split it then we see that 71 percent of The enhancements are still new while The bugs 40 percent are new it doesn't mean because we are counting like even bugs reported Last week or last month. So it's really difficult to To get a bug fix reported this week and fix within a week a week. So that's the reason we have The number of Bugs in newer status at 40 percent So probably if we could take another range if we if we took another range of a frame of time like Last year probably the number would be less and here in this chart and Measuring that the the timing In order to triage those bugs. So we see that in five percent Fifty-two percent of the tickets. They are triaging one day and then Within a month we have like 80 percent of the of the tickets triage and then well there are always some tickets which Take longer or there is no way to reproduce them. So we like we have like less than one percent which are more than three years in Unconfirmed status, but then yeah, it's important to to know that Within a month we will we cover like 80 80 percent of them 85 percent of the bugs and Then again the version Well kind of spectate that what most of the triage box bugs are in LibreOffice 5 Probably if we do the same next year, you're gonna be LibreOffice 6, but we also have 15 percent of the of the bugs already in in LibreOffice 6 and then an important part of the Triaging it's also a tagging at the bugs and well An important one I wanted to to remark is tagging bugs are regression so we have During this time around 1,000 bugs were tacked as regression by 78 people and This is the the chart over the time We see that the open regressions is kind of flat although it's Slightly going up, but then the number of total regressions in Baxila it's It's growing faster, but the one we have to care about this one So so far it's flat ideally should go down But as long as it's going faster or like this it's it's good and then well another Important task in Triaging back is to bisect them. So we have around this time. We have around 650 bucks Tuck as bisect it was all my 20 people and It's kind of the same we see that the number of bisected bugs The open ones are kind of flat and then the number of bisected in general it's growing faster and Yeah, we have another this Keyword it's also important to to when the application is crashing or to when there is a Hand in the application. So it was done on 258 bucks and Sorry, that's a mistake there and it was done by 15 people and Then here we see that the status of this back. So when you when a buck is stuck as regression 36% of them are still new But then if we just if the buck is bisected Around 30% are new and then if we add the half back trace Well, if we have a buck trace then it's even lower So it means that the more we can provide to the to the developers the The well, it's gonna reduce the number of open bucks and Here is the the time comparison. So we see that within a month the tag regression tag is at for 85% of the cases and the same for bisected and have a buck trace and Well, this is the the version of this of each Keyword and now well, I'm going to talk about the close tickets So in general close tickets are those who are moved to resolve verify of close or close and here is the top ten people doing that and well, we have around 536 people who has done that and Well So we see that If we focus on on bugs, we see that 20 22% of them were resolved as fixed 22% were resolved as duplicated and then In sufficient data which means The bag was moved to need info then we didn't have any feedback from the user So in the end we close it as insufficient data and here I don't see Like 20% it's work for me, which means the bug Was reported at some point and then the user try it again without a newer version and then it was fixed So this is the chart for the bugs close Every week and we see some peaks here. That's because that week We move all this need info box to insufficient data. So that's the reason we have those peaks there and this is every month and Well, if we focus on those which are fixed then we see that 1866 we're moved to resolve fix here. We have the top ten and it was done by 152 people and If we focus on those which are duplicated it was done by 125 and here is the top five so we here Profile which is developer and in here we see QA people and The time comparison we see that well No, so So let's focus on resolve fix. We see that in 9% of the cases they are close within a day and then around 40% of the cases they are close within a month and Yeah, within a year. It's around 70% of the cases and on the other hand We have the resolve duplicated which normally are close as duplicated within the first day and then around 60% of the cases or 75 65 are close Within a month Sorry, but yeah, I didn't know like how to process all this information, but maybe it was too much for you


The second small food business idea you can do from home are cookies. Cookies are super beloved and it has a mass appeal to all age groups. And that's the reason why it hits that list. The pros of running a cookie business is that it is very easy for you to enter. And on top of that, you can actually have a lot of creative ways to make a good cookie. The sky's the limit when it comes to creating cookies. And on top of that, you can actually batch create many different cookies and you can shove it into your freezer so it makes production a little bit easier as well. Now finally, selling cookies have good margins as well, anywhere from 30 to 40%. That gives you plenty of healthy margins to play around with.


What's up y'all it's your girl Kenzie here from Layton Sports Guards, and I'm ripping some personals for a pitman 8 She've got to 2023 penini prism WWE Hobby Boxes best of luck pitman. Thanks so much for your patience Here we go color blast time Come on. It's been a while since we've seen a color blast Got hyper Kevin Owens red Sheamus to 199 Yeah, John Cena auto to color blast Anna John Cena Ruby wave she must purple Angelo Dawkins to 149. It's backwards still Toro I was waiting for you to say something why is Got hyper Humberto Silver Stone Cold Steve Austin.  That was the cutest and funniest thing man If you haven't I'll have to find it and show it to you. Did you?  Wow. That's sick. That is seven of 99 beautiful hit there for you most matches the Outfit nice, that's it purple of loot gallows to 149 One more out of here. Hey for Malik blade silver of Gigi. Don't like speaking of There's Otto we've got to 49 blue superstars of duo drop Nice little numbered Otto there silver Carmella Ruby wave of Wesley Blue the almighty Bobby Lashley to 199 prismatic entrances silver Eddie Guerrero blue wave of butch red Randy Savage Got hyper Chad Gable Silver rookie of Channing stacks Lorenzo got Ruby wave of EOS guy. I was guy Andre Chase silver And base All right, so the first box there for you on a pitman number two. There we go box two Good luck that hyper of J. Uso Silver Raquel Rodriguez First Otto up we've got to 99 is gonna be red sensational signatures of Juvento or Juvented Garcia Or Guerrero, sorry Juvented Guerrero sensational signatures 86 of 99 silver of siampa You've been true when I say Juvented A ruby wave AJ Styles. We've got red of Ariana Grace rookie to 299 Juvie sounds a little bit easy We got teal aqua of Nathan Frazier that is 8 of 49 Love that color on that Prism stock Eddie Guerrero purple hyper hitman heart Silver MVP We have a Legendary signatures of Eric Bish Bischkopf legendary signatures And the silver hyper of Joe Gacy red Dakota Kai Ruby wave of solo Sioka blue bronze Strowman to 199 got Ruby wave of Chad Gable silver Angelo Dawkins CW got hyper of Korra Jade silver of Baron Corbin Ruby wave edge red rookie of Keanu James Stone Cold Steve Austin last pack you're free blue wave of Elja Dragunov blue rookie of Ariana Grace and base Alright, that'll do it pit man. Thanks again for your patience and wait and we'll get these right out to you


documentation for users with AsciiDoc and Etoro. Welcome to my talk at the DEVCON device. My name is Alexander Schwartz, and I'm a Principal IT Consultant at MSG. It's all about empowering your users with documentation so they get their work done. To do this, you need to keep your documentation content up to date. You need to keep your content consistent, and when you publish new features of your software, you need to publish updated documentation at the same time in sync. AsciiDoc and Etoro help you to do that. Etoro provides you with an online documentation site. You can fully automate the process so you can be up to date all the time. The documentation is searchable and topic-based, so your users can enter a search term in the search field and get a list of all the topics that they can then read. You will have a navigation outline that users can browse, and you can have cross-references within your pages to direct users to related content. All your content is grouped by a version and component. Grouping it by a version allows you to direct the user to the documentation that matches the version of the software they have installed. Grouping it by a component allows you to address different kinds of users with different kinds of content. Etoro provides you with the publishing tools and the documentation structure. The documentation is structured into components and modules. AsciiDoc will collect content from multiple Git repositories and branches, and will convert all the AsciiDoc content it finds to HTML output. It merges the HTML output with a UI theme and creates aesthetic sites. The key benefits are that it has a very fast conversion built on top of Node.js and minimal dependencies. It's quite modular and extendable, so you can add the things you need, even if they are not part of Entoro Core. Entoro builds on top of AsciiDoc and AsciiDoc. AsciiDoc is the language of the content, and AsciiDoc is the toolchain to create HTML from AsciiDoc content. AsciiDoc is frictionless writing using plain text. Therefore, it's well suited to be checked into Git, so you can also cherry-pick it and compare it with older versions. It has a feature-rich syntax for technical documentation. It has great support for lists, for tables, for listings and call-outs, so everything you need to write really good technical documentation. It's been around for more than 15 years and alive and kicking. Last year, a standardization has started at the Eclipse Foundation. AsciiDoc is the toolchain to create HTML and other output formats from AsciiDoc. It's open source, it runs on Java, Ruby and JavaScript runtimes, and it powers Entoro's AsciiDoc to HTML conversion. Today will also be about writing in your IDE. When you write inside your IDE, you will stay focused as you don't need to switch any apps. You will get the best support, collaborate using version control because IDEs provide great integration with Git. The IntelliJ AsciiDoc plugin provides both Entoro and AsciiDoc support. Full disclosure, I'm the current maintainer of this plugin. If you have any questions, please direct them to me either by email or using the GitHub issue tracker. Let's dive into Entoro a bit more. Let's dive into the structure. As I said, Entoro has components. An Entoro documentation site can have multiple independent components. Each component is identified by name and version, and each component can have multiple modules. And you can have cross-references between components and cross-references across modules. Each module has a predefined structure. There are pages, images, examples, attachments and partials. Partials are content snippets that can be included in multiple places. This helps you to make your site consistent as you don't need to copy around content. An advanced feature is that a component can be distributed across multiple folders, branches and repositories. When you start small, you might not need this feature, but if you have a bigger documentation project, this comes in very, very helpful. Looking at the Entoro process, the user just runs Entoro and Entoro does its job. But what does Entoro do? When the user starts Entoro, it loads the playbook with a list of all the repositories and branches that the content is. Then it clones these git repositories. It creates HTML output from all the Asciidov content in there, merges it with the UI theme and the customizations. Optionally, it can also create the search index and other things. And finally, it creates an output folder with a static site. This static site can be hosted on any web server. You can also publish it on a content delivery network or send it as a zip file to your customer. So what are the roles when you set up a new documentation project with Entoro? Well, you need to have some authors. They structure and write the content for your documentation site. They need to be familiar with Git or willing to learn to work with Git because this is the way you collaborate with other authors. All the content they write, they write in Asciidov. You would need to have some docuOps people who are familiar with automation and infrastructure. They set up a Git repository, direct YAML for configuration. They set up a package JSON for some version management and set up continuous integration for automation. Last but not least, you need to have some web developers who can create a website. They need to know about HTML and CSS to customize an Entoro theme. Depending on the amount of customization you wanna do, JavaScript will come in helpful. The first steps to set up an Entoro site would be that the writers create the first component with a folder structure like this, create an Entoro YAML and give the component a name and a version. Then create the first page in the pages folder, create some navigation entries in a navigation file and reference that in the Entoro YAML file. And the docuOps people, they will install Entoro, either using NPM or package JSON file. They will create a playbook to generate a local preview site for the authors and another playbook to publish the site on the internet. The web developers, they will copy an existing UI theme for Entoro or they will create their own and provide the necessary customizations, for example, for the right header and the footer so that they have the right content. So now it's demo time. Let's see how this works using the IntelliJ Ask a Doc plugin. IntelliJ Ask a Doc plugin uses Entoro for both the user's guide and the contributors guide. So this is the IntelliJ Ask a Doc plugin. This git repository contains both the documentation and the source code. I chose to put the documentation in a folder called doc but you can name it anywhere you like. I open up this folder and see two folders. One is the contributors guide. One is the user's guide. Each of these is one Entoro component. And when I open up the user's guide, you see the typical structure of a component. I see the Entoro YAML file and a folder called modules with all the modules in this component. They open up this component and see the mandatory elements in here. That's the name of the component and the version of the component. I can specify additional optional attributes here being like the title or I could mark it as a pre-release. I can define the start page. Now I open up the modules folder and see that there's a navigation file in here. Once I open up this navigation file, I see a list of navigation items. They are on different levels with the usual Ask a Doc syntax. What I reference here on the left in the source code is only the name of the file. On the right, I see then the navigation title. I click on the installation a doc and now I'm in the installation file. I see the title here that's also part of the navigation. I see my sections here but they have IDs that I can reference later. This is the text with a preview. I can scroll them independently but once I place my cursor, preview scrolls to the location of the cursor. Here I have a partial that's being included here. A partial, a common snippet of text describing the Java FX preview that I use in multiple places and I include it like this. I can reference other pages using Xref or I can use local references within this page like this. The text editor of the Ask a Doc source behaves like any other text editor in an IDE. You can fold sections. You can navigate to references. You have auto-completion. So if I want to add a reference here, I will get an auto-completion of all IDs that are within range. This behaves really like code with all the auto-completions and validations you can mark produced will then appear in a to-do list. So all the convenience elements you would expect from an IDE are here. I can also choose the structure outline view. So the same structure that I see here and that I can fold, I can get myself an overview about this section by expanding and drawing down through the sections of this document and use it to navigate within the source code. So it's a full-featured editor as you would expect. This editor also contains well-checking and grammar-checking. So we are now looking here at the key map. The key map shows the use of tables in Ask a Doc. So I defined the width of the different columns, the kind of grid I want to show here, formatted content within a cell with keyboard macros. And once I switch to the preview, so there's both a side-by-side preview, but here as I have a reduced screen resolution for this demo, I switch to a preview-only mode and the author can prove read it and see that the formatting are all correct. As an author, when I check out different components in different branches and repositories, I can use all functionality of the IDE and I can get a good preview of the content, the navigation and irrelevant cross-references. Having both a docs and a code in one grid repository helps me to keep them both in sync when I, for example, look at the history of the skitter repository and search for a specific issue, in this case, 556, and have a look what kind of changes were committed for this one issue. I see so that there are some documentation changes here regarding a style sheet, there's a documentation change for the change log, there are code changes and there are test changes. This makes it straightforward to do code reviews on this ticket. As you can check out from your list, there has been a code change, there has been a test change. The documentation has been updated and it changed log as well. Everything looks fine. Let's look at the second repository. The second repository contains the playbooks for Antora and shows what a docuOps person does to automate the build for the documentation. So this is now the repository for the website. Looking at this, there are several files and folders related to Antora. One is the Antora playbook that publishes the information on the final site. Looking at this file, you see there's a title for the site. There's a URL where the docs will be accessible. There's a start page. So I set it to the index adoc file in the user sky, that should be the start page for the documentation and I point it to the git repository where it finds the documentation that it should render. There's a URL for the git repository and there are two start paths for the two components we've seen earlier, plus the branch where it should look for it. So this defines where the content is and now there's a section about the UI. There's a URL with the zip file with all the default UI elements that I'm about to use, plus a folder with a supplemental UI where I override some of the files in the standard UI bundle and the final output will be created in the folder called site slash docs. Below I can also define extensions and attributes that should be global to the site. In this playbook for the final site, I define where to fetch the sources from from a remote location, but when I want to render a preview locally, there's a little bit customized authors playbook. When I open this file, they look very, very similar, but this file picks the sources not from a remote git location, but from a local git location that's relative to this file. So this assumes that an author who wants to render a preview checks out this git repository just next to the Ask a Doctor IntelliJ plug-in git repository. That is the same start path with a difference. In the previous playbook, I had this branch just point to the master branch. This one points to head, meaning this should be the currently checked out sandbox of the other git repository. So this playbook will render the contents of this git repository, even if they're not yet checked into that git repository. This makes it very handy to render a local preview. All the other elements are basically the same like before. To set up Antora, I prefer setting up a package JSON file that allows me to specify all depth dependencies for Antora and all the extension that I am about to use here. So this Antora Lunar is, for example, the search index that I'm using on this site. Ask a Doctor Cookie allows me to render diagrams within my documentation. Up here in the section scripts, there's a predefined script for the authors playbook and the site playbook with all the necessary parameters that I wanted to have in here. There's also a command in here to start up a small local HTTP server to get a real good preview of the rendered site. These commands are later called from a build script. I chose Bash to write this in this case. This will first run Jekyll for the start page, will then set some environment variables and finally use yarn to run the build. So this full build script includes both building a start page using Jekyll and Antora, runs on Netlify and on for about two minutes. And after that two minutes, the site is live. After we now looked at the roles of the writer and the docuops person, you now look at the role of the web developer. The web developer is customizing the UI theme of Antora. What do they need to do? The UI bundle contains all the default files for, for example, CSS, for images, for driverless scripts and layouts and partials. And the minimal setup, if you're using the standard Antora UI would be to override the partials for future content and header content. So for example, if I compare the footer content, you see here on the left, there was a text, this page was built using the Antora default UI. So this has now changed so that it matches this documentation repository. It lists the contributors. It updates the relevant links. This is while the minimal change you want to do at least for the footer and the head would be similar. Looking at the head content, old and new, you see that there were original navigation items where I added a logo in here. I also added a doc search snippet in here. And usually you want to have navigation items that are then project specific. So I decided to link the quick start guide and the contributors guide and user's guides in here. These are the two snippets that you want to override and you set up a new project. I added some more customizations as you see here. I added a lightbox element. I updated the scroll bar to match my project. So this is the way you add customizations to the Antora UI. Looking at the resulting page. So this is the web page for the IntelliJ ASCII doc plugin. The start page has been created using Jackal as it gives me more flexibility to create this page compared to the very, very structured Antora layout. Where I now choose the user's guide here. This is the Antora component for the user's guide with its outline on the left. There's a link to edit this page. There's an outline of the current page. We've looked at the plugin installation before. This is a text as it appears on this page here. If I choose features key map, you see also the key map like it appeared also in the IDE. And if I scroll to the very end, we see down here the footer as I updated it. So this is the end of the tour. Let's go back to the slides for a summary. It's all about empowering your users with documentation so they get their work done. Ask a doc on the Antora, help you here. They help you to keep your content up to date as you can collaborate as a team using version control. They help you to keep your content consistent. So each component version measures a software version and you can do all the deduplication of content. For example, using partials that you need to provide a really consistent experience for your users reading your documentation. And Antora provides it with the tools that when you publish new features for your software that you can publish documentation for these new features at the same time in sync using continuous integration and continuous delivery and fully automated. These are the links for all the tools that I showed you today. It's Ask a doctor to write the content. It's Antora to create a documentation site. It's the IntelliJ Ask a doc plugin to have a fully integrated experience inside your IDE. For those who want to integrate diagrams into their documentation, there's for example, plant URL. And if you want to integrate those into your documentation site, have a look at the Ask a doctor corky extension that also supports Antora. Thank you very much for your attention and I'm looking forward to your questions. Okay, so the question is, is it possible to replace syncs in restructured text and publication on read the docs with Ask a doc and Antora? Yeah, my answer to that would be yes. So with Antora, you would get like you would have on read the docs documentation where you can select a version, you can select a component and allow your users to hop between all these. Let's see if I, so this is for example, the Antora site. I can, now I'm within one component, I can choose what version I want to look at. And I can also down here, switch between the different components. There's the Antora and Antora default UI. Again, there's not a version checker here. That's very, very similar I would say to read the docs. Yeah, so this gives you this overview. One thing to keep in mind, I'm not sure how read the docs works, but Antora generates the full site in one go. So it pulls, if you have like one git repository with like one branch for each release, it will pull out all the branches at the same time. Great, one documentation site from that. I'm not sure how that works with other documentation tools, but that the way Antora does it and it has the benefit that you can really do great cross-references between versions if you want to do that. I hope that answers your question well. Yeah, and you say that you plan to publish on GitHub pages and yes, this is possible. You then have a GitHub action that creates the HTML and checks in that HTML to a separate branch in your repository. That's perfectly fine. Cool. Anyone have any more questions to Alexander? Okay, thank you again, Alexander. So this was the last session of this track. Yeah, please, sorry for interruption. No, it's your turn, I'm out.


Welcome back to my channel guys. It's your girl Coco styles and on this channel We talk about beauty fashion and lifestyle and now styling services So in today's video, I'm gonna tell you guys about my style story So it's nothing major, but as you guys know, I am six feet tall and I want to talk to you guys about some of the struggles that I had growing up as a Teen, okay Now let's backtrack really quick. So this is like story time, right? so my mom used to shop for me and stuff like that and I think I shot up and probably fourth or fifth grade, okay, and I was the biggest kid in class at the back of the class But back then the things that she used to buy me were just okay, right? So early on I was very fashionable little girl I like skirts and dresses and cute little shoes and stuff Ruffles those are the things that I like. So I want to say the first thing that I did to kind of get to where I am today is Research, okay?  See the things that you've been buying Okay, so if you've been buying things from Let's say all saints forever because you know it fits your body then by all means stick with all saints, right? Look at some of the other brands that you often get and kind of really research those brands See if the clothes actually really do fit you properly or are you just buying them because you're seeing everybody else buy them? So that's the first thing I would say is research. It's very very important You don't want to have a closet full of things that don't fit you. All right, so even though I'm six feet tall I'm still considered plus size Well considering that the average what they have out here in America So I'm still considered plus size even though to the average I am not but Research research research guys. So that is a quick little tip for you guys do some homework Write down all the brands that you love see if you have it in your closet Study those brands research those brands see if they actually carry your size if you're tall See if they actually have a section for tall They may not you may have been shopping near for the longest and nothing fits you properly So that's the first thing that I did You know to get to where I am today. The second thing I did I would say is Knowing my measurements, right? It's very important. There's many videos online. I may do one for you guys Measuring yourself, okay Knowing every single measurement on your body will help you when you are shopping guys You can easily look at something and know that it's not gonna fit you You can look at something and know that the arms may Not fit you either right same thing for pants even shoes, right? So knowing your measurements is really really important another thing. I would say is Often do closet purges. I don't let me let me rephrase it and not say often.  All right, so Winter fall winter summer and spring, right? Those of your those are your seasons of the year those are the times that you should be purging your closet One thing I learned growing up is shifting out the things for that next season And the reason why it's good because you you don't want to have a closet full of stuff from the summer And it's winter because now you have more room to dig through stuff that does not fit See fit for the winter, right?   Okay, so that's another thing. I would say is purging your closet And the last thing I would say is tailoring.  Okay, once you get it tailored, it's like they made it for you Okay, because remember these clothes are not made for us It's made for that model that that designer had in mind. Okay So those are just a few tips that I wanted to talk about that kind of got me from A to Z And now I'm able to create outfits super easy I Actually, you know what? Let me add this in wardrobe gaps. Okay a lot of us are missing things in our wardrobes That actually allows our closet to function like it should so if you are missing any wardrobe gaps guys Head over to my website download the free. It's a work wardrobe a list. So this is for my corporate women Even you know what non-corporate to Head over to that website grab your freebie sign up And start off with that those are the things that you need to have a functioning wardrobe for your work Workside, but then I'm also gonna also have something on it for you guys for your Social life which can actually be used for work also. So head over there and grab that freebie. So that's it today guys That's just a few tips that I use to get me to where I am today Knowing how to shop for my body Knowing my measurements knowing the brand tailoring those things those things are key Key essentials into kind of finding your style because if you don't have those You're gonna be stuck in other places. All right guys So if you like videos like this, please comment below and if you stay to the end of this video Please comment Coco will see you and don't forget to follow me on Instagram at Coco styles and why and Head over to my website at Coco styles and why that calm and my blog Coco styles NYC Com and I will catch you guys in the next one. Bye


This paper discusses a rare genetic disorder caused by a mutation in the gene RAF1. The mutation causes a severe form of progeria, which is characterized by premature aging symptoms such as hair loss, skin wrinkling, and organ failure. The authors also show how the mutation affects the protein structure and function, leading to the observed phenotypes. This article was authored by Samantha Wong, Yuxian Tan, Abigail Yeatinglow, and others.