All right, good morning cyber traders welcome back on this lovely Tuesday was it December 1st the first day of December You know it's 25 days until Christmas. I don't know if you guys were aware of that But it is true. It is 25 days until Christmas. Good to see you all good to say everybody on the cyber group room Greg good to see you all Dan Andrea good to see you Mike everybody here everyone here on the YouTube live. Just give me and Facebook. Just give me a chat back If you hear me loud and clear All right, good morning leader. Good to see you all. Well, anyway, what happened a huge day right now in pre-market? One of my favorite most touching Bones I had that I was so I was like the last of Mohegan's blackberries coming out with some great news lately This thing has been on a tear. I got I mean, I got a couple of things here. We got going on over here I mean if you just look Hold on. We just bring this over here. If you just look here on level level four I mean this thing just did not stop seller after seller after seller just get nailed all these iceberg orders huge orders 50,000 70,000 hundred thousand bam bam bam getting taken out left and right this thing has just not stopped since eight o'clock this morning and I forgot who mentioned it I've got to mention it but somebody mentioned early this morning in the cyber group room and we tell you it wasn't for you I don't think any of us would have got this in the room other than it just started popping up It's the biggest percentage gainer right now in the New York Stock Exchange, but this is I mean Like I have to say if it wasn't for phase three I got to do at 9 30 I would probably call it quits right now I really would because this is what it's all about and you know, it's incredible There's so many people out there. They just don't get it that you know Like well my broker won't let me trade because of you know, they don't open till 9 30. Listen That's why you got to change your broker Since 9 o'clock this morning Since we started going into about four minutes the thing already ran about 70 cents I was in shares You tell me an option of an $8,000 option trade or an $8,000 swing trade that you could make yourself $700 in five minutes, you know what now you know what you can right here day trade But that was a great move and you know what there's a few more like it which we're gonna go about also William said he made about 14 cents In about three seconds doesn't it feel cool Wayne like you got you look at I oh my god I just made that much and that fast, but you know what money's money at the end of the day So just be careful the only thing I noticed about it, which is pretty nice It was and it's been doing frequently got a little bit of shape, but it's got some nice fouls to play All right. Anyway, let's talk about Some of the stocks that we traded yesterday and getting ready for you and getting ready So anyway yesterday was the last day of the pay period Probably would never even think of that on a Monday.  There were a couple of news That did come out. I want to talk about zoom Came out with earnings yesterday after the close and obviously it's not doing too well stock Was I mean it was all the way up to about 478 They took a huge hammer all the way down to 750 454 and it dropped away to 444 So stocks took a really big hit Due to earnings, but we're not gonna trade zoom remember we traded zoom was that 160 So anyway, let's go, but there were a couple of stocks that we did trade that did really well Riot that one did well Huge pop in that now. She's starting to do a little bit of a retrace. Obviously, we know why riot did so well Basically, you know with with Bitcoin, you know kept hitting that $20 the 220,000 20,000 20,000 that one did really well And Mara was also one that trade side-by-side with it But you can see now he's starting to get a little bit of a correction in some of these stocks By the way, they're really really volatile. They're all down about six seven percent This morning on the average. Also, that was pretty big that did make some nice moves yesterday Oh, all these pot stocks. Listen, they did really well yesterday Just gonna change his charts to see a little bit better. Yeah, the ACB TRL Y did really well. I'm gonna keep selling the truck That one had a nice move eight to about nine dollars, you know, all those cheapies SN SN DL was another one also. By the way, that was a really cheapie She's going back on on on the B let on the B list SNDL once again, keep an eye guys, you know what this is penny stock, you know, very careful But once in a blue moon, we will trade it now. Let's talk about what's going on this morning because there are some really good stocks that are moving Obviously, this one's gonna make the watch list, but obviously we all know about Blackberry Blackberry still holding pretty strong right here. I see a 28,000 shares seller right now hovering right around nine dollars right now not a really big iceberg order, but You know on the average that really what it looks like with what we're getting out there 20,000 shares at seven dollars, you know, pretty much we're getting all that stuff right there You can see where those icebergs are What else that we got going on and CAS Wow, this thing was also a nice little pop right in the middle of the day But now she's kind of backing off found the stock right around eight o'clock this morning Had a nice push right from 13 to 1350 then it came back down had a couple and a nice little push right around close to about 9 840 went from like 13 to 14 dollars now. She's backing off I was looking over here on level four and there is an iceberg order right now for about 18,000 bring this over to you so you could see it. He's right around there You can see a nice burg orders right there and you could see that had resistance levels around 14 There's about close 15,000 shares out there You can't you could see him Where is he? Yeah, you can see him right here on level three right here got 19,000 right there for 13 and What was that resistance at $14 I gotta scroll up Yeah, he's not here. He's probably trading on another exchange Probably on probably one of the different one of the different exchanges But we know that's where the support resistance levels on that one that one We did pretty decent and then Mara obviously is going back on the watch list I want to keep an eye on that one that one had it took a little bit of a hip But had nice little bounce in pre-market just backing off You know what I might scratch this and put it on the B list. Okay All right, let's go hop on the B list and we all know we all know don't neglect and don't you know Take the B list for granted. Sometimes they turn to the A list But they aren't they are the ones that are the long shots. All right We all know about long shots. So this one another penny stock But she is gapped up about 50% nice spread nice tier sizes. Everything looks good right there CR BPs another one that showed up this morning on my radar up 27% 6 million shares, but it is an algo stock. You got a lot. Look at those orders 20,000 30,000 So if you're if you're an advanced trader, you could trade several thousand shares of the stock and you could do pretty well Li we all remember about li li gapped up this morning doing really well nice little trend up right there He X oh also gonna go on the sleeper list once again another penny list, you know, I think that pretty much does it and we had the SNDL That one also like I said, they're all pretty much penniless. So penny stock So look a little bit cautious on the first day of the market now I just want to bring up a couple of swing trades because remember we do swing trade here Okay, and we do do some options. So please don't discourage and say oh we only day trade No, I say it time and time again You want to be a good swing trader you damn well that I learned how to learn how to day trade and let me tell you something Nikola, okay and NKLA I took a bit. I took a little bit of a hit. I made money on Nikola Okay, I made money right here on Nikola. You could see right here.  I mean I was still doing great then I looked at it and I was considering a buying it back and then the news came out yesterday, okay There was this really bad news about what happened with GM and you know, you know I remember the news came out regarding what really took it off is that the CEO didn't want to Say that he has deal, you know 100% in stone in the stock and that really took tank the stock And then the news really came out on it and the stock now you can see it's already down to 19 But let me tell you what happened yesterday. One of my best losses ever Was trading this stock yesterday and I'll tell you why Yesterday This stock ran. I don't know what caused it But they came out with news and all of a sudden the news changed and the stock went from 28 all the way to $40 Could you imagine if you had a buy order out there when a breakout you that crushed it within minutes It dropped all the way down to 28. I got in around 31 okay, and I sold it at 30 and a half I think I got a check back I lost 50 cents on that really ticked off because I lost like that If I didn't get out the thing tanked it pre-market went down to 22. I'm like, oh my god What a great loss and who really says that you know But one of the big things that we teach you at cyber trade diversity and we'll talk about in phase three today You know what you got to know when to take losses We do not teach you how to make money here the winners take care of themselves.  Okay, other than you're probably psychotic and something You know you're paranoid listen, you know when you go to a doctor when you're not doing too well You know when you go you know you need training You know we need help when you know when you when you got to fix those things that are causing issues and it's losing Money and let me tell you that was one of the best losses I had for 2020 and guess what? I didn't get out of it. Look where it is right now down to 19. I would have got crushed on that trade So anyway, couple of the swing trades I do it pretty well that we did pretty that are doing Doing well is So we traded I jumped into Pins so I'm holding my pin trade so pins obviously breaking all time high.  What is that a bad? Yeah? It is sometimes it is you know, it is because you know, sometimes you like always thinking about taking the money But you know that one I'm doing that one's doing pretty well PK and Raffking also That one once it broke 52 a major resistance levels that one's doing really well and what else I jumped in oh, I jumped into chewy Who doesn't like he doesn't like animals, right? Who doesn't like their past chewy? Obviously he's been doing really really good and and if you notice a lot of these two to these two to three stocks are Breaking all-time highs and that's really what you want to look at. All right Norman says keep an eye on on coals kiss All's made a nice little pop right there. Yeah, the coals obviously, you know been on a little bit of a tear Listen online shopping. You have to see what happened with Black Friday and Cyber Cyber Monday, you know a lot of people You know, it's so funny. I went to Home Depot. Okay, and I mean I Like going there I buying stuff, you know, I like doing work around the house and Barneying and whatever it is construction whatever it is and I noticed I don't know if you guys noticed this but They didn't have any really Black Friday deals. They didn't have the 99 cent point setters They didn't have anything they really and I was saying like what happens like a word They said well the discouraging people from coming into the stores because of the coronavirus Well, guess what online businesses obviously did pretty well So I would be I would be really interested to see how their numbers do because There are two holidays where Christmas where Home Depot makes most and blows make most of their money on Christmas and Spring okay, so that's obviously look like it's not gonna work too well Not a good business plan made it saying I've tell you if you went in there. There was no deals They had nothing they didn't want anybody to come in there and I asked the guy and kind of make sense Anyway, good luck today guys. Listen, don't forget if you're in the cyber group room today After I do phase 3 it was your first lesson and that's for golden platinum students If you want to get in there if you want to upgrade here at Cybertron University Talked education advisor, but after that we're gonna have Josh doing Traders talk which are our most popular event that we do here in the cyber group room If you're watching YouTube Facebook live if you want to get in there just pay $9 do a quick trial You get in there and joys for a whole week and then we'll be back in the afternoon for the afternoon meeting and For part two of phase three. So you got a really really busy week and then Thursday We're gonna move our cyber export to the following week We were gonna do it this Thursday, but with all the holiday stuff and sales going on people a little Chaotic we're gonna push it up till next week, but I'm still gonna do open house on Thursday, right guys luck today Happy trading be safe. Let's make some money. All right


move on to our next speaker, Axel Cortes-Cubaro, who is a research scientist at CryptoEcon Lab with a background in statistical physics. And he'll be speaking to us today about a gas model for a post-scarcity era. Take it away, Axel. Right. So, okay, so I want to make it. Okay. Right. So, my goal here is to introduce you a problem that maybe you don't know you have and then not give you the solution to that problem. But I just want to, like, introduce the possible space of solutions for this kind of problem, which is, in short, maybe there's a lot of people focusing on how do we scale the blockchain, make it more powerful, more powerful. But basically, to understand what could be the problems associated with that or if we want to think, maybe not just scale as much as we can, but scale as much as we should. That's the question. So, I'll just talk a bit about gas in general. So, yeah, just very briefly. So, gas is what I mean by gas is just like a unit of computational effort in the blockchain. So, all these transactions, all the nodes need to validate that it takes effort, everything that is included in the blockchain. So, it is the amount of gas that you could have in every block that you could use in every block is precious. It's scarce. So, you cannot put all you want in there because everyone needs to validate this. So, the point is, it's scarce, so it should be optimally used, utilized in a sense. So, the idea is that there should be an optimal block size. So, this is like the amount of gas that we can all fit in a block and we can handle it. Anything more than that and it's too much for the whole network to process. Anything less than that and the network is being utilized and that's not efficient. So, it should be used better. So, the idea is that you should price. So, it should be used optimally and the way that it's done is basically it should be priced at a market clearing price. So, the idea is that the amount of what you should pay for a unit of gas should be the optimal value such that only the amount of transactions that fit in the block size that you're aiming for can afford this price. So, anything else would be priced out. So, the idea is that you want to select only the most valuable transactions to be included on the block. So, you move the price until you reach that price that only this exact block size makes it through the market clearing price. So, this is in a normal like limited blockchain where you have scarce gas like only this amount of block size available. So, the next question. So, how do we kind of reach this market clearing price? There's different approaches to this. So, there's like the original Bitcoin approach is just a first price auction which basically amounts to like everyone just makes a guess about what is the market clearing price. So, you submit your transaction and you make a guess. This is what I think this is worth and everyone out there makes a guess and those with the higher guesses get through. That's a mechanism that has worked. Okay, but the idea is that this tends to be very volatile and people aren't great at estimating or so you might end up overpaying and the prices can fluctuate more. So, the approach we're using in Falcon and Ethereum as well is called the EIP 1559 where the idea is that as you price gas not just by the amount everyone voluntarily guesses but you have a base fee which is set by the network. So, this is posted, this is the base amount of fee that you need to pay for your gas and you can put something on top which is meant to be just like to cover the marginal costs for the miner to include your transaction. And then this base fee the idea is that this is now not paid to the miner but this is burned and this evolves in some like definite algorithmic way with the point being that this is adjusted based on demand on the network. So, in this case you allow the block size to be a little bit flexible but you set a target block size so this is the optimal block size that I want and if in a given block I spent too much gas then I raise the price such that the next block will be closer to where I want it to be. So, this adjust the base fee such that the idea is that this mechanism should equilibrate close enough to the appropriate market clear place because these are different options. So, this is what we are using. So, one point is that this price doesn't come from this mechanism. So, one of these shouldn't this EIP 1559 will not make your transactions cheaper or anything where this price comes from is just from supply and demand. So, these are two mechanisms just to try to find out what the price is but they are not what is used to determine the price. So, the price is simply just supply. So, in a fixed blockchain like we are talking about with a fixed with a target block size supply is fixed. So, this is the amount of gas I have for block then if more people want to use this if there's more demand that will lead to a change in the price. So, this is basically the kind of a symbolic equation showing the dynamics of if there's a change in demand if demand increases then I should increase the market clearing price such that I remain at my target block size and if it's demand reduces I should reduce the price. So, one question that we think about right as script economists that maybe many engineers think less about is like do we actually want to decrease the market clearing price.  So, we could tell the engineers okay make it scale everything make it better make the blocks larger so we can feed more stuff and that should give us a lower market clearing price right and and that's something like CX describe is kind of what happened with this hyperdrive that suddenly we have this boom hour now we can process 25x times the amount of gas in the block and the question is this something we should do is this a good deal right and then we need to think about what is a good deal right and the reason why you you might think I rest so that makes sense but let's make it everything more scalable we can include more stuff but but there's something you're losing by by this collaborative which is you are reducing your your market clearing price right so miners were complaining oh why did you make it so scalable now I'm making less money is the idea so yes I want to think a bit about so I want you to think about this question of what is what is a good deal for the network should I always scale or what should I do so one one strictly economic way to to think about this question is just to think about the the total network revenue right so the idea is that if I increase the supply the the market clearing price will be reduced so this is bad right people are making less money but the idea is that now more transactions can get processed such that sure each one will cost less but but there's more being processed so that's a net good right so so you can think of it so what is the there's this total network revenue it's just like what is the the current price times the amount of transactions that that you could process right so so if I scale and this gets lowered but this gets increased enough that overall this is this increases and that's what I would call a good deal economically okay so for instance this is what didn't happen right away in this hyperdrive that CX talks about so you scaled everything the base fees went down and the demand to reach that level that we needed the 25x is still working to reach that level so that's what could be considered a bad deal in this sense you might you might question like is this are we being superficial here that we're just like a good deal is just make more money but for now we'll leave it okay so this this is something to think about but that's that's one goal we could use to to work on but I think it's not that superficial in the sense that where so what we want is we want to have a like a healthy and very useful and active network and that involves miners being motivated right so so if the rewards if the revenue is good and rewards are good that the miners will be there will be more more miners or storage providers in our case in in in falcon joining and they need to be properly motivating to bring more miners and make it a good network so so so the general principle that I guide myself with is so the supply that we have that we provide by all the scaling solutions should be just appropriate for the level of demand of the network not like much higher than the demand record yes so just a little summary here of kind of a typical scaling solution that that we can see in the blockchain space but it's just like making a a roll up or a side net on the on the so so the idea is that as if you have your main net your falcon or your Ethereum or whatever and this is too expensive to use you can like make your own little side net where you run run your your your sub transactions in there so this is what happens like at an exchange or something so okay so so this exchange is going to make all these transactions and then only at the end report the the final result of that to the main net right and this allows you to do like more transactions maybe at a faster scale you can do more things without reporting each one of those without using gas on the main net for each one of those so you only spend it here and then report report only the result after after that and so that has a result so that that so having many side nets like this could take some some demand away from the main net right because these are all transactions that could have been performed on the main net but now they don't need to be performed there so that's something to to think about but one point of this is that right so the side net that you're running your sub transactions in should have a lower market hearing price that the main net if not like users would just go back to the original net but the tradeoff is that the main net is expected to be like the with the higher security and a better reputation right so that's why you want to report back your your final results to the main net and make them more permanent there because this is the idea so the subnets should be cheaper but less security less reputation and so on so that brings me to this is a this is a project that we're working with is mainly consensus labs of a project that is a solution we are working in in file point that this could be what scalability looks like for Falcon which is what they call hierarchical consensus and the idea is similar to to to this stuff about about side side nets that I talk about but just more here I could go I guess so so the idea so here you have your main net which I guess this represents time or something but anyway so here you have Filecoin let's say and then I have more demand that I can handle here so I spawn a subnet here so you can spawn a subnet and here I process transactions fast and then I am checkpointing total results back to the main net but not everything that happens here so similar to the to the side net roll up kind of thing and so here this one has two subnets but then the idea is that when there's too much demand here also these ones can spawn their own subnets and then these ones again could spawn their own subnets if they want and so on so so this this idea of of hierarchy of of nets that how they are connected is basically so this this one runs their own the sub transactions and then periodically they post their checkpoints back to the to their parent net right so so this interaction subnets checkpoint back with their parents so the subnets remove some demand from the parent but then they also ask for something because they need to spend some gas on checkpointing with the so there are checkpointing gas fees when they checkpoint with the parents and the right so the idea is also that the the parent chain should provide some level of security and reputation through to the subnets by keeping track of their checkpoints right so they're saying oh this this there is some more permanence to these transactions and also there will be collaterals that can be slashed to start running this net so so so you guys okay so I want to start a subnet if I want to start an official subnet with this parent I need to freeze some some amount of collateral that may be slashed by the parent if I do something bad that's the idea of hierarchy sorry right right so the idea is so now the the hierarchy is is limitless in principle so I can give spawning more subnets whenever I needed there's no supply problem anymore all scalability is solved right so that's the idea of this so I grow the the hierarchy grows as needed and then right so if I'm a parent chain that have my own subnets I can kind of pull on them if I feel so I have some controls over my children nets by their checkpointing fees that I charge them and by the collaterals so I say if you want to start a subnet under me you have to pay a higher collateral so if these fees are high it could discourage the creation and survival of such subnets right so so I make it things too expensive for the subnets to to survive or if I want to spawn a lot of new subnets to take care of all this demand then I make these things cheap and they and they can join and then the idea is that while the whole hierarchy is limitless there's no there's no scarcity anymore each of the nets in the hierarchy is a finite net that each each of them should be utilized optimally and then kind of the guiding principle we want to use is that the overall total network revenue of the whole hierarchy should be maximum so growing this hierarchy should be in the name of it being better for the whole hierarchy so that's the idea right so so we can think of the model here what what we can do about this so this is the traditional model I I told you about about like a single chain that more demand brings higher prices and this is kind of how how this works in 1559 that this is the market clearing price is adjusted by depending if the block size was bigger than the target block size and I increase the price and so on so this is so this is this dynamic for the this simple case and what we're looking at now looks more something like this so this is for a given chain for a given net in the hierarchy so these are kind of the the knobs that you have here you have your your base fee your normal gas fees that you charge for transactions you have your checkpoint in fees and you have your collateral and you should adjust this this fees based on what's happening with the hierarchy so this is the data that you read to to make your choice here how to adjust this right so this is kind of the solution space I was talking about right so right so so each of these nets must keep their they have an individual goal of like keeping the optimal block size for myself for that one given net as there can be a eip 1559 like mechanism but then also they should have in mind like what's happening with the whole network so it's a collective goal so okay the total network revenue is increasing and if that happened because I see that more so this is the total amount of gas being spent in the network if more gas was was burned in the network and that was good for the revenue then I want to incentivize that more so I would make this fees checkpointing and collateral lower to invite more growth and if growth was bad then I want to pull back so this is kind of the idea and so you can so this is the main picture here and and this is not the main the solution because we still I'm not showing you like an exact formula like this how to play but there's many options of what we could do that will look like this but this is should come from something like this so so this is my final answer so how large should the hierarchy grow so it should be large enough and maybe a bit larger to maybe induce a bit more demand but it shouldn't be larger than it needs to be that's about all great thanks for that Axel and I think we have time for a couple of questions actually to the speaker um so we'll do this Oprah style if you raise your hand I will come at you with the mic or I will lead with my own question uh you mentioned that subnets inherent reputation and security features from the main net are is the reputation and security features of the sudden subnets are they strictly dependent on the main net is there any way for subnets to compete on features other than price if you start a subnet without a reason so but what I mean by this borrowing of reputation is just that you check points so you have a level of permanence that you know okay so the users of this stuff that knows there's something more permanent happening in the parent net and also that that you that you know this subnet paid some collateral that can be slashed if they misbehave so you know they're motivated to behave uh it could also become the subnet could become more valuable than that by providing a valuable service so you're also that subnet becomes a good subnet that is doing something good people want to use it so this is kind of a minimum value that you know that the user knows the subnet will have but the subnet can grow even above these values there is the idea fantastic thanks again Axel one more question over here I'm thinking about like the collective goal of maximizing the revenue of the network and wondering if there's any ambiguity and like how to measure that either what the elements of the network are not just miners or computers but humans and like how you measure revenue is it only in filecoin or are there other currencies right so this this this I guess this comes back to the question of the superficial goal or not so uh so the the idea here is kind of I'm assuming so right so the different subnets can actually do different tasks right so let's say we have filecoin that is about the storage and then right so you you you make a subnet that is focused on retrieval market and you're incentivizing people who retrieve files and so on they're doing different things but they have kind of what joined them what what we can measure them equally with is the amount of gas that they spent versus uh so it's just like on the computational power required for for each of these things so we are assuming that the computational power of all of them can be measured and compared and uh yeah so this is one simple goal which is uh okay so this is my definition but now kind of so now in the hierarchy version this would be a sum of disguise over all the subnets in the hierarchy so what's the market clearing price of each of them and the block size of each of them uh yeah so so this is again like a very cold economic target but it's one to to work with it could be yeah it's it's it's also open to maybe this is not the right target


Welcome to ToffeeTV, this is the start of 11 show ever versus Arsenal. I am going to go for a 4-4-2 and let me just say before we start this I have no idea who's fifth for this game because Duncan Ferguson didn't really give any clarity in his press conference who was available and who wasn't So I'm going on a limb for this and I'm going to make some guesses and just see what happens So in goal Jordan Pickford, clearly, listen, Jonas Laszl is not even on the bench and I'm not having that in Stechlenburg So it's obviously Jordan Pickford won't be the goalkeeper At right back I'm going to go for Gibril Sibadri, I think if he's available to play, I'd play him, simple as that I also don't think Arsenal have got a left back, so I think having him rampaging down that right will be a great help for us Seamus Coleman has done well this week but if there's an opportunity being said he'll be back and bring it said he'll be back So yeah, that's what I'm doing, obviously, listen, as I say, if he's fit Left back, Leighton Baines, obviously, he's got a wonderful goal in the week And obviously will benefit from the 19 minutes He shouldn't be too tired, hopefully, because he's only really played one full game in about a year So it shouldn't be too bad, but obviously being 35, it's not always easy And it'll be difficult for him anyway, but he's at left back At centre back, putting Mason Holgate back into centre back, I think he's been terrific in midfield But I'm terrified of Michael Keane and I'm terrified of the Arsenal defence, the likes of Lachazette, Pepe and most importantly Bamiang So I'm putting him in alongside Jerri Mina, who still think is our best centre back And could do with having a permanent partner, but I'm putting Mason Holgate back in there And again, this all comes down to who's available, who isn't Centre midfield, Tom Davis, going to continue with Tom Davis, looked a bit leggy in the week But yeah, I'm going to continue to play him in midfield And alongside him, Guilfy Siggerton, if he's available Because I just think that freshness of having to play it in there, like Guilfy, who was tremendous against Chelsea Let's not forget, he played really well against Chelsea I think we'll just freshen it up a little bit, hopefully Allow us to maybe be a little bit better on the ball Which I think we're going to have to be So I'm going to put Guilfy Siggerton back in there I don't think this really matters and I think there's an opportunity to change these players round But on the right, I'm going to go for Bernard It wasn't very good when the week came off at half-time, so we should have a bit of a rest But I'm going to start him on the right and hopefully just as a better game And with someone like Sidney behind him, I think having the physicality of someone like Sidney will really help him I think, hopefully, that's all I can say, hopefully he'll be better and create a few chances On the left, a Wobby, even though he was absolutely terrible on Wednesday night Again, playing against his old team faced opportunity Having someone like Banes behind him to back him up Just go out there and play as well as you can and stop giving the ball away stupidly And play a little bit smarter than you have been And in the front, Richarlison will continue up front for me I think he's been excellent, worked hard Not always creatively brilliant but he's worked really hard and done what he can for the team And Dominic Arvind Lewin I think what we need to do is target them, go long, target them, they're not great at centre-back I think they're a bit of a soft touch Yeah, Domin, David Louise, and hopefully the likes of Richarlison will benefit Pick those balls up and have a good go at them Because I think they're soft at the back, I really do, I don't think they're great I think obviously it's the offensive side of the game that they're strong in I don't know whether anything will change with Michael Tetter coming in But you know, less than 24 hours, he's not going to have much time, or he's going to have his time to talk to them And maybe go through a few little things, because he watched them last week And would have done the tactical analysis of the game beforehand And got to make it a good atmosphere, make it like the Chelsea game And hopefully, you know, we're not too tired and we put that last effort in for Duncan Ferguson as the manager And if we've got our new manager waiting in the stands, he gets to see what Gullison Park's like And what some of these players will do for the manager And that's all we can hope, isn't it? And as I said, I don't know who's going to be back and who isn't going to be back if anyone else is injured But we'll wait and see So there you have it, let me know your thoughts in the comments Do you agree with my start 11 or do you think maybe it's time Anthony Gordon got a chance Moise Keane got a chance Do you think we should play with five in midfield rather than going 4-4-2 again Let me know your thoughts, as I said, it's a difficult one because of all the players we've got missing So there you go, let me know your thoughts If you haven't subscribed, please do, click the bell for the later And if you want more great videos, join us over on page And thanks for watching, see you later


Hello friends. In this video, we are going to discuss about Google Forms. After this COVID pandemic, this Google Forms utility is multiplied like anything. It is originally a survey tool, now used as an assessment tool. So how to go into this Google Forms is you can directly type Google Forms in Google Search and you can go into that platform or you can click on the tiles present here and you can reach the Google Forms. So you can directly get this template gallery. So you can identify the template which you want to create for your purpose. So here for demonstration, I am just going to use a blank quiz. So when you open like this, the quiz will appear like this. I am just renaming according to my version. So automatically the questions will appear like this. So you can add a description here. This is an assessment for this purpose. Minimum of this many marks is needed. All the questions are mandatory like that. All the instructions you can add here on the description of the questionnaire purpose. If it is a study research study, then you can add about the purpose. Then the first question can be a consent. Then what happens is this is about the question. So you want to ask about the gender of the individual. Then automatically it will identify the options. You have to just click on the options which you want to display here. So this is one question. Just I am showing it as an example. You can have it as a short answer and paragraph. The difficulty with short answer and paragraph is while analysis, the options will be different. Hence the coding may not be the same. But in multiple choice and below, so the uniformity will be maintained. So here it is multiple choice. We can make it into check box also. And also drop down boxes can be available. So I will just show how this will appear. So before which I will just duplicate this question and show how it will appear in check boxes. And again I am doing this to show how it will appear in drop down box. I am just creating it at the end. I will preview and I will show these options. So this is about the gender. So we have asked. So if you want to add some more question, we have this kind of question. So basically below which if you want to file upload. So it needs this kind of question. So like photo evidence of something. If we are asking as a question means then we can set up all these things. Only specific files we can have like PDF or something. Or we can keep it as open-ended. Number of files and maximum size of the file which we can keep here as a folder. And more importantly this is a required field. If this is very important that they cannot skip means we can click on this required. So once this is clicked on automatically the question will there will be a red star appear over the question. Which indicates that it is a mandatory question. The others are not mandatory. So it will be like that. And also we can have if the options are like this. So if you want to shuffle the options for different individuals. Then you can use this shuffle option order. I have shown what is this add question purpose. Just if you click there will be additional questions. So you can import questions from previously existing quiz. So you can have some questions from the previously existing question. So you can click on this and select this. While selecting only it will ask whether you want to select all the questions to be imported. Or only the particular question which you need to select. So all these things can be done using this import option. And we can title the question and describe give the description to this question. Also we can add image to the question so that we can have image based question. And video based question and we can be clicked on here. Where you will get any YouTube link or any URL we can add. And here is one more section. This is different. It will appear as a different page. So when we have this as a different section. Once you complete this section one only. The next section will appear. So that is the important thing about this section. So now we have if you look at the options above. We can have this customize theme where you can choose an image of anything like this. So if we are inserting like this. So there will be a background which will appear here. And the color themes can be changed. The font style can be changed. So all these things can be done with the help of the theme options which is which appears here. So my font handle has changed like this. So I can use this as a preview option. So before sending to somebody we can check how the questionnaire is appearing. So we can look at this Google Forms and check how this Google Forms appear. Then we can have this as a settings. By default if we want to collect everybody's email. We can click on this collect email and respond receipts. So whatever the response the respondents given will be mailed to them. And if you click on this this will happen only if the respondent requested. Or if you click on always always the responses will be mailed to their mail address. Then we have limit to one response. Suppose you want to limit multiple responses from single participant. Then you can click on this then edit after submit. Suppose you are doing this quiz as a learning purpose. They can edit any number of times means then you can use this edit after submit. Then you can click on this see summary charts and text responses. And in presentation we can click on this show progress bar. And shuffle question order also is possible. So when we click on this the questions will be shuffled. I am not clicking on this because it will confuse us right now. And this show progress bar will be aligned that will be aligned at the end. So that also will be there. And quiz is the most important thing is you need to click on this make this as a quiz. Then only the Google Forms will be converted into a quiz. So every question will have answer key. You need to set up before sending to others. So there will be options for releasing the grade. Whether you want to release the grade immediately after the submission. Or later after the manual review that will be there. So you need to select one out of these two. And you have to select whether the respondents can see the missed questions, correct answers and point values. So after selecting all these things you are all set. And if you click on this three tiles here we can have and make a copy option. We can delete it. We can print it. We can add collaborators. This forms is owned by me now. And we can add collaborators to it. And so that people can edit from anywhere else. So that is also one more advantage of this Google Forms. And there is Google add-ons. When we click on this add-on there are multiple utility tools which will add on to your Google Forms. Here I am showing one add-on tool called CertifyM where you can download this CertifyM. And when you are doing some event you want to distribute certificate to them. It is difficult to send to each of their mail IDs and design the certificate. But the CertifyM will take care of all these things. So like this plenty of add-ons are available in order to handle this Google Forms easily. And now we are moving to the next important part that is the responses. So I am clicking on this preview option. So I am just showing how gender appears here as a multiple choice. And it is a checkbox here. And it is a drop box here. So I have just shown like this. We are just clicking on the next. So it will go to the next page. So there it will have this options. And this is the progress bar which we were talking about. And we are selecting this. So we need to add file because this is a mandatory thing. We need to add some file for this. I am just dragging some file to it. Then only it will accept my upload. So if I submit it. So we can see our previous responses. So we can edit our response because we have given these options. So see previous responses means so people can see. Others also can see how many people have responded. And what they have responded. And if you want to edit your response also. That is also can be done. Then in the response for the collaborator it will appear like this. So you can see the same thing in detail. Based on the summary, question type. And also based on the individual respondents. So how individual respondents have responded. And how individuals have responded to the particular question. That can be done. And you can create a spreadsheet for it. When you are creating it automatically. The timestamp will appear because I have not assigned any score for it. Because this option won't need to be scored. The scores didn't appear. So I am just editing this again. In questions. I am just going to add one more question. True or false. Something which I am typing. True or false. So true is the correct answer. Means I need to click on this answer key. And if I am typing true. And I need to assign points for it. So when this is done. Each question I need to do this. Because I have already responded. It is not allowing me to. So I need to change this settings. Here. Limit to one response will be removed. So when it is saved. So I can do any number of time. Okay. So now my mail ID. I am just typing it as mail. Mail. And mail. If it is true. I will get correct marks. So when I click on submit. Automatically. See previous responses. I can see the previous responses for that question. How it appeared. And the collaborator only can see this quiz. In an Excel sheet. So true or false options are like this. Then the most important thing is. To send this forms. To multiple people. You can send it by email. You can send with a message. You can add collaborators here. You can get the link here like this. And if you click the. Shorten URL link here. Instead of huge big link. You can have this as a small link. That will be very small. Then you can copy this. And you can. Transfer it to your mobile. Then you can send it to people. So these things can be done. Using this send option. Google forms are wonderful. Assessment tool. The advantages are it is. Being online. We can send it to many people. We can use it with many collaborators. And it is freely available. And with this Excel spreadsheets. We can do a basic analysis. And this data entry problem is not there. If you have any doubts. Regarding this Google forms. Or you have any additional points. Regarding this Google forms. Please post your comments. If you like this video please share it to your friends. Click on the like button. If you haven't subscribed to the channel. Please click on the subscribe button. And the bell icon. Thank you very much for watching.


HIDE bound. The HIDE bound innkeeper refused to see the need for a website insisting that the inn had done with that one for over 150 years.


ne there Johnny. Good start. Big poppy I don't believe that is numbered. Nice hit. There's Joe Ryan. Rookie Duel Jersey for the twins. I think you need some more prism racing. For now it'll go probably I mean we could sneak one in for you if you wanted tonight. Yeah I kind of know what you mean on that table. New age boba chef. Planned pot of Kevin Harvick. Full sized. There's Carlos Rodin. One of 10 on the black. Nice one there. Jaren Durand. Nice one there. Rookie Jersey.  I really do enjoy ripping prism racing for you. It's a lot of fun. It's a good product. Yeah I want to see that for sure. That sounds cool. Tight enough. Tyler McGill. Base Auto for the Mets not numbered. Bobby Whit. New Age Rookie. Carlos Correa. Shoya Otani on the crest. Alright that'll do it for Capstone Box Number 1. Let's do Capstone Box Number 2 now. Bo Jackson. Not any Bo Jackson. Yeah I agree cop. Got any Bo Jackson. Edwin Diaz. Looks kind of like Zenith. It's like Zenith and Recon put together. There's Tanner Hauke. For the Red Sox on the Summit Auto. Manny Machado. Yeah it is. Super sweet. Julian. Eating. Sean's over there eating. Seth Beer for the Diamondbacks on the Duel Jersey. I'm eating sleeves. Literally eating sleeves dude. What are you three? That's what a three year old would do. Ridiculous. Come on man. Come on. Dejabu. What are you? A reed? I know honestly. Yeah someone get him as binky as right. Albert Poolehaal's New Age Materials for the Cardinals. That is Game War. Nice. Jose Ramirez. It's still a vibrate. Is that why it looks like it is so vibrate? Lane. It's disgusting.  Yeah you do need a Spider-Man water bottle. Sean, do you have one? I can tell you I do not. What I do not have is a three year old Spider-Man water bottle. That. I can assure you. Nolan Arnauto. Dave on the autograph. Very nice. He doesn't need to imagine. He's doing it right now. You're the one that's uploading. You're breaking. You even break the prowers in the movie. Yeah. I've had it. Artist proof Alex Minoa. That is 6 out of 49. Alright that will do it for both capstones. Up next we've got tier one. Let's see what the odds were. Good luck. Whitmerefield. 399. Jersey Guard. Patch Wisdom. That is 212 out of 299. And we've got Brandon Lau. 8 of 10. Game used memorabilia for the raise. Don't know where that would be on a raised jersey. That's purple. Maybe the wrong patch. Gonna send you an empty box and wrapper Johnny. Cause that is definitely not a raised patch. I think Brandon Lau was ever a Rocky. So still a nice one there though. They were running low. Okay. Things happen. He's Monty Grandeau. 297 out of 349. Could be a throwback double raised jersey. But I don't know. I don't think so. Cause I don't even think the double raised jerseys that they wear now. Like the throwback ones are purple. That is Spencer Walkins. 69 out of 299. Joey Vado. 23 out of 25. Two color, two color hatch auto. I don't think it's purple right now. Yeah. Even the throwback that they wear. It's not purple. Here's the main camera. I'll take you to the main camera. This is the one that you guys are all thinking of right here. There's no purple in there. And there's no purple with a white cut either. So yeah. We're gonna send an empty box and wrapper there. There's Javi Baez. 299. Air patch even. One of one honestly dude. Lars Nupar. 22 out of 25. And nice one here. Jose Alchube. 63 out of 75. For the Astros. There's no purple in this. No it's not purple. They don't have a purple jersey that they wear now. Trust me. If it comes to uniforms man I will take anybody on. Had to have one on one with that stuff. There's Yachty. 299. There's the Cardinals. There's the Franimal. Framille Reyes. That's so sick. 169 out of 299. For the Guardians. This one's so nasty. How about a Jeff Bagwell. 25 of 25. Game used three color patch and bat patch. I have not yet Kyle. I'm gonna do that my next day off. I've got like four straight, no three straight days off this weekend. And I'm gonna take that because Heather got me a Lids gift card too. So I'm gonna be buying a new couple new hats for sure. Walker Bueller. 249. Otto Lopez. 16 out of 25. Figure out something. There's George Springer. 28 out of 75 on the Jersey Auto. Brian De La Cruz. 399. TJ Friedel. 299. Rookie Auto for the Reds. And tier one talent Jim Rice. 212 out of 299. For the Red Sox. We got an extra hit in here. So what you do, John-Carlo Stan to 399. Josh Peter to 399. There's Aaron Ashfield to 299. Nice one there. Great way to end the break right here, man. Here you go, Johnny. How about a 125? Juan Soto. Boom. Congrats on that there. Johnny, that's awesome dude. Great way to end it. That'll do it for your break there, Johnny. Congrats on all the hits, buddy. We'll get those right out, Tim. My man, thanks as always. That was pretty cool. We've got, last one is gonna be Ryan F. Good luck here, Ryan. Going on, everyone. Sam here, late in sports cards. Ripping one at 22. A Panini Origins Football International Blaster Box. For Ryan F. Good luck here, Ryan. There's Kevon Tividow to 149. Eating the sleeve over there. Let me pick it, rookie. Kevon Tividow, rookie. Catapults is a... Cooper Cup. Chris Olave, rookie. Cremac Bride. Garrett Wilson, variation. Team Origins, worn moon. Malika Willis, rookie. Zemir White. Catapults Lamar. Calvin Austin to 299. Walker. Rashad Waite. Johan Dotson, Team Origins, Joe Montana. And last one for you here, Ryan. Good luck, buddy. That'll do it for your break there. Ryan, thanks again for the support, my friend. Get those right out to you, buddy. I'll just come back there with you. Give me one sec. Thanks again for the Knight guys. Definitely a good one, for sure. Thanks again for hanging out, keeping us company. We will be live again tomorrow. No, Matt starts tomorrow at 11. With XR release day. So have a good one, everybody.


What's behind today's advent calendar door? Oh, it's MTV News, don't eat it. Stephen Bayer wants another Love Island breakup. Couple goals Olivia Buckland and Alex Bowen inked each other on Just Tattoo of Us last night and in case you missed it, here's Stephen and Charlotte with their reaction. Alex and Olivia, nice couple, really fun. That's for designing tattoos. I wanted to see a reaction where they could have broken up. I wanted to see some drama but instead they were funny ones, which is good. Because they're engaging, they're in love. I spanked Charlotte. You wouldn't want to do that to me if we were engaging in love.  Do you mind? I actually love that, I love that. I love the Olivia part, just not the rest of it. The thing with Alex and Olivia is they did laugh them off at the time but we were watching on the screens downstairs. Can you remember this? When they were doing the both thing. They looked so pissed. Like really annoying. They actually, we were watching and they looked really angry so I think there might have been a few words when they got home. Howeer, your mint Raj packet. Scrub the tan, get your face in a box of chicken nuggets and get ready to be more all because Jordy Shaw, season 16, is back with two new faces joining the show and you might recognise one of them from this year's Love Island. Sam Golland and Stephanie Snowden have promised to bring the party back to the tune next year and here's an exclusive first look at our fave new Rajies. Absolutely buzzing to be here. There was to describe myself in one word.  That's not one word, is it? Reason why is my mates tell me to do something and I do it. I don't fancy any of the boys in the house. I think they're all really good looking but I don't fancy any of them. I know girls can be really bitchy but I'm hoping the girls will accept us for who I am and I'll get along with everyone in the house. Jordy Shaw is back on Tuesday the 9th of January at 10pm on MTV. Dry January is cancelled. A six-year-old just wrote the most savage letter to Santa and we are here for it. Let's face it, Santa's been getting away with the Judgy McJudgerson vibe for years. We've all heard the song about finding out who's naughty or nice but like whatever, it's time Santa got slayed back and a kid from Virginia has done just that. He wrote a letter at school which read, Dear Santa, I'm only doing this for the class.  The North Pole is reeling. You don't know the troubles I've had in my life. Goodbye. The boy signed off his letter by refusing to identify himself writing, I'm not telling you my name. But his mum, Sam, gave the game up on Twitter, posting the letter and calling it amazing. You guys know you're both getting cold, right? Viagra plant fumes are giving dogs boners. Yeah, I mean if that's not the best clickbait you've seen all day, I give up. Residents of Irish Village Ringers Kitty have been complaining that the fumes from a nearby Viagra factory have been giving them all a hard time with local barmaid Debbie O'Grady telling the Sunday Times, One with and you're stiff. Laugh out loud. Pharmaceutical firm Pfizer have been making the drug in the village for the last two years and according to people that live there, the love fumes have been giving men and their doggy pals enormous sexual powers. Psychiatric nurse Fiona Toomey said that the local dogs walk around in a state of sexual excitement. I think that Viagra must have got into the water supply. But Pfizer have released a statement saying that the stiff whiff was nothing more than an amusing myth.  Nicknack, Paddywack, give the dog a... Let's leave it there. Thanks for watching today's MTV News. I'm James Barr. See you soon.


Indian shipping is on the part of remarkable growth. Shipping has inherent challenges, requiring constant visual for ensuring safety and security of life at sea, environment protection and emergency response. An effective maritime domain awareness requires continuous flow of information of the vessel, wind speed, wave heights and bathymetric information. Vision of the Honourable Prime Minister, Shri Narendra Modi for global safety, security and growth for all in the region and using his 10-point agenda for disaster risk reduction led to the setting up of the Merkantai Maritime Domain Awareness Centre, MMDAC, called Sagar Manthan. The centre is the first of its kind set up using satellite technology and imagery, radio technology, electronic navigational charts, meteorological and oceanic data and information technology to generate maritime domain awareness for keeping our ships safe, secure and our marine environment clean. It envisages receiving digital information regarding oceanic data, surface weather information and identification and location information of ships to overlay on electronic navigational charts to provide complete maritime domain awareness. MMDAC consists of LRIT which receives information about location of Indian ship anywhere in the world and foreign ships within 1000 nautical miles of coastline. DGCOM Centre which coordinates the communication and response of emergencies and Maritime Communication System which establishes satellite and radio communication with ships. Sagar Manthan will provide assistance to fishermen in case of distress, act on seafarers needs 24x7, help Exim trade by ensuring safe and timely movement of ships and cargo and organize immediate help in case of emergencies to prevent pollution and loss of life. With Sri Lanka and Maldives already participating in the initiative, India is inviting maritime nations in the Indian Ocean to avail the facility to enhance maritime safety, security and environmental protection in the region.


Okay. Hello, everybody. I think that's time. Thank you for coming. And my name is Ciaric Lukov, and this is Lukash Lukasevich, and we are going to tell you something about how we use Zool at Tanks and Fabric. So, yeah, let's start with some introduction. We are admins and operators of the Tanks and Fabric's continuous integration and continuous build system. We started deploying Zool version 3 in November last year, so we already have a journey with Zool that lasts for one year. We both work at Codeline, which is a Polish company based in Warsaw. And we offer DevOps, SDN, NFV, and cloud-native services and consulting. We employ about 200 engineers who consume about 50,000 of coffee shots per year. And in case you want to contact us after the talk, here are our email addresses. So let's start with some background about our project. Tanks and Fabric, some of you may know it under the former name OpenContrail. This is a SDN framework that is multi-stack in a sense that it integrates with many kinds of workload orchestrators. The first one and one of the primary ones is OpenStack, but we also can provide virtual networking for Kubernetes and OpenShift, VMware, Hyper-V, and also connect to public clouds. So because we integrate with OpenStack, we face similar challenges like the OpenStack CI, because we need to test the software against different versions of OpenStack, for example. And the specifics of our project is that we use very many programming languages. We have C, C++, we have a kernel module for packet forwarding, for example. We have Go, Python, Java, and others as well. We have a single build of all the core components, and this requires checking out 30 repos into one build tree and making the build. For this, we are using the Android repo tool, which checkouts all the projects, and it was not that trivial to integrate it into Zool, because Zool does all the code checkouts by itself, but we managed to do it. And after the build, we need to create Docker images, because the tanks and services are deployed as containers. And we support a couple of platforms. We mostly focus on CentOS and the Red Hat family, but we also have Windows Server and in some places, a few Ubuntu images. Okay, so let's talk about how the build system looks like and what's the history. So the starting point, before we migrated to the CI to Zool version 3, we had tanks and had a continuous build system on Jenkins, and it was a totally separate system from the continuous integration system, so it had a duplicated set of scripts, duplicated locations of dependencies, and a different set of slaves for building, so it required a lot of manual synchronization, because when some important things changed in the code, the build scripts had to be synchronized between the continuous integration system and the Jenkins continuous build system. The build system worked. It worked well, but it required some more work. So while migrating to the CI to Zool version 3, we had an idea to use the same jobs that we use in continuous integration for testing to power our release pipeline. So we managed to do it, and right now the tanks and release system runs entirely on Zool, and the build pipeline consists of three steps. We first compile the code and package it to RPM packages, then we build Docker images, and then we publish it to whatever registries we want. So we have a three-step daily build pipeline, and to give you some more details, we have one Zool job that builds and packages the software. We upload it to RPM repo that is hosted on Nexus, then a second job fires which has a dependency on the build job. So it starts after the first one succeeds. We provide the URL to the repo, to the package repo using Zool return. So the image building job uses the variable to install the RPM repo, the YAM repo in the container, and the container step in turn uploads the images to a temporary registry, and the publish job fetches the containers and publishes it to external sources where you can download the images. We are not using or not planning currently to use the job-posing feature. We have the RPM repo and the temporary registry are living on a static node, and we think that it is a good solution for us because it reduces the load on the system. We don't need to have a VM running because during the build, we still need to retain the images and retain the packages, so this way or another, we need to upload them to some static registry. So we are not planning to use the VM from the first job, for example, to host the RPM repo. Okay, so this is one swim lane of building stuff, but we are building stuff for different platforms and for different versions of software, so we need to have multiple of them. So for example, for one platform, in this case, OpenStack, particular OpenStack version, we run it as a one pipeline, and when I say pipeline, I mean a workflow of jobs, not the pipeline in the Zoolsense. So we have one sequence of jobs that finish with publishing, and then we run them multiple times for different versions and for different platforms, and we even have one quirk that we are still using Jenkins under the hood to build some Windows containers, and this is just a Zool job that triggers Jenkins and then waits until it finishes and then downloads the containers and publishes them to registry. Of course, we are planning to use the notable Windows integration to incorporate this entirely into Zool version 3, but this is a temporary solution. Okay, to give you the full information, of course, we are using mirrors of different artifacts. We have RPMs, we have depth, we have PyPy, cache, Maven, and Docker images also. As for the builder VM images, we took the minimal approach, so we don't install any dependencies on the notable images. We are using a plain operating system-based image. We only install Zool SSH keys and all the dependencies are installed during build, so that we are sure that we maintain all the dependency configuration inside the source repos and not in the disk image builder image definitions, and it was kind of disappointing for devs when we were explaining it that the disk image builder and the elements mechanism is not a way to cache builds, because for me it's important to think about the disk image builder definitions as an infrastructure thing. We are providing images for different operating systems, for CentOS, for Ubuntu, but this is not... You can't submit a review with changes to node pool configuration and then test how the job will behave with your change, so it's not possible to change the image definition and see how your jobs run with it. You need to merge it, you need to wait for the disk image builder to build it, and then only then you can see how it's behaving. So we are not doing any build artifacts caching or dependency caching inside the images. Now you know how we configure the jobs, so it's important to say how we are triggering the events, so one way of doing this is a scheduled trigger in Zool, so of course we use it to build daily nightly builds, and when the release is approaching we change it to build to start twice a day, and on every merge we are triggering build pipelines for documentation, and also for third party RPM packages for our dependencies, so we have a cached repo of dependencies built from RPM specs, and it is also possible to trigger the build on demand, for example when something failed, and Zool administrator is able to trigger the build using the CLI. Okay, to make the build system a little bit more useful and to give a better interface for users, we provided some extensions, and all the things that I will be talking about are just things that we wrote in Ansible and in Python, we didn't change Zool in any way, so the first thing was consecutive build numbers. We have a requirement in the release process that every daily build has an incrementing build number, so for every branch that we build, we have a sequence of build numbers, and we are also dumping exact commit information into JSON files so that we are able to see what was included in the build, and also to reproduce the build in case we want to test something. We are dumping information about artifacts, so for example Docker images and the RADs for later verification, and from the commit information lists, we are generating tables of changes that went into the current build, and also a list of bugs. So the build number feature is written as a custom Ansible module that is using SQL database, and for every branch, we are saving the list of the mappings between Zool build set IDs and the build numbers, and I think for me, it is a kind of a persistent Zool return, so we are kind of saving values returned from Zool build sets for later reference, and also we are using the build number thing to, we change the way Zool is generating log URLs, so we have a list, we have a directory with all the build logs for every branch. And for dumping commit information, we have a JSON structure that for each project used in the nightly build set, we have a list of changes, commit chase and change numbers in Garrett are also there, and in case the commit referenced some launchpad bug, it's also, the information is also there, so we can generate tables and developers can see what happened in the last build using this, and yes, so as I said, everything is entirely implemented in Ansible, so we are running post playbooks to generate all the information and upload it to the log server. Okay, and so this was the build pipeline, but we started with implementing the jobs for a check pipeline, and we use exactly the same jobs, the jobs inside are aware of the differences in environment variables, so for example, we detect that we are not running against a change, but we are running against a ref, and we detect that we are running in a nightly pipeline, for example, and the jobs select, for example, the place to upload artifacts, depending on the information that comes from the Zool environment. We don't need a published step in the check pipeline when testing code, so we dropped the published job, and we performed the build, and then we performed the build using the same jobs as in nightly pipeline, and then we run a suite of integration tests for different platforms from the same artifacts that are built in the container building job. Okay, so we can also benefit from the fact that we split the jobs into two, because we can perform the package build once, and then use the artifacts in multiple image building jobs, for example. And Zool also made it easier for us to integrate job done by different teams, so all the components here were written by different teams. We made some changes to the build process and the packaging process. One of the teams prepared the tool for building containers, and the QA team prepared all the test suits, and Zool made it easy for us to integrate the job and to synchronize different teams to get to this point. Okay, so this was a description of the build system, and I will now hand the mic to Lukas, and he will tell you about some of the findings along the way. Thanks. All right, so I want to share something about reusing Zool jobs today. It's all fine, except the fact that we wanted to reuse Zool jobs outside of Zool. And the original idea was that we already have jobs that are shared between the CI and the CB system, so the majority of the work is done. We decided that perhaps we can use that in the development environment for our devs to make it easier for them. So we decided, okay, so let's focus on that and create some sort of Zool agnostic playbooks and roles, so they will be completely decoupled from Zool. We wanted to do it because Tungsten Fabric is rather an extensive project. We have a lot of repos that are tightly coupled together, and if you want to get a full build, you actually need to check out all of them and then run the build. So at the same time, we wanted to do it for developers, so it will become very easy for them. It will be like one-click solution. We wanted to save us the time because we already robbed the jobs, and at the same time, it's really cool to reuse the stuff you already written because, well, doing something twice is not fancy. And at the time, we approached some sort of a dilemma because we, as I said, wanted to have reusable playbooks that we can brighten Zool, but at the same time, we wanted to focus mainly on Zools variables because, well, they're just convenient. They're there. You can use Zool change or any other variables to tag your stuff or actually generate links to the builds. And at the same time, there is another dilemma because you want to have very good array visibility for the developers to actually be able to debug their jobs, see which exactly steps has failed and what do they need to do. And it becomes a little bit harder if you want to put all of that in the CI system and be dependent, so you want to have like one single show entry point very similar to what OpenStack intro team did for the migration between Zool 2.5 to 3.0. And of course, I want to say that the idea failed because run a playbook has to do all the work that we require. What that means, that all the building or packaging has to stick inside of run. And because of that, we cannot properly leverage pre and post playbooks. Pre and post playbooks, they're very good to use in Zool. They're very convenient. They allow you, for instance, to retry your job if they fail in the very beginning or upload logs because, well, this is like the last step you need to do. However, it's very hard to tell and to actually tag your stuff in a way that you are able to say, okay, so this pre-playbook is very Zool specific, but this pre-playbook actually insults our dependencies. One other issue is that I believe that Ansible is too well integrated into Zool. And what I mean by that is the fact that it's so convenient and easy to use Zool variables inside of Ansible that you don't actually want to create some sort of abstraction layer for your variables. And well, basically, you just use Zool change or Zool patch set, build set and et cetera, et cetera. One other issue is that if you want to leverage pre and post playbooks, you need to actually know which one of them you need to run. And this is something that implicates that you actually need to parse Zool config on your own because you need to see what the job you need to run. Later on, see what parent this job has and go over every single parent to the very, very top of the tree to see what pre, post and run playbooks you have to run. And combining all of that and then the decision of which playbooks are Zool related, which are not, it actually is a lot of work. So after a month of that is that we decided to move all the packaging, building logic to make files inside our code repos. So we have repos with the code, we have make files, we have all the built steps over there. It becomes simple. However, since we actually wanted to reuse some stuff and not do it twice, we decided to create some sort of make files that will allow it to, that will allow us to do it a little bit in an easier way. So in case of the CB or CI system, we normally run pre playbooks. Later on, we start with run. However, there is a huge difference between the dev environment and playbook and the run playbook. Dev environment runs target called make all, which basically will install all your dependencies, all the stuff you need and run all the targets at the same time. However, since we really, really, really hard wanted to be, wanted to still keep the ability to split the jobs inside array and be visible, we run something like target list. It generates a list of targets available. We save that to a variable. Later on, we have another task, another task that basically includes a different file with some, with the list of the targets. And basically, we include the, we include the file for every single, for every single target and that way it is well visible in an array. And from the dev environment perspective, as I said, post playbooks like logs or package upload are not really important. This is only something that sticks at the developer's laptop. So they are not really interested in that. And now I want to focus on testing your jobs. Because your jobs are already stored in your repos as a code. So in theory, you should be able to test them like everything else you want to test in Zool. However, there are some things that are not very easily testable in Zool. And there is a very good reason for that. And what I mean by that are secrets. Secrets are very difficult part of Zool because you want to have a system that allows you to be as open as possible and have as few operator ingress as possible. So you don't want operator to be administering the system. You don't want, you actually want the administrator to operate the infrastructure, not the system itself. So, and because of that, you allow secrets to be created by every single user. However, you need to make sure they are not readable by every single user. So you cannot test if the secret you want to add before actually merging the code to your trusted repo works or not. So you can take the risk, merge it blindly, or try to do something else. We have a few ideas for testing your jobs, actually. So you can start with setting all of your pipelines or the pipelines you want to test your staff as post-review. I would recommend that only in environments that are not security focused. So I would say something rather like 10 people company and knowing each other for over 15 years. That's a pretty good scenario for that. Another example would be a separate development environment. So separate development environment, I mean by that, setting another zoo, garrick, node pool, and all of the components needed for running your CI system. This has a huge disadvantage. You still need to clone your repos and actually integrate them to the new system. You need to make sure all of your DNS addresses or IP addresses, they don't overlap in any way and you don't have any mix-ups. Other thing is if you want to import your secrets, you actually cannot import your secrets because you're encrypted with different key of different zoo. But this scenario may not be perfect for testing your jobs, however, this scenario is pretty good for testing your zoo upgrades. So it has one of the biggest advantages. You can also run zoo on a laptop and you can try mocking node pool part or garrick part, checking out the code locally to your laptop, later on running some simple docker slave, which will be a static slave. However, again, you still approach the very same problem. You need to clone your repos. You need to set up your secrets. It's not fully viable. Another scenario is unique testing your roles. So this is something that will not help with secrets at all. However, it will allow you to make sure that your jobs are passing smoothly. And what I mean by that, if you're writing your code and your CI jobs, you can actually treat them in a regular way. So, for example, you want to set up, you want to change something in docker configuration in demon.json file. You do that in a regular way in some sort of role. And for testing that role, you basically, you can provide a dummy file which will not be demon.json. You can change the line you need or template the file you need and see if the exact result is over there. So that will be something like unit testing but for your roles. But again, it only covers the roles, not playbooks, not jobs. It's only a half solution. But I believe it's a solution that everyone should have in place because most of the time you actually don't need to test secrets. You need to test your jobs which will probably already have some base jobs with secrets already there. And the last idea or the last suggestion is running copies or mocks of jobs. And I want to focus on it a little bit more because normally when you want to open a review and you want to use a secret, for example, for uploading your logs, that would be a trusted config repo. So if you open that review, you basically won't be able to test the secret. However, you can try opening a review to an untrusted repo. And if you want to see how it will work. So normally secrets won't be picked up. However, you can replace those secrets with variables. Basically, instead of encrypting all of your stuff, you can provide some dummy values. You just need to test and see how they behave. However, they're also tasked that in config project, they basically allow you to run on top of executor directly instead of the worker nodes. So if you are required to run something on top of the executor, you basically need to change as a host because from untrusted context, you cannot run anything on executor. And the last part for today is actually stuff you would appreciate to see in Zool. However, we can still live without it. The first part is matching executor with its cloud. We have two environments and we want to expand a little bit more, mostly focused to the public cloud. With current scenario, Zool executors are not aware where do they sit. So they will try to pick up all the jobs and all the IP addresses of worker nodes all over the place. It doesn't matter for them if it's cloud one or cloud two, it's a private cloud or a public cloud. And our environment is actually in private, in the private network behind firewall. And we do not operate with public IP addresses for our slave pool. And we wanted to change that. And because of that, because of the fact we cannot differentiate two clouds, we would have to either run all of our executors on top of the public cloud, on top of the private cloud, because from the private cloud, it will be well available to them. So they will be able to access the private cloud, they will be able to access the public cloud. Public IP addresses are pretty much public. And we wanted to have a scenario like this. We wanted to have a very strict saying to Zool, hey buddy, your cloud is cloud one. Run only on top of that cloud, because, well, it's easier for us, we don't have to establish any tunnels between two clouds. We don't have to establish any routing and actually interaction with the infrastructure is limited on our end. One other part it might be actually profitable for is the fact that perhaps in very dispersed environments, having Zool executor binded locally to a cloud might actually decrease some sort of timeouts or pings or any other issues that you might expect in something like that. And the second thing is matrix build definitions. This is something we had in Zool 2.5. And if we focus on the part on the left, this is our example configuration we're going today. Basically, the difference between all of those three jobs is OpenStack version. This is pretty much simple, however, when you try to assign the jobs to projects, it becomes longer and longer and longer. And at the same time, you need to have a very, very separate job definitions, even though they actually don't differ much. It's only one single variable. And on the right side is my idea just random thought, how it could look like, not necessarily how it will look like in Zool 3, but how it could look like in Zool version 3 to actually be able to, you know, say, okay, we want to have some sort of regex matching for the job or some sort of variable matching for the job. And because of that, we will just provide one variable, the job name will change, and it will be happy. Ropping up. So I hope that one of the takeaways and the first and most important one would be that ThanksInFabric has a cool CICB system. One other thing is we hope that you better know or you better try to do it in in that way, or you actually know how to deal with binary artifacts with Zool, because it hasn't been trivial for us. Reusing your jobs is the key. However, I believe it's not always the key, as we proved with the LopNet environment. It was possible, it just took too much time and too much effort compared to the gains we got. So simple make folks was the key. And you can test your job not in the production, so you don't have to merge your code and see how they work before you actually run them. Our future plans. So we want to focus on continuous upgrades of Zool right now. We actually have two environments and frankly, we update them rarely. We want to run build and unit test jobs inside of containers instead of VMs, so that would be a driver for notebook. And for third-party packaging that Yarek already mentioned, so those are dependencies that we have RPMs spec files for and we build them. We want to use superseded pipeline manager, because if we have a lot of reviews coming in, it will basically allow us to build all of the packages we need in a very simple way. Okay, so thank you. And I want to invite Yarek actually in here, so we can take all of your questions. It's good. Right, so thank you. We have some swag, so first come, first serve. A few power banks, a few tungsten fabric stickers. Run.