So welcome to the Biaxel webinar number 52. Today, as a presenter, we have Paul Bauer and Berkes from the Royal Institute of Technology, Stockholm, Sweden. And they will speak about what is new in Gromax 2021. So something about the today presenter. Paul is a Gromax developer manager. He finished his PhD in 2017 at the University of Sala on computational enzymology with Lynn Kammerling. Then he decided to move to Stockholm, where he worked as a scientific programmer and researcher in the group of Eric Lindahl in the Institute of Technology, KTH. And he started to work on Gromax. Then in 2019, he became a developer manager of Gromax. Berkes is professor of theoretical physics at the Royal Institute of Technology. He designed a lot of algorithm for Gromax simulation package in the last two decades. His current research focus is advanced sampling methods, aggregation of molecule, and wetting of surface at the molecular scale. And they will tell us what is new in Gromax 2021. So I welcome everyone in this afternoon. And as Alessandro said, I'm just going to give you a quick overview of what kind of new features we have in Gromax 2021, the features released a few weeks ago. And also some things that we're currently working on and interesting development to come. Wilkes is going to focus his part of the webinar on two of the new features where he helped to properly implement them. And as he is the expert in that field, he will speak about them later. So what is Gromax for? Well, it's the one simulations. And usually we think about simulations, biomolecular simulations. But it can also be used to simulate basically any system that you can describe using the algorithm we have implemented. So here you see a nice membrane system that is being simulated. But you can simulate everything from common nanotubes to macromolecular assemblies. The good thing is that the thing we want to achieve with Gromax that you can just run a simulation of something interesting like this transmembrane receptor in a large box with multiple ligand molecules and surrounding molecules. Not having to worry much about how efficient this simulation is because we should take care of this. And not having to have too much hassle in setting up simulations, trying different algorithms, or playing around with system settings until you get things right. All the things that we have in Gromax is, of course, hopefully documented in our manual. And I will always ask people to please read the manual first and release notes to know what is for the new features. You will find all the information there always. And you can also find information about the implemented algorithms, about some limitations that we know about, and things that we are not working any longer on, or that we know that are not working at the moment. You also will always see what kind of bugs we have fixed in the recent patch releases or the major releases. There are also previous webinars that showed the capabilities of the previous Gromax releases. I just have the links here to the two recent ones. And if you're interested to see what changed in between those versions, I welcome you to check those. I think they're also quite interesting to listen to. Now, we have a quite strict release cycle for Gromax that we try to have one release every year. And we also strict that we have this release at the beginning of the year. We tried first to have the releases at the last of December or first of January, but that didn't really work out. So we had this release a bit more today, based in February. And we have plans of attached releases that will take care of a few bugs that we have already investigated. During autumn, we will switch our main development to the 2022 branch and hopefully release a number of beta release candidates to prepare for the 2022 release in early next year. Just a final note for the 2020 branch, we're just expecting to have maybe one more patch release coming up now in February and maybe a second one in April if we find some bugs that are simulation breaking or effective physics in a bad way. But this branch is now officially only supported for things that are of major concern to us. And we want to focus our main efforts on the 2021 branch and all developments for the future. Now, I actually didn't change this slide from last year, but I just chose that Gromax is quite a high impact. And I think I should change it before we have a new release over now or something, because we have also a few more publications to mention Gromax and that's sure what you can use it for in the end. Not to what we're actually doing. Gromax is not just developed as something that we do at KTH with a few programmers, but it's part of a larger collaboration with multiple projects, multiple external groups. The development through BioXL is one large part, but we also have several code design projects where we work with hardware vendors to make sure that we have proper support for new hardware before, hardware hopefully release, and also proper support and proper performance on new hardware systems. And we work with other groups to implement new features at the same time. Now, for the main part, what we're actually doing. There are a few new features in those. This is just taking directly from the release notes, so if you want to go there, you can read the same thing there. But the main things that we have developed now are mentioned here, and we are gonna talk over them quickly now over the course of this webinar. And I think we'll start with the multiple time stepping and for this I will give the book to Boeck, who helped implement this in this expert there. Okay, thanks, Paul. So yeah, I have the honor to introduce the first two new features of Gromax 2021. So the first major one is multiple time stepping or multiple time step integrator to be more precise. So we haven't prioritized this in the past because we always were using virtual sites to replace hydrogen masses to use a time step of four femtoseconds, but this is getting to limits. So we now finally also looked into multiple time stepping that many other codes already have. So I'll show how it works, well, how it fundamentally works and then show how you can use it in Gromax 2021. So the main goal here is to improve performance by calculating some parts or some part of the forces less frequently. And the scheme we use is the standard, our Respa reversible and sublactic integrator. So the idea is that you split the potential in the fast and slow varying parts, which can either be because some atoms move faster or slower or because the forces themselves actually very less with the motions of the atoms because the potential is quite smooth. So if this is currently implemented only for the LeapFrog integrator in Gromax, which is extremely simple scheme. So you only change the velocity integration, not the force integration. So at every end steps where N you can choose, you integrate both the fast and the slow forces. So you need to compute both as you would normally do. And then you simply add in into the integration the slow force N times. So the slow force gets added multiple times or effectively has a larger time step. So you can also write N times DT here. Every other step, you only integrate the fast force. So this is for a two level scheme where you just decompose one slow and one fast. You could have more, which is not implemented in the current release. So this is extremely simple and it's shown here in the right in this diagram where you have the in blue, the slow force and the red, the fast forces. So the fast forces are added every step as normally to integrate the velocities, which then go into the integration of the coordinates. But the slow forces you simply add up twice in this example with N is two where this factor or this you do it every two steps you compute the slow force. So you simply add them in twice.  So actually it's extremely simple if you look at this, but this has been well thought out, not by me or by us, but by others a long time ago now. So the only slightly complicating part here is that the constraint variable is more complicated because the constraints forces are inferred from the displacements, which now depend on in this way on forces with different pre-factors. So one has to do some tricks there, but that's correctly implemented. So this is the basics here. And then one can choose which forces are slow and which are fast to make different trade-offs of performance versus accuracy. So you should choose the slow force as well, such that you don't introduce all of integration error by integrating less often. Okay, so how this is done in practice is through some MDP options. So by default, multiple time stepping is turned off, but you can turn it on by setting MTS as yes. And then the other options listed here are default. So we default, we have two levels, which is only the number of supported currently. We might add more in the future. Then the default setting currently for the what forces are treated for updated less often, it's only long range non-bonded, which means PME grid forces, which is usually PME for Coulomb, but it could also be for Frida and Jones, if you use PME Frida and Jones as well. And the default factor is two, which is the usual kind of setup that other codes also use where you update the PME grid forces every four seconds instead of two. So what this standard setup gives, it gives small to moderate performance gain in most cases, but it's free so to say, because it doesn't cost you accuracy in most cases to integrate the PME grid less often. It can give higher performance gain at high parallelization because there the PME grid calculation can be, well, it will dominate the communication cost. So there the gains can be much higher. So that's one of the main areas targeted here. It can also, one other example, it can also be used for compul forces, which can also be expensive, especially in parallel simulations where you have to communicate a lot. So there, if your pool forces don't fluctuate very, oh, sorry, don't fluctuate very quickly, then that's also an option. So here I can also mention that my original idea here was to replace the large times that with hydrogen's replaced by virtual sites with this scheme since the hydrogen, the virtual sites hydrogen scheme doesn't work so well anymore, especially on GPUs. So one can add more forces to this less, to the sole force group less frequently updated. So there, my idea was to do long range, non-bonded pairs in the hydrals. But unfortunately it turns out that some hydrogens get unstable every hundreds, nanoseconds or a few hundreds. So that's not very frequent that happens now and then. So that's wasn't feasible. So that's certainly not the default. So I'm still looking into this and hopefully I'll get back with more information at some points here. A slightly smaller time step could actually work here. Okay, then the final note on multiple time stepping is things that we might extend support for in the next release or later. So one issue currently is that it's not support. So update on the GPU is not supported combined with multiple time stepping. So this could lead to some performance loss because the update needs to be done on the CPU. In that case for the integration and combining forces. So that we would like to improve because especially for GPU heavy machines, here you could have a nice gain of not having to do PME every step. We would like support for stochastic dynamics integrator especially for free energy calculations. Support maybe for more special forces to decompose and maybe have more than two MTS levels. Although in practice it's often not so useful because more force fields have been anyhow parameterized with constraints on the hydrogen. So you don't want the time step, while you want the time step is anyhow two femtoseconds and there's not much more gain to be had. So that's what I wanted to say about multiple time stepping. So then there's another new feature which is free energy calculations with the accelerated weight histogram method. So the accelerated weight histogram method has been part of Gromax for some time that has been developed by a PSU student working with me. But that was only you could only use it for pool center of mass pooling coordinates. So now we've added extension there. Oh, I should have mentioned the name of Magnus Lundborg on this slide who has done most of the work here. He has extended this together with me to the lambda coupling parameter. So how you, let me first explain how you would normally do free energy calculations which some of you might be familiar with. So to interpolate between two states A and B so it could be a molecule solvated in one in vacuum or it could be a mutation in a protein where the A is the wild type protein and B has a one side chain mutated for instance. You would add a coupling parameter to Hamiltonian called lambda and then you run many simulations that's each at a different lambda value to compute the derivative of the Hamiltonian with respect to lambda or nowadays you would compute differences in the Hamiltonian with respect to lambda and use benefit acceptance ratio. So now that A, W, H can handle this what it can do is it can move lambda dynamically in one simulation and from that get a free energy. So the setup is actually really simple. So you need to set A, W, H is yes. You need to set A, W, H one dim one corner provider that lambda. So you tell it to use to act on lambda and the only parameter you need to set is a diffusion coefficient which tells roughly how fast the system moves along lambda and it seems like one 0.01 one over picosecond is reasonably okay in most cases. So then you get the free energy out of a single simulation. So you run one simulation, lambda moves and in the energy file with the normal A, W, H tool you can extract the free energy you get out of this. So this is really convenient and also turns out to be quite efficient. So as efficient as benefit acceptance ratio method or maybe slightly more efficient in some cases we're working on a manuscript here to show this. Another advantage now is that you can parallelize this with multiple walkers using MD run dash multi-deer. So you can have many independent or semi-independent simulations contribute to the same free energy build difference being built up. So in that way you can get your results faster and use many simulations and more hardware to get your answer quicker. This will be explained in more detail in the near future in a bioxial webinar on A, W, H plus free energy calculations which will be announced soon. So with this I would like to give the word back to Paul. Yes, thank you both. Yeah, I would just go on directly with the main new features that we have. And I think one of the most important ones is that we implement a new type of pressure calving algorithm that has been contributed to us by Joanne Boussi and this group in a really well-executed external collaboration. We were able to implement the Stochastic Cell rescaling algorithm that is a pressure coupling algorithm, pressure coupling method that can be used both for the equilibration and the production parts of the calculation. Just if you're interested in that I would recommend that you check out the people that is mentioned here. And they just show that here what is basically what you can do with it. You no longer have to switch between balance and for equilibration part of the simulation and then whatever other algorithm you have been using before making it easier to use in the end and also reducing the amount of errors we hope that people that either use the wrong pressure coupling method to make equilibration for production just because they forgot to change the empty key field for it. Yeah, going on. Another main thing that we were able to add was experimental support for SQL as a method to offload calculations to accelerate the devices. I have to say this is really experimental still and in the default 2021 release you're not gonna see much of it because we only added some back end stuff for it and not something that the user was in the front end. But for people that are happy to experiment with this new and the feature we have actually a development branch that tracks the 2021 release and includes all the SQL features we have added for some corner and you can find the link here for the link on the slide. And also just if you go to manualbombermax.org they find a link and show the explanation what this branch is for. We want to explore SQL further because we think it's gonna be an interesting approach for offloading if it manages to target different kinds of celebrity architectures. And we also hope that we can use it in the future to provide support for AMD GPUs. So this can be done with OpenCL. You want to see if we can use Hipsicle and put this in step instead of having to add another GPU port that is FAMO specific by using the Hips download. Yeah. Then something that is a main feature and hopefully gonna make people happy that do free energy calculations that they put to chargers. And that is that you can now offload PME calculations to GPUs if you do free energy calculations with charge perturbations. This means that for simulations that's currently only able to use the GPU for normal calculations and then had to do PME on the GPU that can be quite slow because you have to calculate multiple grids for charge perturbation. You should expect a major performance gain from this. This has also been contributed mainly by work from Markz, so I want to talk this with you again. And we hope that will be of major impact for people that do the free energy calculation. One last thing when it comes to half a support that is that we have extended also the port for the arm architecture by adding SVE scale of the vector extension support. This has again been contributed for external collaborations from RSI T and JEPA. And the only thing that you need for this is basically a compiler and toolchain that you should be able to get if you are interested in building and running on arm. And for now, you only get the ability to choose the SVE vector size at configure time requirements but you can configure it for any value that is fitting for your own device. We have been in talk with the people from RSI T and the contributor that help us implement this in changing this to maybe have one time support for the different vector sizes but that is still something we're discussing and not fixed yet. And just as a final thing is that you now have a full fully functioned number in the Action API and also listed forces in the Action API with MBLIP, an external project in collaboration with PRIS. This ships now with Gromax 2021 and you can use it to try program mini apps for testing algorithms. You can try it out using your basis to set up topologies and then interaction times. And we hope that we can extend the use of this in Gromax by adapting our own topology formats to it and getting away from the legacy input processing and also simulation setup that can be hopefully simplified with this kind of future API. Good enough with new features now about things that we removed and it's a good thing that we haven't removed anything new yet. For this year, last year we removed by the lot because the group scheme got finally removed after being deprecated for years. So for now, there has been nothing new completely removed from Gromax but there's still a few features that are not working because we haven't added the support for them yet and this is mainly membrane-abandoned embedding that we hope to get back at some point. And we are sorry, even though we promised that people tried to get it implemented again, we haven't been able to add the use labels for the non-bonnet interactions yet. This is working purpose and I give you a promise that it's gonna be in 2022, come have a little high water and that you will finally be able to supply your own interaction formats again for this. There are a few new requirements for this version. We have been a bit aggressive when it comes to the C++ standard that we required that we now require C++ 17 after requiring C++ 14 last year. This is mainly because it makes our life much, much easier when it comes to development and making sure that the code actually works. We still require only CUDA 9 that the C++ 14 compatible. But we are thinking about bumping this requirement for the next release, again, to make our life easier and making possible for us to support these kinds of. Another thing is that you need a slightly more modern CMake now to run to configure and compile code products. It's not that new and you should get this version with any recent operation system in install that I can think about. There are a few things that we have deprecated for the next release and I think some of them may be a bit contentious. One of them is that we really think that the default name setting for output files will be removed or should be removed because it's providing nothing but hassle for us and makes it very difficult to robustly implement restarting and file handling on a very on a low level. So we think that we have to remove it and maybe provide different kinds of options for it. Now I think that has been officially deprecated but will not be removed probably yet is OpenCL. We hope that we can provide support for devices that are currently targeted by OpenCL using the SQL standard and something like a SQL but as long as OpenCL is needed to run promise on those devices at this day by the moment you can remove it, you will remove it because it's very difficult to maintain it in pass and it's using a different coding standard that makes it difficult to use modern SQL features for this kind of GPU code. We also removed some SIMD architecture support for things that are no longer relevant in HPC space. That's not really my business except if you want to own some one of the systems. The thing is it's going to express the one on it but it will use the plain C simple kernel instead of accelerated kernel. Now I think that will go away with the next version is the SDMD1 only built because it has done is it's done its job. It's not on my YouTube because you can run everything through the GMEX VAPA binary and you don't really need to separate any one binary now, do you think? You're gonna remove HWLock because API version one because we want to take full advantage of the features that are available with the API version two that should have widespread adoption now. Some other things is probably not of much interest. The main thing I think is the constant acceleration that has been broken forever and should probably not be used because we can't really say if it's working or not. Like we've got a user report today that says that it's working but I don't really think we can put any effort in making sure that it works again. Yeah, as I said before, we have a few codes and projects that I just want to plug here again. This is mainly with NVIDIA trying to get the support from your computer devices in. We are working together with Intel and maybe soon AMD to get support for Intel GPUs and for AMD GPUs. And of course we're working together with people that are interested in getting GMEX accelerated on ARM chips. Good, we're coming to the end of my slides here in both net revenue with some slides for the long term plans that I probably should have updated because we have multiple time setting support now but we are not able yet to replace completely virtual sites with it. So I hope we can improve ourselves a bit more and get this completely replaced. We're still working on improving support for the Python and DC++ API to make it easier to use GMEX as a library. And we now provide actually a set of GMEX containers. So you can one GMEX directly through Docker or Singularity if you're interested in this and be updated over CI testing. So you can one the same things we have in CI if you want to make sure that things actually work. A few things that are not here on the list like support for newer methods like constant PH, PH calculations. But I think we should just stay tuned for our development and look for the data releases later this year. And if you're interested in following us our development on GitHub, I just like only to have a look there. Good. This is the development of Comax is of course a work of quite a few people that I'm not gonna name here. I just want to plug again the development leads Eric, Mark and David that started the project and have been leading it for a long time. And the people I work together with in Stockholm, question, seller, there's Joe, Arton and I forgot Andre or a new developer to put him under this spot. Yeah. That's it. I hope it was interesting webinar for you. And I think I will give back to Alessandro and Julian for the Q&A session. Yeah. Thank you very much, Paul and Berg for that very interesting talk. Some of those new features that you were talking about are definitely very interesting and I look forward to trying them. While still waiting for questions, I'll take this opportunity to sneak in my quick question to Berg, which is, have you done any performance testing on the two time step method to see how much of a speed up you can get on some basic protein system? So how much faster do simulations go? Well, the problem here is it depends completely both on your system and the hardware you're running on. So in the worst case, you might actually get worse performance because if you have, for instance, multiple devices, a CPU and a GPU and one of them is fully busy and you remove work from the other one, then actually you won't gain anything, but it's a bit of overhead. So then you get a few percent overhead that would be the worst kind of case. The best kind of case is, of course, where you're limited by PME and then you don't need to do it every step and then you can get a high gain. So that's in the, as I tried to say, in a massively parallel case where you're always limited by PME. But even then you might have separate PME ranks, for instance, which would run idle and then the gain is only the wait time on that, whereas if you would be running PME on the same ranks where you're doing other computation that you can actually reduce the time on a rank. So in best case, let's see what's the best case. I guess the best case on a GPU where you would be spending maybe a third of the time or more on PME. So if you can halve that, you could gain a six of the time or maybe a bit more. But in parallel, you could gain even more than that. So the gain is, I think, often not so high, but 10 or 20 percent is certainly possible, but it depends completely on both your system and the hardware you're running on. And it also affects in that sense maybe the choice, how you want to run the simulation as well. So it makes things even a bit more complex. We should automate that, by the way. That sounds, I mean, 10 to 20 percent sounds brilliant on long simulations and large simulation, right? Yes, yes, and it's nearly free, so to say. So yeah, yeah. So if that applies to your occasion, sure, do it, yes. Great, thank you very much for that answer. The next question we have is from Bert de Groot. All right, so yeah, thanks for the great work. I was just wondering about the cost and acceleration. What is exactly broken? We've used it quite a bit and it seems to work as advertised. That's a surprise to us because we also had reports that it's broken and that it's not working. So there are some fields that are just not used by it that should be used. And some, I think that it should some would be a force should be applied or an energy should be checked and it's just not done anymore since 4.6, I think. Okay, I mean, the functionality is not completely covered by the full code, I think. So it would be a pity if it would be removed. The thing is we really have to put me to check to actually be sure that we can implement that it's implemented correctly and that those that the method works as it should. We have to move that now, of course, we can work the removal in master branch. But I would be interested to hear how it's working for you because we have an issue for this and we show that it should not be working because where the thing that does the acceleration on the does the acceleration supplied is no longer done correctly. Yeah, we can talk offline and share the test that we did as well. That would be great. Yeah. Great, thank you very much for that question and the answer. The next question we have is from, sorry, one moment, is from Victoria Hill, are there any situations where the multiple time steps may not be appropriate? Well, there are many, but that depends on how you set it up. So the parameter that I showed, if you only do PME every four femtoseconds, so if you would have a standard simulation setup and you only turn on the option with all the defaults set, you would only be doing PME every four femtoseconds. And I think that's quite standard that many people in the community use other code. So that should be unproblematic, but you could, of course, choose different forces there. You could choose a larger, a larger long time step, so not a factor too larger than a normal time step, but much more, and then it quickly gets inappropriate. So there's a quite small regime where it works. Like I already found out quite late that, for instance, the scheme I wanted that I had planned to use, that that's not fully stable, so you need quite long simulations of more than 100 nanoseconds to see that hydrogen's become unstable if you choose also other terms, other force terms as well to update less frequently. So this is quite tricky. So there's a lot of literature already out there, but I think there's space for more investigation here to see what works and what doesn't. So I'm planning to write the manuscript on that, but that requires a bit more study to see which things might be appropriate to do and what's, and if they don't give side effects. So usually things tend to cause instabilities in the simulation crashes. So I haven't seen any cases where I could get the simulation to run stable for a long time and get wrong results or wrong sampling. It usually resulted in a crash. So that's the good part there. Probably if you would do PME and you would do that, every, like some people to try to do that every eight times a second or so, I think then you actually would get incorrect results which will not cause instabilities, so that's dangerous. Great, thank you very much for that answer. The next question we have is from Karsten Kutzner. Yeah, sorry, I missed part of the earlier question, but so it might be related. So my question would actually be if you do multiple time-stepping and you would use, let's say you would compare a parallel simulation to a simulation with four femtoseconds with virtual sites and would you get any performance benefit and parallel then with PME because you would update normally PME every four femtoseconds anyhow or would you be able to do it less often? No, so the performance gain, the scheme that would be nearly equivalent to performance was slightly faster was the one I mentioned below on the slide where you do BME, the non-bondats, the dihedrals and the angles every four femtoseconds. So that would be about equivalent in performance to virtual sites or slightly faster, but that turns out to be slightly unstable or yeah, unstable very frequently. So that's the equivalent. PME only is a much smaller gain as I answered before. Yeah, I just, okay, just to get around the communication bottleneck and highly parallel simulations, I would think. Well, you also do much less PME, so especially on a GPU, PME can be expensive. So there's some gain to be had there, which can be quite a lot actually. So, but it's not the factor on what do we get with virtual sites, factor 1.7, 1.8 or so. That's getting less and less on GPU. So that's one of the main reasons for going to multiple time setting is because that works better on GPUs in principle. Okay. But then we need to find a good scheme that gives you more benefit than only PME, only transferring PME, but I don't know if there is such a scheme yet. Okay. Okay, thanks. The next question we have is from Luca Monticelli. Again, a multiple time stepping question. Does it have any effects on energy conservation? I imagine that in the cases where it crashes, then yes, definitely and presumably others. Well, it's a symplectic algorithm as I wrote. So it preserves energy extremely well. So it's, you don't see anything in energy conservation in practice, even for the things that might crash quite quickly. So I would say often it preserves energy really good. So of course, if you do things really bad, you might see something, but no. So it's, since it's implecting and you're acting on slow degrees of freedom, it usually preserves energy as well as not using it. That makes sense, thank you very much. The next question is from James Caruthers. How does the performance and precision of the AWH model for free energy calculations compare to standard parallel simulations or expanded ensembles? I imagine of rather than or there. So if the question about precision, I mean, that's a matter of how long you run your simulation. So any proper algorithm or method should converge as close as you want to the exact answer by running longer. So that's also the case for AWH as it is for all the other methods. So you can get as accurate as you would like to be by running longer than the only question is what, which method is more efficient? So the only exception from that is free energy integration where you have quadrature errors which don't go away if you simulate longer. But methods like BAR, normal expanded ensemble AWH, they converge to the exact answer. If you have enough, if you, as long as you throw more and more sampling in. So there's a question of which method is more efficient? Which is a difficult question in general and might depend on the system. Thank you very much for that answer. And I would... Sorry, the question includes also performance. Yeah, so performance as I said, it depends on the system. So we're working on a manuscript and there it seems like it's as good as BAR or slightly better, but that's of course only for the few systems we tried. So that's not a conclusive answer, but it seems to be at least as good as BAR. So that's what I can say for standard free energy calculations or chemical calculations. Great, thank you very much. And our final question is from Yasser Almeida. Yasser asks, have you considered to include the installation of Python API directly during the building of Gromax? Currently, this is done as a second step after you've built Gromax. Now, you can install the Python API directly with your Gromax build. You need to set, I think it's Python packet, minus the Python package on the CMake magic for this exact, yes, this was the CMake magic. That should also be documented somewhere in the GMEX API installation documents, but maybe it's a bit hidden and you should make it more prominent. But yeah, you can install the Python API that is shipped with your Gromax build this way directly. Great, thank you very much. And we have thanks from Yasser. And there's actually been a final, final question that's made it in from Mandar Kulkarni. The question is, can we use the RESPA algorithm? I imagine the multiple time step RESPA algorithm, but that's not specified. Can we use the RESPA algorithm with meta dynamics? That's, I can't answer conclusively, but I don't know how meta dynamics is coupled to Gromax. That's not something we do. That's something that the plume team does. So I don't see any fundamental issues there, but I can't, I don't dare to answer that. Great, thank you very much for that answer. And with that, that concludes the questions that have been asked. Thank you again, Birken Paul, for taking the time to talk us through all of the new features of Gromax 2021 and giving us an update on the state of Gromax now and in the near future. And thank you everyone for coming to this webinar. I hope you all have a good day.


OK, it's the top of the hour. Everybody can hear me? OK, thank you. OK, hello, everyone, and welcome to another deep dive of the Create team. OK, here. I'm Francisco Javier Lopez, sound for short, and I'm a senior bucket engineer in the Create team. Today, we are going to talk about Git LFS. Sorry. We're going to talk about Git LFS, but there are several topics related to Git LFS we could talk about. So we are focusing on what is Git LFS, how you can use Git LFS. The specification behind Git LFS and how we have built our own LFS server here at Git LFS. OK, this is the table of contents, especially what I have just said. First of all, I want to say that I think you all know this, but Git doesn't track binary files like audio, video, or image files the same way it does with text files. Any change in a binary file requires to upload to push a new copy of the whole file in the repository. Yes, Git can generate these files for binary files. So that means that with a big binary file, if we made some modifications or update to it, the repository can grow really quickly. So the history will also grow bigger and bigger. That means that usual operations like flow and fetch or pool will decrease the speed. OK, let me change the speed. So what is Git LFS? Git LFS is an open source project. It was developed by several companies, I think GitHub, Bitpocket, and so more. But Git LFS is a Git extension. So it's not a binary, it's not an external tool. And that also means that when you install Git by default, you don't have this Git extension. It's not only just a set of tools. It also sets a definition which we can use to create our own Git LFS client. And that Git LFS explicitly replaces binary objects with text pointers. These text pointers will go into the Git repository while the binary files will go to the LFS server. Let me show you something really, really quick. OK, this is a repo with only one file and two commits. OK, the first commit is where I added the image. And the second commit is where I updated the image. OK, if we take a look at the size of this repository, the object directory is almost 4 gigabytes. And the file size of the image is almost 2 gigabytes. So that means that the two changes pushed to new binary files to the repository. OK, now let's take a look at a repository with Git LFS. I have the same image. I did the same and added the image and the repository size. As you can see, the size is only kilowatts, because we only store text pointers there. The binary file is in a different storage. OK, this is how a Git LFS pointer looks like. There are only three mandatory params. The first one is the version, means the URL that identifies the spec used to generate this text pointer. The second param is the OID, which is a hash identifier of the file. At the moment, only SHA-256 is supported. And obviously, two identical files get always the same OID. Finally, we also have the file size in bytes. OK, let's take a look at the repository with LFS enabled. Let's create some code with Git LFS. We can get how the pointer is going to look like. OK, this is not a pointer in the secondary repository. It is what the pointer of this file is going to look like after Git LFS that is magic. But how Git LFS works? OK, first of all, we need a new LFS entry in our Git repository conflict file. This entry stores the URL of the LFS server. So now we have two different concepts. We are going to have the usual remote for Git repositories. And we will also have this new LFS entry for the LFS server. But if all when you install the Git LFS extension, the LFS URL is going to be the Git repository URL. As you can see here is the entry of my LFS server. OK, then once we have installed the Git LFS extension, we have to tell it which files to track. It is really easy. It uses a pattern matching style. So if we want to track only PNG files, we have to say, Git LFS track on this pattern. It only works for new files. So if we already have existing PNG files in the repository, we have to run Git LFS migrate before. Once we execute Git LFS track, a new file called .git attributes will be created in the repository. And that file has to be pushed through repository as well. In that file, we will store the filters used or the filters that Git LFS will use to track which files replace for expointers. I mean, it doesn't track if the file is indeed a binary file. I mean, you can track text files if you want. It's just a pattern matching. It also provides file locking capabilities, Git LFS. So that means that if you set a lock on a file and you push that lock to the repository, nobody will be able to update that file in the repository until you remove that lock. OK, but how Git LFS does this process through Git hooks? OK, it's really simple. If we go to this repository, now in these repositories, we have some default hooks. Let's check, for example, the pre-push. As you can see, there is a warning first. And then we call Git LFS with the command, OK? So under the hood, every of these hooks will call the command Git LFS. OK, how does this work conceptually? OK, first, we perform the Git push. That Git push gets to the LFS hooks. And those LFS hooks will detect if you have any file to track. If it finds any of those files, it will generate a pointer. With that information, the pointer, it will also replace the file with this text pointer. So these pointers will go to the repository, and it will send the real binary files to the LFS server. And in a Git pull, the process is quite similar. We perform the Git pull, then the repository will provide the pull data and the LFS pointers. This information will go to the LFS hooks. The LFS hooks will access the LFS server with all the LFS pointers that it had found. And then the LFS server will return the binary file. With this information, we will return the pull data and the binary files to the user by having. Authentication, I have to say that Git LFS, although I think it's almost three or four years old. I don't remember. It still uses HTTP basic authentication. That means that for security reasons, we should use HTTPS or use SSH. OK, but where do these credentials come from? It can come from the Git remote of the LFS URL. I mean, you can edit the config file of the repository and put your credentials there. They can come also from the usual Git provincial key chain. And if the remote is through SSH, the process is a little bit different. When we perform the pulls, for example, Git LFS will connect to the repository through SSH. Then it will run the command git LFS authenticate. This command is handled by Git Lab Shell in our case. Then Git Lab Shell will connect to the internal API to the LFS authenticate endpoint. And that endpoint will return a token. That token has an expiration time inside it. And with that token, we will return a response. With that response, we'll have a header section with an authorization header. Then when Git LFS sees any authorization header, it will use that header in every of the following requests. In our case, the authentication is handled by the controller git HTTP client controller. Basically, what it does is checks if the request has any authorization header. It will decode the content in that authorization header giving us the login and the password or the login and the token. And with that information, it will call the method findForGitClient in the auth class that will iterate over each of the authentication methods we already have in order to get a successful response for those credentials. And then it will return the result class. OK. Git LFS defines two main APIs. One is the batch API used to handle objects, to handle binary files. And the other one is the file locking API, used only for logs. So one interesting thing in this endpoint is that it is used only to request ability to get information about LFS files. It's very important the concept of request the ability. If the user is not apprised, of course, no information about the LFS files will be sent. If everything is OK, in the response, we will have some information about where we can find the LFS file. Usually, that URL, the action to access the LFS file is done in a different endpoint, not through this one. This endpoint is used for both uploading and downloading. And any of the request and the response involved in this Git LFS process must have these headers. OK. This is totally mandatory, this MIME type. OK, this is how the request to the former API look like. We have an operation field, and it can only be upload or download. We have the transfer field, which is a list of the client transfer adapters. And only basic is used at the moment. We also have the rest, which is a reference in the repository, and the main param object, which is an array of LFS objects to interact with. OK, so in this example, what we want to do is upload this object. This is how we tell the former API, the former endpoint, hey, I want to upload this object. How do I do it? OK, then in the response, we have the transfer, again, which is the same transfer adapter, and it's the same we use in the request. And the main field, the param object, is a list of objects with information, the OID, the size, authenticated, that indicates if the request is authenticated or not, and finally, actions. In actions, we see which operation can be performed. HREF, which is the URL where you can access the LFS file. We have the headers, which it will usually be used to store the authorization headers. And finally, the expires in or expires at, that indicates when the transfers will expire. So in this case, what we are going to do, or what this response says, is if you want to download this LFS file with the OID 1111, you can access it in the HREF, HTTPS, gitlab.com, OK? OK, how LFS downloads looks like in gitlab. First, the client, the smiley face, the git LFS, will perform a post request to this endpoint. That request will reach to the LFS API controller. That controller will check the authorization, and if everything is OK, it will return a response saying, OK, if you want to download in the HREF, this one, you can access the LFS file. Then the user will perform a git request to the URL found in the response, and that will go to the LFS storage controller. Again, that controller will perform the authentication of the user, and if it is authenticated, it will send a response with the header xsend file. And the content of that file will be the path in disk of the LFS file. This is important because we are not sending any binary data from Rails to git LFS, OK? We only send a request with that header. That response will be intercepted by Workhorse. Workhorse will see that the xsend file header is set, and then it will get the content of that header to access the file and stream it, finally, to the git LFS client. OK, and how uploads work. The same way, we perform the post request, the LFS API controller, we authenticate this request. It will return a response with an HREF URL, and then the git client will perform a put request to that HREF. That request will be intercepted by Workhorse. Workhorse then will access Rails to get an authorization to perform that upload. If everything is OK, Rails says it's OK to upload that file. Workhorse will then upload the file and save it to disk, OK? And when the upload has finished, Workhorse will send a request again to Rails saying, hey, I have finished the upload. That request doesn't have any binary data inside. The file has already been saved to disk. It only has the OID and the size and basic information. So in the method verify, verify, finalize of the LFS storage controller, this controller will check if we already have this LFS object in the database. And if it is, we will link it to the current project. If not, we will create that record in the database. And now the file-locking API, OK, this is really simple. This API has four endpoints. The first one, the first one with the POST method is to create a lock. And this is important because this is a new project. Only single branch locking is support. That means that if I lock a file in master, it doesn't mean that if somebody check out that branch, it doesn't mean that the other users can update that file, OK, in that branch. We also have an endpoint to list all the logs. And another endpoint, the unlock endpoint to remove logs. And this is interesting because usually what you expect is that you should remove only your own logs, OK? In the request of this endpoint, we can set the param force to true. And that means that the user wants to remove a lock from other user, owned by other user, OK? We allow that only if the user who makes the request is a project maintainer. And it makes sense, right? OK, another, and I think the final endpoint, and it's really interesting, is the verify endpoint. This endpoint is used to check if any file in your Git push match any of the logs set in the repository, OK? Usually when you use a Git LFS, a warning is raised, saying, hey, if you want to enable this functionality, please execute this command, OK? So you have to enable it. The response returned by this endpoint is basically into two fields, hours and days. The field hours will store the logs created by the user that makes the request. And there, obviously, will be the logs owned by other users. So when you perform a Git push, if any of the file matches any of the logs of the user in the field hours, the Git push will succeed. And after the Git push, Git LFS will display the logs involved in that Git push. In order to tell you, hey, in this Git push, these logs are present. Maybe you want to remove them, or you are aware that they exist. And the second case is if any of the files matches any of the logs of other users, the Git push will hold, OK? It's the expected behavior in this case. OK, so let's take a look at the response. Here, as you can see, it's a very simple response. In hours will be an array of the current logs owned by the user who performs the request. And there will be the logs used by other users. And now let's code that. I want to start first with the roots, OK? In the root Git HTTP, you have this three group of roots. The first one would be for the batch API, the second one for the locking API. And the third one will be for the object storage, OK? So as you can see, in the first one, in the LFS API, we have the batch, we have this one are deprecated. And in the locking, we have the logs. We have the unlock, the verify. And here, in the LFS object storage, we have the root path to download LFS files. And we also have the upload authorize and upload finalize used in Git pushes, OK? So I mean, this method will be called by Workhorse. So let's take a look at the LFS API controller. And before anything, what do we have to do? We have to authenticate the user. So that functionality is stored in the parent class, in Git HTTP client controller. Here, we have method of the hook authenticate user. And here is where we handle the authentication of LFS files, specifically here. Here, as we saw in the slides, we call GitLab auth. And the method find for Git client. And we pass the login and the password that we want to use for that authorization. And the result would be a result object, which will allow or not this operation. OK, let's suppose the user is authenticated, everything, it's OK. We are going to check if the request is a download request or an upload request. How do we do it? Just checking the operation from. OK, remember where is it? Here, here is the request, the request, how our request looks like for the batch API. We have the operation transfer reps and the objects. Here, this is what we are checking. So the process is really simple. If it's what the user wants it to download object, we will iterate over each of the objects in the request and then call download action. This download action is basically create a hash that we will use in the initial response with the project URL and then this root. OK, this is the root we are using for the LSS object storage. You have to notice that this root is the same root we have configured here in our roots. OK, the same goes for the upload action. We will iterate over each of the objects, then call the upload action. And in this upload action, we will generate the proper response of that action. OK, again, with the same URL and with the same LSS object storage. Notice that the URL in this case is the URL when we download and the URL when we want to upload is different. OK, in uploads, we usually provide or we have to provide the size. Why? Because we also use the size to check if the file provided in the upload has the same file, the same size that the file that we requested. OK, what else do we have? OK, let's take a look at the LSS storage controller. Remember, that controller is this one. It's the one that will download or allow the upload to the LSS object storage. So this is the one that the Git clients will talk to when sending files and getting files, right? Mainly when you download. When you upload, you don't really talk to this endpoint. The only workers talk to this endpoint. OK, but yes, you use the same URL. And as you can see, let me go really quickly. Workhorse uses the same URL. It's only at the suffix authorized or in this case without it. But only workers talk to the LSS storage controller for uploads. First of all, what do we have to do when somebody reaches a controller authentication? OK, the same way the LSS API controller did. This class is a true class of the Git HTTP client controller, so it's the same method again. It calls the authenticated user hook, and then it's called the GitLab of class. So if the user is authenticated, then we will check if the LSS file exists. And if it exists, we will call send upload. Send upload, basically send file upload. OK, this is a concern. And it will reach this file, this line, sorry. This file, in this file, we will tell Rails to call the send file method with this path. This method is the one that will, well, not this method. Let's say this method does that. This method will send the header x send file in the response, OK? So here we are not sending any data to the Git client. We are sending the path of the binary file to Workhorse. Then Workhorse with that path is the one that will open the file and string the file to the final user. OK, now we have two methods. We have upload, authorize, and we have upload, finalize. In upload, authorize, Workhorse is going to say, hey, somebody want to upload this file. What do we do? Can I do it? Can I authorize it? And then based on the response, we will allow it or not. And once the upload has finished, this method will be called. Again, it will be called by a request sent by Workhorse. We will go to store file, and what this does is first check if those objects exist. And if it exists, we call link to project. Link to project, what it does is to check first if the LFS file exists. And if it exists, it will link the LFS file to the project. And if not, it will create the LFS file in the database. Because what we have is a network. There is only one LFS file, but it can be linked to different projects in order not to repeat the same record in the database. So the main problem here is that if we delete a project, we only delete the relationship between the project and the LFS object. If all the projects are deleted, the LFS binary file will remain in the database forever. So that's why we have a service that runs periodically in order to clean orphan LFS objects. And finally, let's go to the LFS logs API controller. This is a really simple controller. We have the basic operations. We have create, we have index. And then we have also verify and unlock. Create is used to create the log, unlock to remove the log, index to list them, and verify to check if the LFS, if the log exists. Here you can see that the result of this finder is splitted into the response hours and days. And that response here is what we saw in the slides. I mean, this Git LFS is, by now, the specification is really simple, basically because we don't have many functionalities yet. For example, we can look a file across branches. We can only encode using SHA256. But as you can see, it's really easy to create your own client, your own Git LFS client, and your own Git LFS server, in this case. OK, and I think that's all I wanted to talk about because I mean, I can go into details with LFS objects, LFS logs, but I mean, they are pretty simple. So I think I prefer if you have any questions to talk and answer them. So let me stop. OK, let me check the chat real quickly. Yeah, LFS, OK. And we still write to this for temporary storage, even when we are configured to use a temporary storage. Is this your standard as well? Yes, I think so. I mean, I'm not an expert here because I don't know what workforce that's under the hood, but it's what I think. I can solve your doubt about HE configurations, sorry, Gert. I have no idea. First, no, just be straight on the first and we're going in the background with the model. OK, OK, now in the document. Yes, that would be a recording in YouTube and filter, I think. I think that's an interesting question. I mean, if the token expires, every request has the authorization header. So in that case, I think it will have to re-authenticate for that. Yes. How many files are stored in Elephone? OK, you are asking and responding and answering yourselves, Christian, you can talk if you want, because it will be, I don't know, it's a very large version. Yeah, it's a simplification, please. Yeah, I mean, it's not really how it works internally, but it has simplification concepts, a conceptual simplification of how it works. I mean, it will be interesting. I don't know if you would be interested in knowing how the KID LFS client specification is, because we don't have to deal with that yet at KID Lab. I mean, if you are interested, I'm happy to help you with that. OK, any other question that you can reply? So if not, I think we're done. Thank you very much for attending. I hope you enjoyed. See you all soon, OK? Bye, everybody. Thanks, fam.


What's good Josh Roy Ross back at again with another video. So ready to check out Vince steel the big problem for WWE John Cena's recent photos and What the Undertaker really told great Wyatt on raw 30th anniversary show. I've been seeing the John Cena photos I'm not sure what's going on. I'm not sure if it's for His HBO series he got as a peacemaker, maybe or maybe it's for another movie.  It's going on guys. It is WrestleMania here Join us now as we look at the wildest news stories and rumors you need to know including a Vince work man There's still a problem in WWE. Oh boy. Well Vince make from a WWE sale The Undertaker reveals what he told Bray Wyatt. There's no plans for a top star JBL finished with WWE John Cena spotted in new role and much more be sure to subscribe and hit that notification bell for Also, check out our new channel WrestleMania shorts now, let's see the intro and get straight into our first story Now first we look at Vince McMahon is still a problem in WWE But today's news is another story concerning a potential WWE sale in this case Well, the mr. McMahon is helping to facilitate the sale or he's hurting the process Many Mac retented the WWE recently claiming he was there to oversee any sale of the company or new Negotiation of a new TV rights deal. However, it's a kingpin making things easier or harder Or Meltzer is reporting because of the payoffs to a number of women regarding affairs and allegations that some of those situations were not consensual But man's return to the company and involvement in the sale talks has been very controversial Hmm the economics of WWE are very strong and look only stronger going forward unless there's a collapse or decline of meteorites fees Meltzer went on to discuss the report which suggests at this stage of the game The belief is that McMahon's presence is a hindrance and not a help in these negotiations Although as the largest stakeholder he is also the key beneficiary financially even when the sale goes down and for that reason forced his way into that process You may recall a recent story that Vince McMahon made it clear that putting him in charge of creative is not a condition of any sale There have been rumors that McMahon was trying to use a sale to regain power and creative Now we know better than to try and hypothesize on what's going on through mr. McMahon's mind However, it's incredible to see him return to the company only for himself and the company to face the lawsuit and potential lawsuits over the way He returned to the company. Yeah, it's it's been I believe there's some more lawsuits head in his way That is it's crazy. He tried to pull a power move But ultimately is still some issues that he's having even with the whole process of even trying to sell the company So it's gonna be interesting to see how all this plays out But it's not as cut and dry as we thought it was when he initially returned Regardless of whether these lawsuits are filed to capitalize on the upcoming sale with the idea that WWE will settle just to move on with a potential sale It's mind-boggling that WWE is tolerated McMahon putting a tiger on his back and the companies Yeah, mr. McMahon is the majority shareholder in terms of voting rights But the board does have options for dealing with them if they feel he's creating too many problems Interesting how much will Vince make from the sale a lot of money WWE is sold it looks like it could lead to a big payday for WWE executives and major shareholders Let's look at a recent report from Dave Meltzer concerning how much several players look to bring in if the company was sold for 8 billion this is roughly what the key people in the company would make from the yo Hey, yo, I just want I just want y'all to look at Triple H's numbers He's making an extra eight million dollars, right? Linda McMahon making an extra 50 million dollars That's his wife Kevin Dunn 24 Nick Khan 13 million Don't know who Frank Ridditt is still extra 10 million in his bank Stephanie He's making an extra a hundred and seventy million dollars and then of course Vince a millionaire 2.5 Billion plus dollars, bro, that's ridiculous That's just That's ridiculous that is I Don't even Words can't even just quantify how big that is potentially Jesus sale Vince McMahon two and a half billion Stephanie McMahon a hundred and seventy million Linda McMahon 50 million Kevin Dunn 24 million Nick Khan 13 million Frank Riddick Almost 11 million Paul Levesque 8 million. What do you think of these potential paydays? Let us know in the comments down below. I can see why he would want to come back and sell it I can see why that's I mean, he's already a millionaire I'm not sure if he's considered a billionaire. I believe he's in the upper millions for sure He sells the company he instantly becomes a billionaire. He has the most Steak in the company stock wise like yeah, he becomes a billionaire easy Just That's that's just insane Next up the Undertaker reveals what he told my I can't just Take a whisper to Bray white when the two interacted during the raw 30th anniversary show Fans have been asking this for weeks as Millie believed that the interaction was an informal passing of the torch Now the Undertaker is letting the world know what he told Bray Sportsnet take a revealed I just let him know to that my phones always on and if he needs to talk to me about things or run things by me That's cool I'd be more than glad to share my experiences with him and hopefully shine some light on questions that he has moving forward It was a cool moment and I did exactly what I thought it would do During the interview the Phenom praise the current bloodline storyline noting Sammy Zane is doing remarkably well in his role And take her also discuss the comparisons between Bray Wyatt's character and his There's obviously a huge amount of comparisons between his character of mine. I think you know, he's his own guy He's his own character. I don't think it's fair to him to compare what he does to what I did in the big scheme of things Obviously, it's in the same supernatural. I don't know what genre 2023 and he's doing his own thing, but I can appreciate and I can't see what he's trying to do On the Undertaker is repeatedly praised by its ability and it's clearly a big fan of his work This dates at least far as back to WrestleMania 31 and the Undertaker reportedly told Vince McMahon to take care of Wyatt as he saw a lot in him Next up no plans for any didn't in a sense the thing About Wyatt and I think he's he's lost a lot of steam from when he originally came back from last year the thing is You can do the spooky supernatural stuff sparingly in a sense because we live in a different day and age where People, you know, it's all about, you know, social media and we can kind of poke through those supernatural elements like back then it worked In a sense because you know, it was just a different time period. There was no social media So you could pull off some supernatural acts and a lot of times people would buy into only what the hell just happened You know, but now I think you can be a creepy scary character Without all the extra supernatural stuff. I think you can still pull it off You can have that person that gets into that mode where they're different. They're not the same Person like you can have the normal break doing this promos and all this other stuff And then you can bring out that person that's like that when they when they get ready to wrestle They tap into something they they they switch in a sense You can have your creepy elements here and there but I think when it comes to Conveying that believability it has to it has to you have to find that fire line You don't want to overdo it and you don't want to underplay it You got to find that fine line where it makes sense people can buy into it and it's entertaining What happened with him and that Mountain Dew pitch black match? It was When you really look at it in hindsight It wasn't going to really work because it was a sponsored match And I think once you add that sponsored element to it. It doesn't have the same intensity or that the heart that you would Want a a debut match of Bray Wyatt and his Newish kind of gimmick, so I'm not sure where they go with him But hopefully he can get into another feud and it works and maybe we see more of him wrestle I'm not sure He had some great ideas But I think some of the ideas can be taken a little bit too far and it just doesn't really work Like like maybe how they you know drew it up in a in a like a meeting or whatever But I do think there's still some upside to Bray I haven't given up on him and I want to see what they do with him moving forward WWE's top star What does WWE have planned for Matt Riddle at this year's mania? The WWE is preparing for its biggest show of the year Which means it has plenty of matches to plan out but according to ringside news They don't include riddle fans who are hoping to see Matt Riddle on the road to WrestleMania might want to stop reading here As WWE has zero creative plans for the original bro at this time Yeah, WWE have reportedly suspended Riddle after an alleged second violation of his wellness policy It's unclear whether the WWE wants to give the original bro time to show he can work without any future problem There's some other factor keeping him out of mania Would you guys like to see Riddle wrestle at the showcase of the immortals? Let us know in the comments down below. I mean that the thing is I mean there's not really much for him story-wise I do think he needs to focus on getting getting himself together before he comes back the only story I think that really will have people interested is Randy Orton and And as we're about to talk about Randy Orton Matt Riddle, I think that's the best story he could possibly have Them going at it, but we we don't know Randy's or update so we're about to check that out actually right now Next up a Randy Orton update speaking of returns What about riddles arcade bro tag team partner Randy Orton? The viper has been recovering from back surgery, but a recent picture of him shows Orton in terrific shape Should fans take this as a sign that he's on his way back or Melts had to say this in the Wrestling Observer Newsletter We've heard no wrestling update on him recently But his back injuries were very serious and a few months ago There was concerned about whether he'd be able to return or at best It would be a long time with which it has already been While Randy Orton is an ancient of Daisy's 42 years old and he's had major surgery Therefore it could take him some time to heal and rehabilitate like any return There's also the matter of the WWE not wanting to bring him back for just any story line when he's ready to wrestle In addition, the WWE may want to keep his return a surprise That too Unfortunately, this is another situation where the best the fans can do is wait and see when the legend killer returns Yeah, I'm hoping he you know comes back relatively soon once again You know it only if he's you know physically able to one any time you're doing with anything with the neck back region You got to be careful with that me being a testament of the recent car accident I had this week, you know, you know, I'm definitely making sure I take care of myself and going to therapy and stuff like that So I I can understand when it's dealing with having a back surgery Yeah, you may want to take your time may want to make sure everything's good because it's not just him You know walking around and you know living his normal day-to-day life Going back to wrestling. That's a heavy toll on your body in general. We saw what happened with Edge He had to retire But damn almost ten years He had to let it go because the doctor said if you keep on you may not walk again and He was able to come back and that took a lot of time So hopefully it's not the same situation with Randy But we will see keeping him in our prayers and you know, hopefully he has a speedy recovery WWE will air Smackdown from the UK live That's good news for UK fans is the WWE's decided to broadcast an episode of Smackdown as well as its upcoming money in the Bank that's gonna be fun. Do you release this press release? That's gonna be fun There's no word on whether the WWE intends to air raw in the UK But we will continue monitoring the story That's gonna be fun Smackdown in the UK to go home show potentially for money in the bank Sign me up. You guys in the UK.  Oh my That's gonna be a fun event Bischoff believes the bloodline story is better than the NWO Oh, the bloodline storyline is white hot How does it come out to WCW's New World Order saga while Eric Bischoff weighed in during an episode of his 83 weeks Podcast saying the truth is the bloodline story in terms of a storyline in and the Ingredients and the elements and the discipline and the structure and the nature of it It is a far better story than an NWO Well, I have the same impact on the industry as the NWO did probably not That has a lot to do with timing facts. You discuss why things work so well for the rogue faction that terrorized WCW There are so many things that made the NWO work including whole Kogan turning heel by the way There was so many things that were just a moment in time that helped propel that storyline at that time that you Can't replicate that today Eric Bischoff's heavy involvement in creating the NWO given me unique Perspective on things so it's interesting to see him here and praise the bloodline storyline over the New World Order I mean this storyline is pretty fantastic and it has some similarities you have The guy that has been the ultimate baby face for so long to the point where fans were just sick and tired of it He comes back and it's not in the same sense of of Roman joining a group he comes back and he ultimately Starts a family group by force by manipulation So I can see a little bit of comparisons and of course the NWO just in that time period It'll never be another faction that was just that over in that time period to the point where it was just mainstream It was mainstream. It that it that was a rare time period So I don't think it'll ever be it will have the impact like that, but the bloodline storyline my opinion Will probably go down as one of the best storylines WWE has ever produced and It'll go down as a storyline that people can actually go back and relive. This is one of those storylines For example, I know there's a lot of comparisons of the authority storyline with Daniel Bryan That wasn't planned a lot of that just organically happened and is still one of the best moments Best storylines as well because you have the ultimate underdog trying to stop the authority It works. So I think this storyline with the twist and the turns and the new people being added to it Fantastic, it will go down as one of the best storylines in WWE history. It's up there with the stone colds and the And the Vince McMahon saga it's up there, bro It's just great, you know, some people can say I'm I'm giving it a little bit too much Too much praise, but no, it's the most compelling stuff on every single show if it's on Monday night raw or Smackdown It's the most compelling stuff It's kind of hard to argue that Next up JBL done with WWE for now That's bad news for fans who were enjoying the storyline featuring JBL's attempt to transform Baron Corbin Who's enjoying that? JBL is on a ways with Corbin on the 6th February Raw after Corbin lost to Dexter Loomis Admonishing Corbin for tashing his name and telling him that you can't polish a turd Yeah Now Meltzer is reporting that JBL's role is over and that JBL is done as a character There's no idea what's next for Corbin But he's been repackaged so many times that one can only imagine what's next for the former lone wolf King Corbin and happy Corbin The only thing he hasn't tried is a supernatural gimmick Corbin could join the white six or break out as Papa Corbin bringing Papa Shungo's gimmick back into the 21st century Next nah, man. A lot of people are saying go back to the lone wolf Being there. I mean he's tried everything go back to being that lone wolf. That's what kind of worked for him. The only thing is he still he doesn't have the Charisma that you would want like he's he's pretty good in the ring He's pretty good in the ring will not deny that as one of the coolest signature and finishing moves in all of wrestling I think It's that charisma that passion is it's not the passion. I'm sure he loves the business But the charisma is not there to match a gimmick any heel gimmick he's done so far It just it hasn't worked like when people see Baron Corbin even though JBL He was dropping some truth bombs when people see Baron Corbin a lot of times They just turn the channel bro and it sucks because he's not bad He can actually have some great matches. It's just people just don't care about his character They haven't in a very long time.   Um with him But maybe he goes back to the lone wolf character. We will see Kurt Angle Talks comeback match Is Kurt Angle planning a comeback match? No, Kurt The wrestling Olympic hero recently spoke with sports illustrated about his role as celebrity judge for the pfl Challenges series third week during the interview. They asked if Angle plans on coming out of retirement I don't plan on doing another retirement match. Once you do, you're never retired Do you just keep on going back and doing it over again? Rick fresh into here Flare the dismiss any talks of a comeback in life Rick flare other wrestlers swear they are finished in the ring only to pretend to action a couple of months later You've done it all. I'm John Cena spotted in your role Last but not least, have you seen John Cena's new look? I have a magazine at a picture of Cena along with this report The actor was photographed on the set of the upcoming prime video comedy film ricky stanicky in melbourne australia on wednesday Cena 45 stood with his face covered in makeup Complete with lipstick eyeliner and painted on eyebrows.  I figured it was for some type of role or whatever.  What's going on, bro? She's doing out there man But nah, man, we're seeing him the best luck as well and whatever he's doing whatever project he's working on Will we see him at WrestleMania? I would love to see a John Cena versus austin theory. I think that would be cool But we will see how that plays out, man But comment down below. Let me know. I'm gonna ask y'all this specific question I talked about in the video How do you guys rank the bloodline? Storyline the whole saga everything How do you rank that? Storyline wise compared to all the great wrestling stories Of of yesterday, you know, I'm saying let me know where you put the bloodline saga Even though it's not completed Where would you rank it as one of the best storylines in wwe history? Or would you say it's kind of in the middle of the road or you don't like the bloodline story at all Let me know down below But I appreciate all love and support on the channel roll to 150k and I am still y'all And just be the youtube wrestler the champ of the world. Appreciate y'all kicking me. See y'all next one. Peace