I'm Flavio Perez, a city of animation company called Le Fais Special, based in Montpellier, in France. And I'm going to talk about this feature film, our third one we made during the COVID, and how we did it. So just a little bit of background. It's September 1980 and Iraq just declared war to Iran. So it's a war that will last for seven years. Abadan here, southwest of Iran. It's a strategic town with one of the world's largest refineries, which is this huge building. There will be a siege of Abadan, which will last for a year, and the story takes place during that siege. And at the beginning of the movie, many people are leaving or joining the army to fight, and some decide to stay. It's a case of our hero, Homed. His family is leaving, and his elder brother is joining the army, but he decides to stay with his grandfather to help him. And he will make a lot of attaching personalities in the journeys to about start and maybe love. Let's see that in the movie. So the series feature film, the production is over, and the movie is going through its final post-production stage, including sound mixing, and will be released later in 2023. You might hopefully see it in festivals before that. So the movie was screened by Jawad Jawari, the director, Sepideh Farsi. She's a director from live action, and it was his first animation movie. The art direction, you will see that, is very strong. It's coming from Zaven Najar. He's the one who decided to do this movie in Blender seven years ago, and it was produced by Sebastian O. There is a lot of partners in the production. I'm not going to name them all, but that will also have an impact on how we do the movie. So as I mentioned, there is strong visual art defining this project. It's made out of illustrator, so it's very full shapes and stuff like that. There is a very specific look, as you can see, of factorial shapes. The work is highly documented, of course, and we can see this in photos from the cinema before it was destroyed and the creation of the sets on the right side. Here was the Mosque here, which was next to the church. You can see it on the photo here, and which was a military place during the siege. So you see very highly detailed illustrator style for the sets. There is color palettes. For example, here the greens, the browns, the blues. There is different style. But the art director was willing to do this movie in Blender, so this is where we step in, and the producer came to see us to ask us how we do that in Blender. So the main idea here is from a storyboard, you create an illustrator file, of course. This illustrator file will be exported as PNG sequences of layers. We'll see that in detail in Blender. We have some tools to create a 3D space. We'll also dig into that later. Then we have three assets, of course, from the characters to props and vehicles and stuff like that. And then the parallax allows us to do some, I mean, this spacing of the layers allows us to create some parallax. And then we go back to After Effects and bring back also the illustrator file to do the compositing on the original material, even in fact, moved around in Blender. So you have the full idea. So this is the preview of the real steps. This is a real pattern, as designed by the pipelinepatterns.com suggestions. And we are going to go through each and every one of those steps, of course, today. So here is the first step, so creating an illustrator file. No, I'm kidding. I'm not going to explain everything. There is a lot of shots in the movie, but we start with the assets. We will need to be organized to handle this, of course. There is 1,800 shots, that's a lot, and 3,000 assets for this movie. So the characters, the first thing. So it's very close to the art style, you know, the illustrator style. You can see here a turnaround of the 3D modeling. There is a lot of cheating here. There is no real casting shadows and stuff like that. It's a fake shadow. There is re-controllers on the shadow, of course. If we need for some cases, or even the shadows on the nose are little geometries with the inverse normals and stuff like that. Here is another example. We can go on forever as there is many characters. And the question is how many characters? Well, there is a lot like 300 main characters just for the, you know, the characters. A lot of variations and stuff like that. Some pets you will see animals at the end. And then a lot of props. Yeah, a lot of them, kids, pets. A lot of cats. And then the main, there is a lot of cats around. This is the main character. He has 30 variations. We decided actually to not do a rig system where you can switch the variations. It's one variation per file. So we avoid issues later on. So then the illustrator file, as I mentioned, so there is a, it's files with a lot of layers. So obviously there is some helpful layers with a perspective and annotation and storyboard and stuff like that. And then it's highly detailed level of shapes. But that is exported as a sequence of PNGs, as I mentioned also. So you can see here the same shot and all the layers are a different PNG. Yeah. There is an average of 16 layers per shot. But the biggest one was like 50 shots, 50 layers, sorry. It's 6,000 pixel wise, 6,000 pixel wise set, which was a nightmare to load on Blender of course in the graphical cards memory and stuff like that. So we had to create tools for making proxies and stuff like that. So the first step usually it's to put the shots in the layers in the shots. So we have this camera plane tool which you import the layers. And then it's pretty easy to set up the scene and move the layers around. You can group them, you can, here you have, when they are important, you have the list of layers, the distance to the camera. So you just play around and create quickly a space. Because that would be useful to put the 3D asset in the right place or having some parallax effect in some cases and stuff like that. Yeah, you see examples. Actually we'll see that at the end on the real layout file. You will see that there is usually two cameras. There is one camera for the set, the projection set and one for the action. So we have two different cameras. They are not linked. So we can move around and create a space. So here we import an asset and then we set up the camera more or less correctly. And then we can still move around the layers. And this information of how we move the layers is important to keep until the end because maybe here they decided to move the plots around a little bit on the left or on the right but for the composition. And this needs to go through at the end until the compositing, of course. Yeah, so that's the real layout file here. And we see the parallax is free now. You have access to that. Then about the characters, we did the rigging on the AutoRig Pro, you might have heard about, made by Lucas Weber. It was supervised by Pascal Ramondin in the studio. We made 80%, I think, of the rigs. And then some students in Germany helped us. So here are some of the tools we made. So this, for example, is the low generation creation of an asset. So we divide by two. It's creating the collection of low polys and stuff in one click. So trying to, you know, little tools to speed up the production and help the team to go faster. The let's dance button, of course.  So you can try out the rig and see if it's jumping around and stuff like that. So let's see if you have skinned it well. Here you have it. Of course. It's not an animation, an animator animation, of course. It's a technique animation. And in the case you are wondering, of course the let's dance button itself, it's dancing. The polka dot system here.  It's just applying a polka pattern on the character. As you can see, look to the screen. This was made for temporary rigs. Any character was not finished as this shedding system on. So if we started a shot before the rig was finished or even sometimes using another rig, at least the director can see visually that's not the right character in the scene and not asking a retake saying it's not the right character. We know it's not the right character. So we displayed it on screen. Autorigs for props. You import the prop and then there is a one click auto rig system. It's handy for, I mean, to just gain time. And then if you need a specific rig, of course, you will work. This doesn't need a rig. So you just at least can move the object around. This is more tricky. The transfer rig model. So it's a system. If you are happy with a model, you create a complex model. You can select it. So for example, here the clock of the character. And you can select the whole rigging module and then export it and import it in another character. But it's completely connected back to the auto rig. And it's working. It's making us gain a lot of time. Obviously, this character doesn't have a clock, but you will see the result here. Everything is working. So this is why it's useful if you have managed to do something with a soldier's bullet system and you want to apply it to another character. You can just transfer that kind of stuff pretty easily. And it's working. The sanity check. Of course, the sanity check is super important during the production. Some artists can't check that much control point we need. You have to test a lot of things. So in our case, it's just you have a rig, you click a button and maybe you start the video. No, it's okay. And you have a full report made in HTML. So it's playing what's wrong in the scene. You can see all the tests which have been going through and passed the test here. So there is a lot of them. And then you can start the script again with an auto fix option, which is trying to fix as much things as you can depending on how it was programmed every test. So here I started it again. And then we have like six features who were fixed. So it takes 10 seconds. But it's coming. Yeah. And some of them, the script cannot fix them. So you still have three things to think. That helps us a lot to drop completely the number of issues we had during the production, of course. And I'm trying to get back to my notes here. Yeah. It was made out of a Python model called SCARF, Simple Quality Assurance Report and Fixes, made by Damien Dicourot, former city of Ubisoft motion pictures in our head of pipeline at Fortish. It's only adapted by Clément Bernadette who worked with us. There is a almost 100 test well-organized for rigs and props. Here you have some detail. I really recommend medium or bigger project to set up a good sanity check because, you know, provide some love to sanity check you won't regret it. It's very important. In our case, the book tickets drop drastically during the production. So it was very helpful. Now let's go to shots now. So as I mentioned, there is a 1,876 shots in this movie. And that's a lot. It requires to have things organized well and fluent, of course. The first thing is the same builder. We started the production with Blender 291. So it was proxies back then yet, no overrides. And so the limitations are known. But it's a hub where you can port characters, switch to low res, high res, you know, this kind of stuff. You can hear, you see, we go from 40K vertices to almost 400,000 cases vertices. So it's very useful for for animators. This is a hub. You can switch versions, update assets and stuff like that. Usually people won't use that. We have also this in common line. So usually our asset manager, we just use the same techniques to import everything in the scene. But still in case we need we have access to a full GUI interface of this. And then we can switch to later on 293. We can started switching to overlays in some cases we needed. So it was in cases we needed multiple assets, for example, or stuff like that. And then remove assets. You know, this kind of useful stuff. So it was, I mean, I'm just presenting the main features here, but there were many, many features, including renaming, creating caches and exporting and stuff like that. So then playblasts, it's always important to have good playblasts and mark the image. The watermarks are very important. We made these two years ago and I've been evolving it a lot. And it's based on JSON templates and JSON data you provide to the script. It's not only there is a blender add-on, but you can make it work outside of Blender for any other image sequence. And it's a post-process creating also the movie with the image magic and FFN peg. And here you have a playblast from layout. Here you can see also these polka dots are available on these characters. So it's not the final version of the character or maybe not even the right one. Maybe not the right variation or age or something. And the car also was made by the layout. So while the asset is not there, they put the polka dot just to say that's not the final car. Of course. A post-library, we did. It's a concept I made. So yesterday, Daniel Martinez made a flashback. So I'm doing also a flashback. In Blender conference 2015, I presented the idea of creating tools for Blender, outside of Blender, using web sockets to connect the tools with Blender. And I made a prototype for a post-library. We didn't use it for five years. And then this project came. And we had this problem coming back. So I said, okay, let's dig that idea and create something a little bit more up-to-date. And the basic post-library linked with the read was too limited for our case. And even the earlier version of the asset matter which were coming was limited. Our case scenario was many animators across different studios, difficulties to update the rigs or the library files and stuff like that. And also the ability to share poses and animations across characters. So we created this web page.  You can put different options like flip the pose. You can select part of the rigs and say I want to apply the pose. Basic post-library stuff. Of course, then lip-sync. But the idea was to have it easy to the animators to use. And then you can also mix poses. So with the middle click from the web page you mix, you know, a pose, this kind of stuff. And then it was easy also to save poses. It was very easy to an animator to create its own temporary poses library and then share them with the others. So just if you are happy with the pose, you just click the plus button here. You name the pose. All right. And then you select the bones you want to grab the pose. Here it says it saves 18 bones here. You have a button to do a snapshot. You can, you know, everything is connected in real times. It's very helpful. And it was even more helpful than the lead animator was, I don't know, in Germany and then in Slovenia animators were working. So if any animators put something on the share library, at the same time, instantaneously, the other animators have access to that. So it can be animation cycles, so I'm not showing the animation, but we have animation also and stuff like that. And then finally, the preparing the rendering. So we will get all the files, update the asset, of course, we have to update the assets here, prepare the layers, the render layers, what was the passes, export to export, after effect the camera and 3D objects. We'll see that later. And the collections are created and set up the node trees created. So this was like a checklist of stuff before rendering and going to compositing. Everything was, I mean, 99% of the movie was rendered with Eevee, which was already there. It was great because it was super fast. I mean, this kind of visuals are very fast to render. Apart from some shots made with cycles for the shadow catcher, because Eevee didn't have the shadow catcher stuff. We used Eevee, so it was great. And the sets were not rendered, except on some cases of camera mapping, because it's a 3D object, because all the set are planes and we'll send the planes straight to after effect with the 3D position of each plane and stuff like that. So we didn't have to render the set, so it was also lighter and we don't have to send huge image sequence and stuff like that. So going to compositing, so that means leaving Blender now. Just one presentation of how we set up the scene in after effect. We generate a .bat file with JavaScript things and it's creating the after effect, importing all the layers, importing back the illustrator file, creating the compositions, importing the same position of the layers no matter how they moved. And then we have the scene here. We just have to move around a little bit the renderer image of the characters, for example, and put them in the right place. But we offered the compositing team to have both 3D composition or 2D, depending on the shot. If there is no camera movement, you see there is two compositions here, one with the 2D. They used a 2D one because it's lighter and faster in after effect than the 3D ugly after effect system. But yet if they needed, they can move around stuff. And every character and props as a locator connected to it. So they can still attach an effect to the character if it's moving or the vehicle or stuff like that. So the idea was to have as much things prepared for the artist all the time during the production as we can. So they focus on artistic stuff, of course. We'll see a sequence. The sequence, it's early in the movie. The browser for Omid left for the army. So Omid is taking over his brother's job. It's not the final version. It's also one of the first sequences we did in the movie. So there is some little stuff and it's mixing 2D and 3D as you will see. So you can see the style of the movie. So we see, we keep this strong visual style in the production and effects every visual effects also done directly. So we have these very rounded shapes and stuff like that. So as I mentioned, there is a lot of partners in this project. What it means, it means a lot of studios working because when you find money in other countries, because of this kind of movies are to finance in only one place, it's an adult movie about a war far away. So you have to find money around. So what it means is you find money in Germany. Germany has to work with you. So you have to split work. And there is eight studios in this project engaged in the project. It means also people working from home because of the COVID pandemic. It was last two years. So studios, home workers, everyone has to be connected and working, adding the dependencies, the files, everything. And it's a 3D project. So you have textures. I mean, I don't have to explain to you what the 3D project means. So a lot of things. So of course we have a lot of tools to do that. The usual communication tools, of course, always there. And then for Blender add-ons, we create an add-on called the package manager. So it's an add-on. The graphics will just install. There is a network version of the add-on. But then you have the list of package for the project available. So you list all the, you know, it's saved by department. And the idea is you have a one-click install button. It's installing the add-on. And the dependencies sometimes beep. Dependencies, for example, from other Python libraries. Some of the add-ons are great. Means we can find them because they are on private repositories. You need a token. Usually it's not our add-ons. It's add-ons we bought from the Blender market, for example. And the authors don't put them publicly online on some Git or Git lab. So we have a private copy of them. Then you can install, remove a package. You know, it's very, very easy to set up. And I think the add-ons are updated. So here, for example, there is an add-on which is not updated. So you can see you have a different button. You can also use the auto-update function which is on the top of this, which at the start of Blender would check if there is an update on the... So that was useful for people working remotely, for example, but not for studios. So, you know, we mix things. Then we use Kitsu a lot. You might have heard about it. It's a web application where you put all the, you know, track your world production. So the different shots and the different departments and review the work, have the different version of stuff uploaded. And then we have the comments from the director here, the retakes. Everything was centralized in Kitsu. So it was a two years old version. I think we push it to the limits with that many shots displayed. But this is the final screen where everything is green. So you are happy because the project is over, of course. So a lot of shots. And then we create a tool called Libreflow. It's based on Cabaret Studio. I will just talk about that quickly. The main idea is an application to handle the asset management files, naming conventions, and then synchronization between studios. I'm going to show you what was Libreflow back then because it has involved a lot since we finished the production. But this is what Libreflow looks like. So basically you log in, it's connected to Kitsu. So you log in, you have access to a lot of things on the production, the library of assets, and then the shots, of course. We can filter and search for shots and stuff like that. So open, you have access to departments. Every department has different kind of files, file sound, movies, image sequence, textures. Everything can be handled here. And then you can see the history of the file. So here in the animation file of the shot, so before, I can see that there is nine versions. I have access to the last one. The other ones were created by a guy called Ray. And we didn't download them yet. So I can just maybe download the produced version if I need. Here I have the produced version. And then the most important thing is creating a working copy. So you take a version, a published version, and you create your own version so you can work on it and then you'll be able to publish it later. So I made a copy of the version nine for me. So in the history, I can see that there is a working copy for me. And then I can just double click in its opening blender. And I mean, I can work on the file, obviously. I won't make any changes here. But the idea is then you publish the file. So you usually put a comment. So you know the history of modifications and you know what's changed on the file. So you can go back to a produced version if the directors want a previous version of the animation, you know, this kind of stuff. And that's it. We have the copy. There is many actions we create here, send movies to kids in one click. So to avoid people looking around in the file system where is the file, you know, we have, we included a render, a little render farm system inside the tool. So every play that was also sent to another computer, for example, opening RV on the computer. Opening RV on this kind of software is also preset combination. There is many things and then all the synchronization between the studios was made with Libreflow where you can say I want, I'm going to work on the animation file, for example. So I want all the dependencies and grabbing the dependencies and unloading them. To vision Libreflow, Libreflow is based on cabaret. So cabaret is a framework. You will still need to create the flow and the actions and describe how you want to do your production, but it's still a great framework, providing an easy work for modeling workflow, metadata persistence and taking care of saving stuff in the database, automatic GUI. So you just type Python in. You don't, you never say I want a button or something. It's just creating the buttons for you. So you just focus on the workflow. But you also have access to the workflow as a Python module if you need, in any other script you are doing. And live update also, that's great because all the cabaret sessions open. If someone in France opened Libreflow and then someone else in Germany, they are connected together. So if someone updates something, the other one gets a signal that something has changed, so the interface is updated. And then you just type, actually it's based on pipe. So people in Libreflow that's surrounded will just install all the dependencies needed for work. So it's automatic. So it was very fast to deploy the tool in someone's space. If you're interested, we can talk about that later. So creating this kind of project is a big stack of tools. Some I presented today. Some I didn't have time to present. Some are third-party tools. There is, you know, a lot of them. Most of them are available on our GitLab. Most of the ones named here are available. And then on the top part, third-party tools we bought and help us a lot. And apart from the, obviously, the DCC's Illustrator and AfterEffect, everything here is open source. Everything here is GPL, of course. So we can do a feature film with mostly open source tools and software. And it's great and amazing and very thankful at the community for this. Some statistics, because it's always funny to see some numbers and realize, you know, we almost got 100,000 publishers on the file system we had. We put more than 100,000 comments on Kitsu and 26,000 movies uploaded to Kitsu also. So this is the kind of numbers we have in the... It's a medium-sized feature film. It's not, you know, but it's still impressive numbers. So as I mentioned, you can have access to this code on our GitLab. 95%, at least. Some of the scripting are not shared because they are completely useless outside of a specific context. So they didn't finish on GitLab, but most of it is here. Here is some contact information, of course. You can find us on the web. We have a tech blog. We are going to make more articles in the incoming days and weeks. So just go back to see more updated stuff. And just to finish, I'm going to show some video of the ambience on the different studios while I'm thinking people involved in the project. I mean, my mouse here. So I will just thank Damien Picard, who I've been working with for 10 years and helped create most of the tools we have seen today. But Pascal Aramondi, for the rigging system, Baptiste Delos, who made Libreflow with me, he arrived just days before the first lockdown of the pandemic. We didn't have time to meet and he was locked in his place. Clément Natalin for our production manager for building the building. Everyone involved, of course. And then the studios. So Studio Soy, Tric Film, Daywalker, Amopex, La Station, La Fabrique d'Image, Blue Faces. To name a few people here, Mathias, Sofia, Patrick. Thanks for the patience and feedback. I didn't mention we were the only studio-knowing blender already. The others were newcomers to blenders. So it was also a lot of support, but they were patient and willing to learn blender. So it was great. So very good energy and good-willing in finding solutions. Of course, I mean, all the producers involved the creative team for trusting us on this project. Nadine Yukiko and Langklaude. I want to thank the CNC. It's a French cinema commission and especially the CIT, the Commission on Industry Technique, who helped us to create Libreflow just on the right time. And the Occitanie Film Fund for helping us because we need to create a strong and stabilized creative industry outside of Paris. There are images of our studio, but I'm not explaining every studio here. Special thanks to Zavin, the art director. He was used to guerrilla style and so this world-future film and the pipeline and the workflow was a little bit strange for me, but we did it. And he's starting a movie now, and I wish him the best with this. And finally, the director for the CEPI de Farsi and Sébastien, the producer for the movie, and for allowing me to be here, even if the movie is going to be released next year and showing already all the steps. So that's it. If you have any questions, maybe we can do that now, or otherwise we can meet in the outside. I will be there the world conference. Thank you very much. Any questions? Yeah. So the question is the fact that having all the backgrounds made out of planes doesn't allow really complex movements of camera, and if we are considering texturing some geometries. So yeah, the question is the answer is, yeah, we have limited tension with the system. We cannot turn around, of course. We can still do front panning, trucking and truck out. It's still working. We had some complex shots with even motorbike shots and going through, and I was pretty sure they couldn't do it without camera mapping, but they managed just placing all the planes in the right place to it's fast and as you don't really, I mean, there is time you notice the planes on these kind of shots, but I think there is only, I don't know, 10 to 20 shots with camera mapping. So we had to, in this case, render the sets, but that's it. The movie is not using a lot of camera movement also because of the art style. There is no, you know, because of the art style, there is no blur in the movie, so there is no motion blur. There is no, and this is also why there is that amount of shots compensating some of the stuff you can do with normal camera movements and stuff, and it's over cutting the, to compensate this kind of lack of some stuff we didn't want to use, but yet in some of the movement, I think they made a pretty good job on most of these shots. There is some shots I'm not very happy with, but I mean, it's, I mean, in any of our production, we end up with shots we don't like, but it was just enough. But yeah, we consider camera mapping, of course. Any other question? Yes. Thanks. So the question is that almost all the stack of softwares are open source, except from the 2DCCs which are Illustrator and After Effects, of course, and how far we are for, to find alternatives to this. So if you mention Inkscape, of course, I think there were, was made in Illustrator because the design team started before and was just very used to Illustrator, so sometimes it cannot change everything at the same time. After Effects is more complicated. I mean, this is an ongoing discussion in the industry, how can we replace After Effects? Because Blender is making things better on the compositing side, but yet you have this, in this case, a lot of shapes to create in compositing and stuff. So today this kind of project will be very hard to do, I think, in another software. But we hope for new things. I mean, yeah, it's still great. We are not completely close to non-open source software. Of course, they are doing great jobs also outside the industry. But it depends. I think we will find, depending on who is starting the project, because for example, at the studio, we use a lot of Krita instead of Photoshop, even if we have Photoshop licenses. We try to push that. And some of our artists now switch completely to Krita and don't want to go back to Photoshop. It's also part of the training and changing the mentalities and trying things. I'm not sure. I need to check that some of the big, big layers we have in this movie, I'm not sure. I need to check if your Inkscape can handle them also with 70, 10K layers and stuff like that. But we have to start to continue pushing and try things. Definitely. Anyone else? Yeah, there is one here. So you say we didn't see any Grisp pencil and why we didn't see any Grisp pencil. Actually, you see some and I didn't mention it. So thanks for asking it. We use Grisp pencil in the movie for some effects. So it was already present. Grisp pencil two was there already. And we used it for some water effects, some tears and stuff like that. So the animator can do it on shot directly. And you saw it in the sequence I showed you when it takes a chicken and open it. The rigging system is just basically chicken two legs. So you don't have all the flesh destroyed. And this is Grisp pencil, actually. So we use it. I think there is 50 shots in the movie using Grisp pencil. So yeah, I didn't mention it but thanks. And yeah, so how you will be able to see the movie when it's released. So yeah, fully in theaters whenever they decide to release it. I think they are aiming for a big festival next year before releasing it. At least all the countries involved in the project we have released in theaters and hopefully more places will screen it also. So yeah, it will be in, I mean, it's a feature made for cinema. So it will be the usual cinema time shuttle way of screening things. So hopefully you will be able to see it soon. And I'm really willing to see the last version of this movie and how it's working. We have seen all the shots one by one. Anyone else? No? Well, thank you for being here and we can have a coffee outside. Have a great Blender conference.


Hello and welcome to the session. In this session we discussed the following question which says, draw angle PQR equal to 120 degrees, map two points A and B on the arms PQ and QR respectively. Through A and B drop a pendiculus to the two arms of the angle, let them meet at O is OA equal to OB. Let's see the solution now. First of all we will draw angle PQR equal to 120 degrees. This is angle PQR measuring 120 degrees. Now next we mark two points A and B on the arms PQ and QR respectively. So we have the points A and B on the arms PQ and QR respectively. Next through the points A and B we will draw a pendiculus to the arms PQ and QR to draw the perpendicular at point A on the arm PQ. With A as the center we draw a semicircle of any radius such that the semicircle intersects the arm PQ at points A dash and B dash. Now with A dash as the center and radius more than AA dash we will draw an arc. So we have drawn this arc. Now again with the center B dash and the same radius we draw another arc. So we have drawn this arc intersecting the semicircle at T and the previous arc intersects the semicircle at point C. Now taking C as the center and the radius same as before we draw an arc in the same way taking D as the center and radius same as before we draw another arc intersecting the previous arc. So we have drawn these two arcs intersecting at point say S. Now we join AS so we get this AS perpendicular to the arm PQ. Now in the same way we will draw a perpendicular at point B on the arm QR. So we have drawn this PB perpendicular to QR. Let this point of intersection of the two perpendicular drawn to the arms PQ and QR meet at point O. Now on measuring OA and OB we get OA is equal to OB. So we have drawn an angle PQR of measure 120 degrees. We have taken two points A and B on the arms PQ and QR respectively of the angle PQR. And we have drawn the perpendiculars OA perpendicular to PQ and OB perpendicular to QR. And on measuring OA and OB we get OA is equal to OB. This completes the session. Hope you have understood the solution of this question.


Sometimes, super Smash Bros. fans, just a segment of them, can be the absolute worst. I mean am I living in an alternate reality right now? Is Smash Bros. not the most popular fighting game of all time? Why do we have to be ungrateful little biaches? I mean someone just slapped me. Slap me again! Why do things like this have to exist? Why do fans need to be so ungrateful? Cause that's what I kinda feel right now. I feel like there is a sub-segment, not all Smash fans, but a sub-segment that is just very unappreciative of what this game is. Super Smash Bros. Ultimate has sold 20 plus million copies and yet every single time a new character gets added there's always some controversy. Sometimes there's some jubilee, hello, people were pretty happy when Banjo Kazooie got added, caught people off guard, Microsoft owned, but then people get bitchy when someone like Byleth gets added. You know, the main character from Fire Emblem 3 houses, the most recent Fire Emblem game, it's really popular and yeah, Masahiro Sakurai has come out and admitted in the past. Maybe there are a few too many Fire Emblem characters, but at the same point he also said it's not really in his control, Nintendo chooses the characters in the game. So ok, so people stop getting mad at Sakurai about it. Instead fans have decided to take matters into their own hand because a lot of people feel like there's too many Fire Emblem characters in Smash. So why not release a mod called No More Fire Emblem that deletes all the Fire Emblem content from the game? Why? Just because they think it makes it better? I mean maybe it's meant to be a meme, I don't know. This image up here on the screen here is actually officially from the mod, that's probably not in the mod, I think it's just given an example, but they deleted all the Fire Emblem content, right? It's a mod you can download to play with Super Smash Bros Ultimate that gets rid of content, it gets rid of 8 Fire Emblem characters, it gets rid of all the stages and all the music. I don't have any footage of it because I don't care to play it. I don't know why you would want to cut content from a game. I guess out of protest? Is that what fans are trying? Are they trying to protest Super Smash Bros Ultimate's 8 characters? I mean here's the thing, it's not even the franchise that has the most characters in the game.  Oh is it because Mario's the mascot, so it's understandable that Mario has 9 characters in the game? What about Pokemon? Pokemon's got 8 characters, the same amount as Fire Emblem, why are we not bitching about that? Oh, we all know why people are bitching, because basically every single Fire Emblem character is a sword user. Because that's one of the primary weapons in Fire Emblem, is swords. I fail to see what the problem is. I get it, obviously with the roster with the 80 plus characters and you have a huge section dedicated to sword characters, a lot of sword characters in the game. Not just Fire Emblem, obviously we have Zelda characters and all that. The point is, yeah there's a lot of sword users in Smash, but who cares? Why do we have to fundamentally care so much? We need to release a mod that, by the way, I don't encourage anyone to use this natively on their Switch. There has been proven things in the past where even when you're using a hacked Switch in playing games, legally of course, that when you add mods to it, sometimes it will brick your Switch. So I must say you should run this, obviously people are probably running this through emulators and all that on computers and that's their own prerogative. I'm not here to tell you how to do that and try to promote piracy in this way. I do think though, however, that there is an interesting discussion to be having around the fact that fans complain so much that something like this even exists in the first place. I don't get it, I've never gotten it. I always felt like every time I watch a Smash character reveal and I just see the live comments either mostly just bitching because they didn't get the character they wanted or when Byleth was announced, my god the backlash over Byleth. I don't understand it. I fundamentally don't get it. I don't buy DLC packs before the characters are revealed. Let's start with that. If you are unhappy with the collection of characters in one of these DLC fighter passes, don't buy the fighter pass. Why are we pre-buying fighter passes before you know what's in it? And then when you're buying these characters individually, don't buy them if they're not characters you want. Why are we like this? Because someone explained this to me, am I missing something here? What is the big deal? Why do we have to hit delete on Fire Emblem in a mod to try to please part of a fanbase? I understand, this is a fan mod, it's ultimately irrelevant, Nintendo's not doing this, play the game, enjoy it, it's not official, fine. But it makes me just highlight things I dislike about gaming communities at times and in this case the Smash gaming community. It's ridiculous to me.    What's wrong with you? What's wrong with you? See, this whole fan mod thing is making me go crazy over here. Guys, I'm losing my mind that this is even a thing. I love Fire Emblem. Because of a fan mod like this, you know what I hope? I hope the next two characters added to Smash, the last two, assuming there's no more Fighter Passes in the future, I hope they're Fire Emblem characters. In fact, I want a counter mod. You modding community, I want you to go out there. What is this? Look at that, someone attacking me? What is this? Look, I want the modding community to go out there now and make a counter mod to no more Fire Emblem, where they replace every character in the game with just Fire Emblem characters. Make it happen. We need a counter to this. I am calling on the Smash Bros modding community. Let's make a counter mod and make all 80 characters Fire Emblem characters.  There's eight of them. There's eight Pokemon characters.    It's a franchise Nintendo cares about. It's a franchise that sells. It's a franchise that is increasing in popularity. Get over yourselves. Stop acting entitled. And if you want to use this mod, whatever, I'll put a link down in the description. I mean, it's only fair that you see that this mod is real at least. Alright, alright, alright, let's enter the giveaway. If you enjoyed this video, hit like. If you didn't like it, that's okay. It's sort of pointless.  So kind of like the Smash Bros community. So I guess I'll just catch you guys in the next video.


This video is brought to you in part by TrueTechTools. Quality tools essential support. Alright guys, we got us a reach-in freezer here. It's three door. It's not in very good shape. It's not cooling or freezing right. Let's take a look at it. Coil is just a little bit dirty. It's hard on 404. It's hot there. Liquid doesn't feel very warm, so we're probably low on charge. Somebody peeled this out. I'm not sure what happened here, but the door seals a little jack. Fans are running, which is good. Suction line's cold, but not freezing cold. We got a EPR, CPR valve here. It can kind of see through the coil. We're gonna go ahead and brush that thing off and then let's check the suction pressure and see where we're at. I don't Just don't have a receiver, unfortunately, so it's critically charged. It looks fine. We got a 6 compressor. Then we hook on to the issue we got. Either we've got a defrost issue or we had a refrigerant issue. It's good. Put in a defrost and see what we get. Shit, it looks like we got some 45 minute ones. Let's see what happens here. I don't like that aluminum foil there on that. Looks like a nice place to short. Check to see if the heater elements are working. The hands all look like they're going the right direction. Some of this cleaned up. That's definitely got some issues. The rest of that just kind of foam in there and if we have to we'll rinse it, but once that foam's gone, you'll be able to see through it a lot easier. Let's check down below here and see if this is starting to melt. See whether these heaters are defective or it's just a charge issue. What's going on? It feels like it's melting. Nice. We'll see if I can hold some of that packing. Oh my gosh. Hopefully that makes a difference. Let's see if that makes a difference. That's gonna snap. That's nice.    I've tried heating these up before. Yeah, it's gonna break. You don't need it. You may have to drill it and put a tap on it. I got on there with vise grips and vise grips did not work. I clawed the piss out of it, went ahead and loosened the packing nut. That metal shaft whatever is frozen to the other piece of metal down there. So went ahead had to pull the refrigerator charge out. Drilled it, put a quarter inch tap in there, welded it up. I don't have any of those clamp styles that do that big. We scanned it for leaks in the evaporator. Nothing was found. The condenser coil looks a lot better. So we're gonna recharge this back to spec and see how it performs. Coil melted out fine. Boiled off the water. But the product is definitely getting warm so we don't have a lot of times to mess around. I'm not gonna waste a lot of time on it. The condenser coil though. So we're gonna weigh the refrigerant charge back in and see how it acts. If it works good, we know it was low on charge and a dirty coil and then go from there. I had a little hit in the evaporator on the leak, but it kind of went away. It could have been from the steam. I'm not sure. Got to reinstallate this line yet. Nice and easy to get to the 32 ounces that we need. There we go. Give it a second to equalize and let's run it. Got some replacement insulation here for our pipe there. Now it's gonna run pretty low suction thanks to that EPR-CPR. But it's simple. You want evaporator one compressor. I mean in theory it's the evaporator pressure regulator, but it's also the CPR because it's a compressor protector.  We'll watch it for a minute. You could always go ahead and check sub-cooling super heat for giggles. Let's see what we get. So far we've got good sub-cooling super heat. It doesn't seem like it's accurate because that feels a lot colder than 55 degrees. But I don't know. We'll watch it for a bit. Usually they're within a degree or two of each other. Checking it right before it goes into our capillary tube. Now with this being 32 ounces, I mean it's technically critically charged. So it's easier to just do it with a weigh-in method and be done with it, which is why I didn't really worry too much about recovering it and just weigh it back in. Nickel and diamond it in usually seems like it takes much longer. Sub-cooling is looking more respectable there. And super heat, I just that feels a lot colder than 50 degrees. Boxes at 73.  It's still climbing up to about they're usually within a half degree of each other. So it appears that's working like it should. We'll keep on checking our super heat here. Boxes 66. Pricer's dropping so I'll let it check and see if the fan's running. No, actually they are running now. So suction pressure should come up now. Yep, my message just came on when I was in there.  That's a good thing. It's up there a little bit. You could only imagine what it would have been at when it was completely plugged off like it was. Spatia being the shroud around the fans is non-existent.  It would have maybe helped it out a little bit. Just putting that cardboard across there. I got it right there. Took it from 280. It's already dropping. That's quite a bit of air difference there. So we're going to wire tie that thing into place. That'll help lower the head which then it'll help lower our evaporator. It's going to be a combination of multiple different things here that's going to lead to a better working unit for sure. It's nothing more than a box of steak or something I cut into a strip and unfolded the box. So make and do with what you got. I got it scrapped there on the sides and the center. And also as you can see this coil, I didn't scrub that at all. Just what I used that brush just to get the outer cover off and it did a heck of a job. I've been really happy with that biker stuff. It's not always perfect, but it's done some really good work. Went into the defrost clock here. It had it 45 minutes, almost all of them. They don't have a termination hooked up which kind of sucks, but it's been like this for how long. So we're going to just do two of them 45 and two of them a half an hour. The half an hour ones are going to be during their normal times where they're going to be in here working. That way they don't think there's something wrong with it. So that's there at that. Just need to go back and see what our pressures are looking at. Otherwise we're already at 29 degrees. Things are looking good. We're going to need to order a door seal for this thing. If it's any good, the track. Drop that head pressure almost nine pounds. She's pretty good. Got eight degrees sub-cooling. And we've got 33 degrees super heat which is pretty good. Normally they want at least 20. So that's looking pretty good. Boxes at 18 degrees. Very so slowly dropping because the product, you know, warm. Pressures look pretty good. Head pressures came down to 260, suction is still 17, 21 degrees super heat, which is why you don't want to go too crazy when it's under a heavy load. It'll drop as it gets closer to box temperature. And sub-cooling is still respectable at around seven and a half. So guys, this is going to wrap it up. I've recommended that they replace the evaporator that goes low right away anytime soon. However, the box is in poor condition and that the middle door needs at a minimum a replaced door seal. Leave it in their bullpark what they want to do next. But for right now the system's working and they'll be able to get through the weekend and move on with their day. So easy sleazy and easy to pleasey. So I am out of here guys. Hope you enjoyed the video. If you did, give it a thumbs up, subscribe, check us out on Instagram. And until next time, we will catch you on the next one later.


We're going to talk here about that person called the system. And the name of it is Bazaar, but there's a bit of confusion about the name, because it was formerly known as Bazaar and Geese, Bazaar and New Generation. And at the same time, as it was called Bazaar and Geese, there was another project called Bazaar, which was written in C and based on art. But that project got created and is now known as BAS alone. So the meaning of this project, written in Python, is Bazaar. And the common is Bazaar art. So I don't want to say Bazaar, but that's the common. It's a New Generation vegetable system, so it's decentralized, or not if you don't want it. One of the features that I like very much is that branches can be published over plain HTTP. So there's no need for any touching of the HTTP demo on the server. So if you have HTTP polishing abilities, you can polish the server branch. And you can also push over plain SSH, which is the need for the program to be installed in the server. But if it's installed, you can use that, and the pushes will be noticeably faster. We'll see that the web page of the project and the documentation is in that URL. And for support, there's the list and the IRC channel. Both are, you will find very helpful people for solving even the most basic questions or complex problems. So let's go with the websites that everybody who has used any version of the system, like Subversion or CBS, or one of the new ones, will be familiar with. The first thing you want to do is put your name and your address, because within the version of the system, instead of the login, you use a full name and the address. You can do it in either of those ways. And then you go create a project with Bazaar in it, or to pull some upstream project or whatever with Bazaar branch. And the optional territory argument places it in another territory name differently, as, for example, in this case, FAN. So you have the standard commands. Here, like add, you add files so that they're kept under version control, or you can add directories and all the files underneath them will be add.  With Bazaar Deep, you can XMI in the changes you've done, or you can, with Bazaar Deep along, it gives you a deep output of changes you've done, or if you specify, for example, a dash error option, you can see differences from already committed revisions. For example, what you did commit in revision six, or what you did commit in the latest revision, there's a rich syntax for specifying revisions, but it's basically a deep command of any other version control system. Bazaar Stages gives you a list of modified spiel files, add it, remove, rename, and so on. And you commit the changes to the branch. Unlike traditional version control systems, these do not propagate the changes to wherever you check out from. We'll see more about that later. So you have to do an extra step to publish your changes. Log just gives you detailed information about the revisions that are in the copy in the branch, and you pull changes from the string location you grabbed the branch from. Remember, for default, the first time you do a pull, you give the location, or when you branch it, it remembers the location, so you can specify a pull alone, and it will pull from the known location. If you want to change the location, because, for example, the string changes the location, the address, you can put here the new address. And if you specify, remember, that new address will be remembered for next uses of pull. And with dash v, which I like quite a bit, it will give you a list of the pulled revisions, so you can easily see what was changed or added or whatever. There's another set of commands, which are less often used, to remove files from version control, so if you don't know, you won't be able to do it. The turn object is committed, so you go back to the pristine state of the upstream branch, or the last committed state. But with uncommitted, you can uncommit the last committed version. So if it had a bar or whatever, you can uncommit it, fix whatever it was from, and you can uncommit again. Note that you can only uncommit the last revision, so you can, unlike other version control systems like ours, you cannot uncommit revisions which are not the last ones. You can, however, uncommit several of them until you arrive at the one you want to commit. That's up to you. The uncommitted is that the last provision of that file was changed to the last, so if you have a revision, it changes the file, and then another revision it doesn't. If you do an uncommit, does it take you back to the one with that file changed, or does it only uncommit, or does it an atomic uncommit? It only uncommits the top one. That whole revision across all files? Yes, because our work's across the entire tree. It's a long hit in the top one. Well, yes, but CDS works on per file basis, and there's yes. Bazaar works on the entire tree basis. So CDS could be atomic per file. And Bazaar info gives you some information about your copy, and it tells you the location of where you pulled from, the format you're in, the number of files. Well, some information you may want to have. Yeah, this is the furboss output, and with newer versions it will output less information. Well, you can request it as well. With Bazaar tab, you can tag revisions. We've given them a symbolic name. It's not like the submission where you make a copy. It's a real tab. And with Bazaar missing, you can know which commits you are missing from a sample from an upstream branch. For example, if you remember the location and pulls the server, yeah, and it outputs the revision that you're missing. So it can help you to decide whether you want to pull or not. But when was your tag introduced? 015, I think. Yeah, yeah, near 015. You have to, there's a gut shadow. You have to create the format of the branch to one name, just type dash tags. Because the default is compatible with lower versions and the format that supports tags is not. So if you want tags, you have to upgrade to that format. But it should be OK today, because we're on 017. So it's perhaps safe to assume that most people have at least 015. Actions 011. Actions 011? Yeah, well, it's a fast moving, it's still in development, so it's reasonable to assume that people have 015. And if the server help you get help for all commands and some topics like commands, you can get a list of all the commands with the server help commands. There's a lot of them, but the one use you will use most are those covered here. And if the server help topics gives you some topics you have not at command by themselves, which are nice to know. So as said, a committee in distributed dressing control systems does not automatically that extra step is, for example, push. You push the branch to somewhere, for example, an HTTP server, and then it's available. For example, this is our push, and it's an absolute directory by default, and you specify till that here. It's a relatively door to your home. For these two words, you have to install the Python Parameco package, which is a recommender of bizarre, so it should be installed by default. And you may want great practice, if, for example, if relative does not exist, you will need to create practice so that all intermediate paths are created. If not, you will fail. And as with pull, you can use remember to change the default location for push. So if you change the location, you can give a new one and have it remember for further pushes. The directory will look empty, because by default, only the dot bizarre directory gets pushed, which has all the information necessary to be able to pull from it. If you want to pull to push the contents as well, you can use the eras push command, which is part of a plugin, which will do a player, that will push the contents as well. So there, you get a basic people can submit the files directly and can pull as well. Another way of publishing is to send a patch by email. The standard way of creating patches in Bazaar is done with the div command, but with the bundle command, because it has some goodies. It's basically equivalent to a branch, but in one single file. It's human readable, because on the top, it has a div of all changes in one big picture. But after that, it has metadata, which is the copy of the branch, like all intermediate revisions. So when people apply them, a history is preserved. You create a bundle like this. In the working directory, you reserve bundle, and you give the branch the branch before it comes, so it confuses the difference and puts it into it. You can also give a list of revisions to the branch. You can give a list of revisions to create the difference. But normally, you use the parameters.  So with distributed version control systems, the workflow is a bit different. So normally, if you want to hack in a project, making several changes to it, you keep a pristine copy of upstream. So there, you only do pulls, not commits. So you always have a local copy of the pristine upstream. So you can convert to it easily without having to contact the remote server. From this upstream pristine copy, you make branches. One for each feature, or boxes, or whatever, you are going to work on. For each independent stuff, you create a branch, like this.  Or you can use CP, which can be a bit faster, and it's the same. There's no real difference. So you make commits in your branch until the feature of the back piece, or whatever, is finished. And then you do one step, which is to march from the upstream branch to make sure that your changes are compatible with the latest changes that were introduced upstream. There may be conflicts, yes? No, I was wondering about the branches. Are those actual files, or are they hard ones? They're actual files. Yes. They're actual files, so you're quite a bit of a tree going on if you want to change your branching. Yeah. There's a feature for that, and it's the next issue. The next issue is the upstream branch. So marching before publishing is very important, because if there are conflicts, you, as the person making the change, are the one responsible to fix them. So it's not the extreme amount of person merging your changes who gets the conflict. This is very important. But in most cases, there won't be a conflict, but if there are, you must resolve them. And you publish the branch as seen above by either push or creating a bug. So as he said, when you branch a lot, since each branch has a full copy of the project history, it can need space quite quickly in big projects or when you make a lot of branches or both. So because all branches share more revisions, more commits, they're basically the same as that for the last five, 10 commits or whatever, it makes sense to share those revisions among branches. So here is where shared repositories come from, which is a feature that I don't think any, well, I don't know if any other version of the system has, but it was introduced in the start for this reason. So the idea is to keep the branches involved under one directory, which is called the shared repository, and the revisions that are shared among them, well, all revisions are kept in the top-tier directory and most of them will be shared. So you create a repository like this with init rebel, and then you just branch normally underneath it. So as long as it is in the story of it, it's fine, like this, you need the repository and then you branch for almost upstream the tribe, the stable branch, and then you can branch there for your feature, for your backfisher, or whatever. And all these four will be using the same copies of the common revisions. Do you need the special kind of the dashboard trees? It was changed, not anymore. Got it? Yeah. And this is also useful when you're pushing multiple branches in a server, because you don't have to push all of the common revisions each time you push a branch. You only push the new ones. So a set of all, besides the centralized, the centralized is only if you want it. You can also work in a workflow which is very similar to CVS or subversion. If you achieve that, we are check out. A check out is very similar to a check out in the CVS and subversion. There's a difference, there's still a difference that it still has a local copy of all of the history. So there's fast dev, fast log, and all the operations which in subversion or CVS need to contact the remote repository. So it's also offline, being able to work offline. Yeah. And so all operations. So instead of branch, you use check out, but note that you don't check out the HDB location. You have to check out the location for which there is writing support. So in order to make a check out, it only makes sense in properties. You have write access to, just like in subversion and CVS. You have, and like above, you update for commit, because the commit files, if you are not up to date, and you put that in the equivalent of pool. So you do a date, and then you commit. And the commit goes to the remote branch first. If it succeeds, it goes to the local branch. Updates, the equivalent of push, right? Yeah. No, of pool. Instead of pooling, you're meant to push. When you're meant to push. Yeah. There's another kind of check out which are called lightweight check outs, which are the very same or almost the very same as CVS and subversion check outs. There's no local copy of history, so lots of operations have to conduct their remote location, which is only makes sense if you really need to save space and the remote location. You have such trees for repost stories. You can't make repost stories that do not have working trees. You only want to write branches, and then you use lightweight check outs in a different location to get the direction tree contents. There you hack and commit, and it goes to the other location branches. And so in your local artist, so hitting the network for operations is not really a big problem in that case. But even if you use check outs, you can still work offline, as Lars said, and you can even commit offline.  So there are some queries with it because there may be innovations in there. You should be able to do it for back online. These are updates. We'll check the master branch for updates. If there are any, you can switch your local ones to pending mergers.  So the push is, if there are no string divisions. It's like, okay, okay, okay, maybe. But usually these are updates, okay. So, yeah, I skipped this version when I came home there. I, on the branch and emerging stuff, I skipped part of it, sorry to let you know. When you publish a branch and then upstream has to merge it, the history is preserved, which is what you made, which is many times what you want. I like, I particularly like very much the way Vasardos does it because it's in a non, what I call a non-inclusive way. The whole history is committed as one revision in the upstream repository, but your local changes, each of your revisions are kept in sub revisions. You can see an example. For example, imagine you made this, the Vasardos made plugin and this is the upstream pristine copy. Then I branch it to piece some book. I go to the branch. I use, I add something or whatever. I call this function, whatever, but it's wrong. The name is wrong. Okay, so I commit this, there it is, so revision number 26. Then I will list the name of one, so I fix it. Then I want to add recommendation for the plugin. So, I did three revisions, right? This one, 26, 27 and 28. And I do a bundle like this, a scene. You can see it as promised. There's a deep part with only, so I send it to upstream and upstream wants to merge it. Here in the master branch, well, it's the same computer, but this method is, now I'm spring. So I merge it, okay? No conflict, and upstream's merge it. Could you do the status, just in case? Fending merges, here I show the, where it's fending to merge, you commit. So upstream's committed, and then it commits revision 26 in the upstream repository, in the upstream branch. Here's 26, apply fix the message. And as through revision, there are three things that I did. But there is no direct way for you to know when you send to the stream, which revision numbers are your, is your patch going to get, whatever. Yes, I mean, the revision number, your soft patches are assigned when they are applied to the upstreams. Yeah, well, they are merged. Depends on what they do. No, but I mean, if they are applied at the end of everything, or they are applied at the point that you branched off there. At the end of it. At the end, the revision numbers only make sense in one branch. So 26 in one branch, it's not the 26 in another one. Yes, it's very, if people are working with one, it's very useful to refer revision 200, and you know, well, that's one that introduced one. There'll be context talking about one. Could you show, is it our work? That's their shell IDs. Because it's a decentralized system. So each revision means they have a globally unique identifier. Which is what it has underneath. Yeah, that's what I'm looking for. And that's preserved. Yes, because you want to refer to, well, I sent you this patch, and what's, where is it now? That's a. What you do have is the so-called post graph nodes. You see, you're far ahead of 1.3. Those are determined where you branch from. So if you branch from the email upstream from revision 25, you do stuff and send it in. You know the divisions you committed, and not the one that upstream was. So we'll have those, yeah, dotted provision numbers. In the only case when there will not be 25.1.3, et cetera, is when the upstream branch uncommits a version or does revisionistic changes operations. Right, and of course, this is not only our keeping the laws, of course.  So, history is really perceptible. Or if you read it 25, 26, you get a whole patch of, right, like if you need it. Does it save the original revision numbers from the branch? No, because revision numbers, say you save just the ID of what you know. Yes. And the revision numbers are determined by the shape of the history of the branch.  I think the way to marriage is like one of these two. And if you go out and in questions so far about how anything of this works, or you want to see some of the people thinking more today, they're ready one. Just to be clear, if you want to commit several files, you can just commit one file, but if you have different patch punks within one file, or a shell is what you would use to commit only one job. This one is a branch, as our tool is in Debbie. There's branch branch support, which means that you can access branches in other version code systems using bizarre commands like for subversion, which is package, and for work URL, which I think is only right on me. Which is broken. Oh, thank you very much. Okay, but bizarre has a question, it's working, it's really working, right? Subversion, yeah, I use bizarre subversion. Okay. And there's also a work call front end, bizarre DTK, and you can see all the list of plugins here. And finally, bizarre accepts ADS for commands, you can define them in this file, bizarre.buzzard.com, like this.  So this is just an example. So everybody's talking about the decentralized version control system these days, so it's only a matter of using it and see which one you like the most. I enjoy bizarre pretty much, so I recommend it to everybody. Except for you, but which one do you use? You talked about R-Sync push, about R-Sync? Yes, it's in bizarre tool. You push with R-Sync. It's not something I really recommend, because in our case it's when you want to have the working tree at the remote end, if you're publishing a web page, for example, but if you have control of remote appearance, better to just do a PCR update. As each push takes two steps instead of one. You have to push sure. With R-Sync push, you're doing the direct ones. Yeah, you're transferring way more depth data that you really need. There's a plane that's called push and update, and why? So you invoke that, it pushes, as it says, SHH into the computer industrial sub-quart. So that's probably better to use. And that's in bizarre planes, like a separate tool? No, it's a separate plane, sorry, R-Sync push. Which plane? R-Sync. Push and update, it's written by Joel. A lot of people also think they need to have the content where they feel like if they're just using it to work in bizarre, so you can just push, pull, merge, carry things. Push, push, push and update. Are these the other on both ends? Yes. These? Well, it does. Yeah, yeah. But R-Sync push doesn't, it still doesn't. You're just asking. Okay, yeah. Right. If you have bizarre in the server where you're pushing from, instead of push, s, f, t, p, whatever, just use the R-Sync push. That uses the bizarre in the remote end and it goes quite a bit faster. Yeah, this is the equivalent of how CPS works with the SHH into invoke CPS on the roadside. You can also use just piece of art colon slash slash if you have a sort of demon running on the other side. But then you probably run into a lot of ankle parallelities with the storage format because that's been changing the storage format. It's been changing regularly. Storage? You shouldn't have any problems with the storage format if you're talking to a smart server. Unless you're just sending a request. Right. What you might run into is smart server protocol, different differences because we're still working on it. Finalize it a bit more. The bizarre SSH needs the smart server? No. Bizarre SSH only needs bizarre in the remote end. You don't need to go to need. All right. And it needs a compile Bizarre if you run Bizarre 0.8. And remotely and 16 locally, that will have some problems. But that's not the storage format. It's basically the Bizarre API. We do keep compatibility one or two things back and that creates things, but sometimes you forget something. Yeah. And if you have a huge difference in versions used, you might get some differences. But if you use the same version or one or two different, it should be okay. What about web fragments for browsing the code and things like that? There is one, but there are several. So actually there are at least two. I think the nicest one is lower head. Yes. That's the one deployed at launchpad. If you go to code process, the lower head plug in basically. Okay. There's even Bizarre truck. Yeah. Truck plus Bizarre 0. So you have to track that front end. It's code growth, right? If you go, when they go to the tap, there is Yeah, go into one of the branches. Up one of the branches. You get on the left side. That's something called code growth. Yeah. That's what it's like. This is like by revision and everything. Instead of the top, it's in files. Oh yeah? No, it's everything. It's just like this bit work. So can you browse the actual tree or? Oh, files. Added up the files that, for example, are revision, red, and files, whoops. Gunnery. Okay. So you have everything you need. Yeah, this one's pretty nice. There's another one. Both files are always printed out with annotate. So you see when you pass them, how it's lost. Right. Right. Okay. Here. Oh, right. One. It only brings the first one, right? Right. It's the same for the continuing branch. Now one question I have on this is, well, the Git people take much pride on preserving and properly preserving history when you move and join branches and whatever. I mean, I have not used the distributed system yet. So I don't know what to explain besides comparing your talk and the similar one that I've heard from them. But they say that Git is the only one that properly, when you branch and join, unbranch and join, preserves each line with history. I mean, well, this is. Developers of different projects of different views are most important. So Git does multiple parents for revision as we do, but they don't have an ordering. So we consider that's why you have the indenting revisions. Yes. Yes. They don't have that. So that's the case where these think, well, Git is talking information. But if you're branching, branching, branching, you should be able to represent at least the same thing they do. I also think that Git usually encourages what they call, re-basing your patches to new history so that it only gets applied with the patches itself, not only history, I think. But this one is destroying history. It is used for beautifying the dependency of your revision graph. Yeah. So if you merge a lot from graphs three and constantly merge them, your revision history gets quite ugly with the graph. The history looks nice. How do you, in part of the power, how do you maintain many packages? Is there like a... I look up there, apparently like a PCR code that... Yeah. Does it look like a code package and whatever the package does? Yeah. Well, is it like a PCR code that you're not aware of? I don't know what it looks like. Yeah, there is a code there. I maintain the package. Excellent. What do you thought about that? Well, the current plug-in, the built-in plug-in is... A plug-in that facilitates building a package maintained in a branch. There are several methods of ways of managing devian packages in a branch. For example, some people prefer to only version the devian subdirectory and some people prefer to manage the complete source stream. These are our built-in supports, both. You have a conflict file stored in a branch where you specify some options. For example, where is the location of the orange tower and is this a branch where you merge? So, you have a devian directory and you want to merge the upstream tower on it or if you have the complete upstream source and this plug-in is very flexible in how you maintain your branch, your package and the branch. So, then you just have the entire data in the diff. No. Just you just... What is the source that you just keep it on your drive? Or in the start of the devian door? Does that exist? Yes. We support the sort of package made from this. A strange thing here happened a couple of years ago. Everybody started seeing that there had to be a distributed control system and then there are so many that they say, well, I think many of us haven't switched because there's no strong argument in favor of one and against the other. Yeah. They're functionally the same, but... Yeah, basically, if you want to use one, you pick one, the one you like and then you have to learn all the ones that you are used in projects you want to help with. Yeah. Well, just... Do you know any of it? Any of it? Yeah. Well, I guess. Yes, I do. What kind of access do you need? It doesn't say if you want to use this right to this course or this is what you didn't come up with. Well, you request any of it to open up. Well, it should say something there, right? I think it's probably... I thought you didn't, but this version only doesn't say anything either. I don't want to argue about it. It's just...  It is just a read-me file that you could drop into the directory in that. Yeah. So, if you want to know where to send it, I would suggest the Alliot team. Yeah. Because it's an Alliot facility. Which it doesn't say anymore either. Correct. What does it say? The partner's host name? It's just not actually directly... Yes, but it should say host name or something like that. No, this host name is bizarre. Okay. That's not helpful to get. It would be nice if we could have some work from them to browse the branches and perhaps a log-in instance. I'll talk to Arif. Yes, because they have a very nice web frontend from Necura. And have it clearly linked from within each project. Because, well, at least with this version what happens is that from G-Port you have links to CVS. Yeah. But then you don't have CVS anywhere anymore. That's a G-Port problem. Yeah. And G-Port is so... Yeah. I personally find that using different version control systems isn't that hard if you know a couple, but then again I'm a version control hacker. So, perhaps that's the best... Yeah, experience to do that. Now, I do think we're stabilizing and converging. There are a lot. At this time you don't have any new projects starting to pop up. It's just the ones that exist. Some are dying off. So, if you can't choose because... Yeah. And each of them has 20 branches which are mutually incompatible. It depends on what you call life. We have more. I think those are the most important ones. People still use ARC, apparently. Well, you can push and pull from SVM and Nazar so that... Subversion is obviously in a lot of use, but it's not decentralized. Though they've been talking about being too... It's not SVK, but it's... No. ...Hack Engine. This is regarding SVK. They've been working on merge tracking and some offline support which is not going to be 1.5, but perhaps 1.6. So, the Subversion folks are spending effort in this direction. We'll go out and see what they come up with. Right now it's still centralized. I'm trying to get a... a sort of popcorn list of all the merchant corporate systems but I need something more on that. All right. So the first one is CVS, then Subversion, then Git Core, DAWRX, Mercurial, PLA, is that... I don't know. A solo score? Yeah. It's solo? A solo? VZR or Nazar? So the VZR is actually open? No. VZR is open. No, it's quite high. Take a look at the... It's sorted. One second. So the highest score is at the bottom. Ah. Is it? Yeah. The first number is the position and the second number is the number of installations. Okay. But they are in the same range. I mean, the distance between DAWRX and VZR is not... Yeah, CVS and Subversion are... Yeah, they're... ...and I don't mind... But between the four of them, they're quite close. Yeah. And this doesn't come for the people... For example, I don't think anybody installs DAWRX on source because you have to compile it, et cetera, but Mercurial and VZR are at the briefing in Python, so... Well, and specifically with VZR, we take one property, which I think is very important for... At least me and she can just run it from source.  You don't have to install anything, just run it from the directory. And you can keep it up to date by just pulling, also, say, you just go VZR pull, you have to do what VZR did if you're willing to. Nobody, it's also a thing of cultural adaptation. I mean, when people start using one decentralized version of the system, they will end up installing the four of them. Because it's people that tend to participate in more projects, and people who already are used to this before, but I can say that it's extremely easy R and bizarre and bizarre and G, yes. It was the best one, though. I said it at the beginning of the talk. So the audience started with TLA, so we were in V, then before that we were in the shell. Yeah, right. And then improvements to it were wanted, so the bizarre project was created, which we didn't see, of course, but it did not work. And at the same time, I think more or less, the bizarre and G project was created. It was thought to be a prototype in Python. After a while, it was seen that keeping it in Python was viable, so it was decided that bizarre and G would substitute bizarre. So, more or less now, the new name of the bizarre and G is bizarre, and the old bizarre is called bizarre. So it's a bit of a mess. And it still makes the changes are so different. And bizarre is still being built now. The project is called bizarre, as in the six letters, and one line two is bizarre. In that way, we can't just change the bizarre package to be bizarre because people like, yeah, upgrade, they have a different position. So we need to take a little care there. I have a question about the deadline, about publishing and pushing. What transport methods are supported there besides SSH and HTTP for pulling only? SSH, there is, if you have a smart server over pushing over HTTP and web.tcp, if you're just going to custom a bizarre server? I think for what you need to plug in. Yes, well, the rest is in, R5 isn't in core either. R sync isn't in core? No, but it's in bizarre tools that most people have. And you can even use plain R-sync. You can also just get... You can carve a lot of your files in SCQ. Sure, man. Bizarre works over the dump transport, so any way you can get a bizarre branch somewhere else, if it's by CP or R-sync or mailing, will also work. Or NFS, we don't require a smart server. So it's more or less just copying files from one place to another? It's copying files from one place to another, and transport support that's in place ensures the ordering is also good, and if you have report stories that it doesn't... If you just R-sync across it may copy more information than needed, the basis is just copying files across. How does that compare to some of the other distributed systems? Are there other others that do that kind of a model? Uh... Mercuro comes close. They use a lot of hard links, locally. Well... So are you asking a question, or a literary reference to their stuff? I mean, VCR, if you copy the files over to another machine, you can use that as a report story. That's all you have to do. And that's one of the features I really like about it, and I'm wondering what other ones might have that feature. I think the R-sync does that. I'm not well versed in not being able to be sure to say, but I think it should be able to... Well, you can try. I think you can copy him. Yeah, check it out. But I mean, I'm talking about this room. You can do it first first. This? I don't have it installed. Oh, then... Just give me your... Well... Or show how easy it is to install it. Okay, any of them? Well, yeah, okay. Just use the kit. You want this or...? This is fine. Oh, a lot of packages. Well, it's only... No, no, no. That's all the packages. These are the ones that we will be able to install. Yes. It's simply delayed. Why are you being... Because I didn't change it. I'm afraid. That for you is ES, not SE. Well, I must confess to... This server is the one that gets the push first, I think. This? Yeah, TI is for PIS. I prefer that. Well, then... Possibly if you're using W install... So the whole interface acts like a plug-in, not as an independent primary. Yeah, correct. You also have standalone from that, Olive. Which is more like a... Yeah, it's there. Can you please again output PIS without buttons? There's no tricky play around. Where is your PIS without coming from? Oh, good question. Right. Right. Well, you can now click on the revolution we are looking for and press on... Don't click, yes? Oh, this is mine. It's also... It's... It's a different side icon. It has... One button diff. The diff is a bit kind. Do we draw a patch above? So the top one? Yes. At the bottom you see two parents. You can look at the diff to each parent separately. And then you can move separately. So especially if you are on a merge revision, it's sometimes useful to see the diff to the one or to the other branch. Yeah, only. That's about it. No, that's not about it. It's just a copy feature. Oh, that's not it. The only thing you committed there was... Yes, I write... Yeah, right. So every merge and every join just makes the change of colors. I mean, the color means it was merge and join or what is it? The colors basically mean different branches. You could... You look at the PZR Dev visualization. Okay, yeah, and the base one is... So in this case it's only just one branch, but the PZR Dev we sometimes have 18 outside branches and you get very wide tracks. Yes. If you want you could just quickly demo writing a blog. I leave that up to you. Do you want the cable? I don't want cable. Now this will work with you. We'll just take your handle. Okay. Yes, Spanish? I guess I can... The Spanish surely fucks up with the braces and the brackets. I can try it. Okay, I can try it. Oh, yeah. But you could... Well, what do you want me to do? We have a living documentation here. Right. I'd start with an isolation and do a... Right. Is it all right in here? Not at all. Just paint something. Or a little... Yeah. You want to register? Yes. And register is somewhere else, right? No, it's in PZR. PZR. If you like to do more interesting stuff. Yeah. Like PZR. So you just do PZR checkout some scan URL. You get a PZR checkout and if you put it in there, it goes to suppression. There's somewhere a good tutorial about the overview of the PZR API. PZR. The people new to it experience the conditions and stuff like that. Yeah. Not really. Well, I think it's improved, but I still don't like what the approach is. What I usually do is just start iPython and then interact with me. Inspect classes and stuff like that. There's documentation in Doc developers. I just used Yeah. On the site, we have Wikipedia. The world site is a Wikipedia. There was also generated documentation. The source is very well-developed. So if you just run IPPIDoc, it will extract all the Doc strings. IPPIDoc or PZR. No, NFIDoc. PIDoc will also work. Interesting. Try PZR. So, yeah, this is also branded to HTML like Doxygeon. So he wants the only coding Yeah, it's probably easy to get something that works, but more difficult to get something that is correct. Well, I know I hoped there was a relief to get something done which you wanted, but I'm sure it wasn't done in the most correct way. Wow. For cases like that, we have a workflow Yeah, right. I just did the main list and I reviewed them, so well, this was for a private time. I don't know if anybody is already in the line a while ago, but I just made the dash R option of Diff a single revision and I'll put the Diff like PZR. See for a change set. Yeah, right. I have a small question on my hand. I'm not sure how generous it managed to make this one. It doesn't look apparent, but it's not the first provision. Is that PZR-SVN? That's PZR-SVN. Yes, well, in working on that, you may do some interesting stuff. So that's a bug, it's broken, or is it intentionally and it's entirely possible. Okay. What we are to do if you're just modeling. Well, you can merge arbitrary revision graphs together if you want to. It's just one revision has a parent of a revision that's not connected to the rest of the graph. You can have multiple entry points to the graph. So I can merge independently developed projects. Yes, if you want. I think PZR-RDef has four or five but because, well, one of them is a bug in the test suite that broke, yeah. So we have a revision called A normally doesn't in common use but we act on the code base and sometimes do interesting things. Okay, and could you perhaps explain if two person decides, okay, let's join both trees. How to do that? Yes, how to do that? So let's PZR merge that's r0 dot dot minus one. What was that again? PZR dash dot merge? Zero dash dash, sorry. Zero dot dot minus one and then the branch you're merging. That should be merging unrelated branches with each other. I see, I remember something we made with this. For practical use they're unrelated but they share no revision that's where the zero comes from. So basically everything doesn't matter but normally you see it. That's interesting. And it will cause five conflicts if there are fights in the 7. So if you want to do that you will probably first move all the files in one of the branches to directly merge it or use nested tree support which is probably about to do. Okay, and for nested tree it works with default branch and storage layout introduced in L17 or do I have no? I need this special nested tree with subtree Yes, I'm still working on that support. Okay. But if you use your SCN it uses that for the or maybe. Right, and I made the mistake to convert our use it or branches to that repository in a repository with DSDate support and then I noticed that I can't push to Elio anymore. No, I had a shared repository of all of our plugins with DSDate support. Yeah, right. And then I cannot push back. The problem why you can't do that is because your storing information that cannot be represented by the work format. Right. But I'm not using that information. No. I see your point. So one option would be to just upgrade the repository in Elio. Yes, and that's done great. Which is not possible. It is. Okay. You can upgrade and run into that problem. A few times. I just ended up updating the other branch and I don't have to confirm that. All right. I don't know. I think you should be able to do just by branching. But it might be if you're running into it perhaps it's more general than default because it is a format that's not default so you have to specifically upgrade to it. Right. Even so, perhaps we should support something to get back from people who do that foolish thing. We already were telling you about this. You can Exactly. Pkj Pkj Bizarre is a shared repository. You can check out Bizarre as being into it because it uses the repository number three. How it done great. Oh, thank you, right. This should work. If that's not a repository or something. Yeah. So, I'd like to have breakfast. So, what I join you with having dinner. This is my first meal today. It's great.


Tips. We offer two kinds of tips stainless versus titanium. There's going to be right around four big differences between them the first being weight so Stainless versus titanium. Stainless is obviously going to be heavier. Now. Why would that matter to some people? So I'm going to quick demonstrate that. I have two equally configured None of all XLS is just one has a stainless tip versus a titanium.  You saw a droop there because it fatigues the mouth muscles a little bit quicker because it's heavier Whereas if I do it with the titanium I'm able to keep it upright and so if you like to draw on your device while it's still being in your mouth Look at a titanium tip. Second heat retention. And so if you're the kind of person that wants to have long extended draws Stainless will be for you because it will hold its heat for a much longer time With that it will also take longer for it to heat up And so if you're on the go then look at the titanium because the titanium is quick heat up quick cool down Rapid hits and then you can quick put it in your pocket third will be the ability to microdose So the titanium tip has the adjustable feature and so with that you can actually adjust the bowl size From 25 to 50 percent of its total capacity. Why would that matter? Why would you want to use a smaller amount? Well when the Tip is completely full it you'll get a more complete extraction So if you reduce the size and you want to use a smaller amount You're gonna can get a complete extraction of your material You don't have to load it up all the way with material so you can better titrate your dosage So that's definitely something that a lot of our users like if it doesn't matter look at the stainless tip And that's what comes with our standard M. Lastly is airflow Now The airflow between them is going to be similar, but there are going to be some slight differences The biggest on the right hand side the bottom of the tip You'll see that little groove cut into the titanium tip that isn't just to facilitate loading unground material into the tip It is also going to allow for more airflow and the wider grooves allow for more airflow as well and so you're gonna have overall cooler vapor and It's not going to be quite as dense But it's going to be a lot easier on the throat if you're very sensitive that look at the titanium tip and now also They come with different CCDs on the right hand side. You can see the CCD is a lot more intricate it has more open spaces And so it allows for more airflow to come in will still not allowing any material to come into your mouth and so it's going to have a little bit different airflow dynamics and a lot of our Customers to notice that and prefer that it all comes down to personal preference So pick up a different tip try it out compare the differences for yourself. That's really the best way to learn And that has been the snap. Thanks for watching. Be sure to click up here to subscribe and see more snap videos