This is stock number 10387A. We are here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used light-duty truck headquarters and Ram headquarters for that matter too. Today, we are checking out the super clean 2016 Ram 1500 quad cab short box. This truck has the 5.7 liter V8 Hemi motor and has been fully safety and inspected by our service shop. Has a fresh oil and filter change. All the fluids have been checked and tapped off and this truck is 100% ready to go. Brilliant black crystal pearl is the color we shoot all of our videos in 1080p 60 frames per second. So if you have HD capabilities on your computer, tablet, or smartphone device turn them on right now because it is like you're right here looking at the truck with me and definitely your best way to check out the vehicle before seeing it in person. If you want to check out more photos in the upper right hand part of your screen is a link right to our website. So click that and check us out there. RBP painted and polished aluminum rims. Has Nitto Ridge Grappler 35x12.5R20LTs and these tires are like new on here. Very, very good tread on here. I'd say 95% or more. They look like they were just put on. They are not brand new but very, very new. Driver's side front fender, no dents or dings. The headlight lenses are nice and clear. It does have a little bully bar and light bar right there. Didn't see any major dents or dings on the front bumper. The hood is an excellent condition. And the passenger side front fender is in nice shape as well. Passenger side rim, no scuffs or scrapes on that. And as you go down this side of the truck you can see just how clean that body is, how reflective and mirror-like that paint is. We take these HD videos so if you are far away or even if you're close by and just cannot make the trip down but you're still interested in purchasing the vehicle, you can see the vehicle, hear the vehicle, and have confidence that you're dealing with the right vehicle and the right people. In fact we offer a Summit Auto Fastpass option on our website where you can apply for financing, get pre-approved, see a payment quote, even appraise a trade all right on our website. So when you get here you'll be all set to go and the deal will be all done. Lower rockers look really good. Frame and underbody is nice and clean and the back tires have just as much tread as the front tires. It does have the plastic wheel well lines which keeps your frame and underbody looking good. And this back rim is in excellent shape as well. I would venture to say that those rims and tires were put on at the same time because the rims are pretty much perfect. As we come around to the back of the vehicle, the rear bumper is in pretty nice shape, has a full towing package which includes a receiver edge four pin and seven pin wiring. I will say there is a little ding on the rear bumper but it is a used vehicle and other than that very very nice. It has some aftermarket tail lamps. We do have the factories that come with the trucks so they would be in the vehicle when you come to take a look at it. Locking tailgate, backup camera, dropping bed liner and actually I got those tail lamps sitting right over there by that Yukon right now. We'll be putting those back in as soon as this video is over. Down this side of the truck just as clean as that passenger side and for full disclosure this back rim is very very nice as well and that tire has just as much tread as the rest. Down the rest of the side of the truck, no dents, no dings. It does come with the heated fold out tow mirrors so they fold out like so. They also fold in. Inside the outdoorsman package gives you the light gray cloth interior. There are no rips, there are no tears on the seats. Both these seats are heated. You get a power driver seat with lumbar. We have factory all-weather floor mats throughout and this one does have auto headlamps, power windows, power locks and power mirrors, aftermarket brake controller and as we hop inside the truck here you can see that this one has 47,000 and 36 miles. You get a digital spinometer outside temp, range to empty compass, current miles per gallon so you can configure all those corners to whatever you want and the instrument cluster is nice and clean. Comes with a heated leather wrapped steering wheel, cruise controls on the right, bluetooth and information center controls on the left and audio controls on the back of the steering wheel. This one has the 8.4 3C radio which gives you AMFM and Sirius XM radio capabilities. This is also where your backup camera shows up and you can also do your heated seats and heated steering wheel right there as well. Now this is the 3C radio which is kind of a neat radio. If you wanted to add navigation, the factory navigation, to this radio you definitely can do that. It's $595 and we do that here at our dealership. See your sales professional for more details. You get the 8-speed automatic transmission, push button, four-wheel drive, heated seats and heated steering wheel button and you can do your climate controls down here or you can do your climate control up there. Dual climate control, 115 volt, 150 watt plug-in, passenger seat, no rips or tears on that. That's an excellent chair. Smells very clean in this truck. You can see it has the speakers in the ceiling, part of the Alpine premium sound system. You get your map lights, power sign, rear window, your home link buttons for garage door security systems, lane systems and 911 and assist buttons in the rear view mirror. Those are features of the vehicle that you never have to pay a subscription for. There's your Alpine badge letting you know that you do have the premium sound system in this truck. And we will take a quick look at the back seats. Back seats, just as clean as the front seats, no rips, no tears back here.  That power slide and rear window didn't see any rips or tears on the seats. Really nice and clean factory, all-weather floor mats throughout back here and it does come with a load floor. Put both sides down.   Storage underneath the seats as well. And we'll take a quick look under the hood also has the child safety locks on the back doors. I would personally like to thank you for checking out the video today and hopefully from this HD video you will have been able to tell just how clean this truck is all the way around. Inside and out under the hood we have the 5.7 liter V8 Hemi motor. Has a jammer CAI cold air intake. I guess that's what CAI stands for. Engine base very clean runs very smooth. This truck has been fully safe and inspected by our service shop. Has a fresh oil and filter change. All the fluids have been checked and topped off and this truck is 100% ready to go. We also have the original air intake and the filter. I think it's a K&N that comes with the truck as well that will be in the truck too. And I'd like to thank you for checking out the video and to see more pictures of this truck or one of our other 450 new and used cars, trucks, SUVs, minivans, Wranglers, halftones, recoder tons, one tons. You name it we got it go to our website www.summitauto.com. Full pictures and descriptions of every single vehicle from two locations all at www.summitauto.com. If you'd like to check out more HD videos you can go to www.youtube.com slash www.summitauto.com. Remember to like, subscribe, and share on this video and all the videos that you see there. In fact in a second you will see links to subscribe to our YouTube channel on your left. A link to more light duty truck videos like this one on your right. If you have not been to our website on the bottom link to this vehicle on our website click those check us out and we really look forward to helping you with this super clean 2016 Ram 1500 quad cab short box outdoorsman with the 5.7 liter V8 Hemi motor. Thanks again.


What is the maximum distance of CAT 6A cabling? As previously mentioned all structured cabling designs and standards are based on the following. 1. 90 meter permanent link from the patch panel to the outlet. 2. An allowance of 10 meters for patch leads in total. 3. An allowance of 100 meters if the link is direct with no patch leads. Therefore, the maximum distance for the CAT 6A cable is 90 meters if using patch leads. Calculations can be used for longer distances and shorter patch leads, but this is the starting basis for the design.


The Second World War waged for almost 11 months after D-Day. There were many vital engagements which led to eventual victory for the Allies, but here are some events that led to victory in Europe, or V-E-Day. The Allies did not consider the liberation of Paris to be a primary objective. They would rather keep their attention on the German forces retreating towards the Rhine. On August 21st, Eisenhower met with French General Charles de Gaulle and told him of his plans to bypass Paris. De Gaulle told Eisenhower that if his advance against Paris was not ordered, he would send the French Second Armored Division into the city himself. Eisenhower then agreed to proceed with the liberation of Paris. Hitler had ordered Paris defended to the last man and demanded that the city not fall into Allied hands except as a field of ruins. General Dietrich von Kultitz began laying explosives under Paris' bridges and many of his landmarks as ordered. On August 23rd, free French forces attacked the German garrison, armed with the knowledge that General Patton's army was right behind them. On August 25th, the Allies and French Resistance Force liberated Paris. The order to commence the destruction of Paris was never given because Kultitz did not want to go down in history as the man who destroyed Europe's most celebrated city. The Battle of the Bulge was the largest battle fought on the western front in Europe during World War II. It was a German offensive intended to drive a wedge between the American and British armies in France and the Low Countries so Germany could recapture the port of Anferp to deny the Allies' use of the port facilities. It was a massive gamble on the part of Hitler, one he lost badly. The Red Army had been advancing deeper into Poland since mid-January. Having liberated Warsaw and Krakow, Soviet troops headed for Auschwitz. Ten days before the Soviets arrived, the Germans started the death march where 58,000 prisoners were evacuated to another concentration camp 35 miles away. On arrival at Auschwitz, the Soviets found just 7,500 emaciated men and women and only 600 out of the 1.1 million corpses. The Yalta Conference was the second wartime meeting of the British Prime Minister Winston Churchill, Soviet Premier Joseph Stalin, and U.S. President Franklin D. Roosevelt. During the conference, the three leaders agreed to demand Germany's unconditional surrender and began plans for a post-World War Europe. Stalin also agreed to permit free elections in Eastern Europe and to enter the war in the Pacific against Japan. Although he did help fight the Japanese, he broke his promise of free elections in Eastern Europe and instead installed governments dominated by the Soviet Union. This was the start of the Cold War. Hundreds of bombers descended on Dresden in two waves. By the morning, some 800 British bombers had dropped more than 1,400 tons of high-explosive bombs and more than 1,100 tons of incendiaries on Dresden, destroying the city. By bombing Dresden, the Allies disrupted important lines of communication that would have hindered the Soviet offensive. Crossing the Rhine was the last major obstacle in the way of a full-on race to Berlin. The Allies expected a fierce defensive on the Rhine. Hitler ordered the destruction of all bridges that spanned the Rhine to stop the Allies from crossing. The Allies came up to the Rhine. They found that the Germans had destroyed all bridges except for one. Or the Allies crossed the river. They sprung a surprise attack by dropping thousands of airborne troops behind enemy lines to devastate the German artillery. First bridgeheads were established. It took just nine hours to cross the Rhine. The Allies coming from the West and the Soviet Union coming from the East were on a race to see who would make it to Berlin first. Eisenhower ordered the Allies to stop just outside of Berlin so that the Soviets could capture Berlin for themselves. The Red Army would sustain more than 300,000 casualties in the battle for Berlin. Eisenhower did not want to suffer such a toll for territory that would be given to the Soviet Union anyway under the agreement previously made at the Yalta Conference. By May 2, the Soviets had the city under full control and the war was over. The 8th of May is when German troops finally laid down their arms. Celebrations erupted throughout the world. From Moscow to Los Angeles, people celebrated. In the United Kingdom, more than one million people celebrated in the streets to mark the end of World War II in Europe. Still to this day, VE Day is a celebrated holiday throughout the world.


Well, hello everybody and welcome again to another OpenShift Commons briefing. This time Cloudsoft, a longtime member of the OpenShift Commons that I haven't gotten to give a briefing yet. I'm really pleased that they're doing one today and they're going to talk about keeping OpenShift evergreen using their Cloudsoft app. They've done a lot of work with Apache Brooklyn. I'm really pleased to have Andrew Kennedy online. I've seen him speak many times at conferences and he's going to give us a bit of an overview of Cloudsoft and then he's going to do some really good demos. So I'm really looking forward to it. The format for this is, as always, ask questions in the chat. I'm going to try and get Andrew to do most of his presentation and then I'll open up the lines after he's done. So we have a full hour. We'll see how long he takes to do the demos and everything and we'll pray. But the demo gods are with us. Andrew, I'm going to let you take it away with that. All right. Thank you very much, Diane. So what I'd like to talk about here is OpenShift, evergreen OpenShift and how we can manage to do that using Cloudsoft app. So first off a bit by myself, I work for a company called Cloudsoft. We are involved in the open source community. As I mentioned, Apache Brooklyn is one of the main projects that we contribute to. So my work is as a software engineer developing software for Apache Brooklyn. And we also provide that as a commercial product as Cloudsoft app with support. So I'll begin with an introduction to Cloudsoft app just explaining what it is, what it can do, its application management software. So just showing a bit about how all of that works, what it's useful for because you've never met it before. And then I'll move over to how we can use Cloudsoft app with OpenShift and the various things that we can do there with the two pieces of software. Applying OpenShift, managing OpenShift at runtime, how we do that management and how that lets us do the evergreening, managing to keep our OpenShift clusters running smoothly and up to date. So begin with the introduction to Cloudsoft app. And it's, as I said, it's Apache Brooklyn, it's the commercial version of it. And Brooklyn and AMP were developed to solve various problems. So IT and software today, ecosystems, they're large, they're complex, and they're fast moving. So there are bits of software that are considered essential today that no one had heard of three, four years ago. Docker is the canonical example there. And although they're essential, they're complicated. They're not the simplest of things to get your head around sometimes. Because they're new and exciting, they're not perhaps fully documented yet. So version zero point something, but they're still useful. So people still want to get these things out there. And finally, there, there are instructions here is how to install it. Here's how to get it out onto your systems into your data center. But then you come to the day to day operations, the runtime management. And often that's an afterthought. So Cloudsoft app is designed to solve some of these problems, make a few of these things easier. And the way it does that is modeling applications. So it lets you describe what your application will look like, describe the components it's built up of, and capture those in a blueprint. It can then deploy that. So instantiate that blueprint into a cloud or into a container ecosystem somewhere into Docker, into Amazon web services, into OpenStack, wherever. And then, once it's deployed, it can manage that deployed application.  It's a generic capability. So understands how to send properties. It can go and talk to REST APIs. It can run command line commands over SSH and pullback attributes. Find out what's going on with your software and then make changes to that. So manage it. Perhaps, you know, the CPU load is too high in a cluster. It can scale that out or things around you scale them down. It lets you make changes to software as it's running. And we can do this pretty much anywhere that we have a supported driver for. So we use most public clouds. There are examples there, OpenStack, software, Azure, Amazon web services, so we can deploy to public clouds. We can deploy to private cloud. So your VMwares, the OpenStacks and Cloud Foundries. They can be on physical infrastructure. So bare metal machines that you simply have credentials for or virtualized. So again, your VMwares and your OpenStacks. And this is completely separate to the application blueprint. So the application blueprint describes the app. And then we can send that off to any of these targets. And the things we can create there, we have built-in blueprints for, but there's at least React, Inject, Spatial, Multi-tier apps, you know, ElkStack. All sorts of various useful open source components are available. And you can link those together and build them up into complex apps of your own. You can build in your own line of business software, your stuff written in Python, in Go, in Java, and include those, link those into your blueprints. So once we have the application deployed using AMP, maybe, you know, just onto some public cloud somewhere, we want to manage that at runtime. And I mentioned policies and doing things like scaling out and scaling down. So we use metrics that we pull back from the app, and we can look at just properties of the machines that the application is deployed to, or actual application-specific things. We dig into your database, find transactions per second, maybe we look at a web service, find out the latency.  And these actions, again, they're a specific library of actions. So how to scale across sort of things is not intrinsically dependent on what those things are. So you can build up a scalable application out of individual components that you simply pulled out of a catalog. So that it's quite a powerful capability. And it lets you concentrate on designing the app rather than worrying about high availability policies and mechanisms and worrying about what sort of monitoring software. These are just components that can be added in to your footprint. So this lets you use, as I said, concentrate on the application more. It lets you think about how your business is using the app. So you're not worried about infrastructure. And that's, I think, the important takeaway. You design the app. You think about the app. You don't worry about the underlying cloud. You don't worry about the underlying bare metal machines. We take care of that. So as long as you have a blueprint, you're able to send that off to some cloud somewhere. And finally, as well as being able to deploy applications to the cloud, so that's all well and good deploying something like OpenShift, which is the first thing that we would need to do. But then the applications you're going to deploy, they're no longer going to the cloud. They're actually going to OpenShift. They're containers. They're not software running on virtual machines. And Brooklyn are also able to deploy to container infrastructures. We're able to stand up a Kubernetes or a Docker swarm or, as I'm going to show you, an OpenShift infrastructure, build that out, provision it. But then your applications that you want to run can also deploy those to OpenShift. So that OpenShift is then not just the thing you deploy, but it's also a target. And you can even construct applications where some part of them is running a pod inside your OpenShift environment. And other components, an Oracle database is running on a bare metal beefing machine sitting next to it in your data center. So we're able to deploy and deploy to containerized application environments. So I'd like to next show how we can apply all that to OpenShift. How we can deploy and manage an OpenShift cluster. So we want to deploy OpenShift into the cloud. We've got an account on AWS or maybe we've got a private on-premise OpenStack environment. And it's pretty simple to work out what you need to do to stand up OpenShift because Red Hat provides Ansible and Ansible playbooks. But if you recall back at the beginning, one of the things that it's quite easy to do is to install an application, but then runtime management is something that is added on perhaps as an afterthought. So AMP is able to use Ansible for what it's good at. So we don't pretend to know better than Red Hat how to deploy OpenShift. The canonical and best practices are described in the Ansible playbooks that are provided on GitHub by Red Hat, so we simply use that. And we can configure that. AMP is in quite a powerful configuration language, a powerful DSL that lets us describe how we want to build our cluster so we can configure all the component parts. But AMP is also then able to introspect into the deployed OpenShift and work and see what's happening to these virtual machines in real time. What's happening to the OpenShift processes that are running the Kubernetes components, the OpenShift, the Docker components. And we can build up some quite complex mechanisms to do some very useful things to this deployed cluster from some basic primitive actions like increase the number of nodes in a cluster or execute this command on this node of this cluster. So we take something. This is a very simple bullet print that describes how to deploy OpenShift Origin template. And this doesn't contain the nuts and bolts of the deployment, but is rather the configuration that is then fed into the Ansible playbook. So you can see the OpenShift version. You can see the size of the master cluster. There is two. We have three XTG machines, five nodes. So we're going to build a five node cluster and some specifications for the machines that we're going to create for these OpenShift nodes with the number of cores of microgram. So AMP takes this and we have a nice graphical UI that lets us have a look at what we're deploying. So here you can see just exactly what was shown in that bit of YAML before, but perhaps in a slightly friendlier fashion. You can see there's our OpenShift cluster has been highlighted and you can see the table of properties down there to the left. And we would simply click deploy or save it to a catalog, but in this case we're going to deploy that and we get a running application. So this is the part of the application that contains that five node cluster. There are five OpenShift nodes there. You can see them with the little OpenShift logo. And we can also look at the whole cluster. So there's a tree structure here. You can see there's also the masters and the XTG part. We're not just creating a single entity that represents a cluster and that's it. It's in a page black box. You can introspect right down into the individual machines. So I'm going to try and flip across and have a look at this live. So I'm not going to show it deploying because to be honest, that's quite boring. You've got to sit and wait while YAML updates a whole bunch of packages. You've got to sit and wait while things are pulled down from remote repos. This is one that I've already deployed. And you can see the structure. It's easier to start here. So we can see we have OpenShift origin. We have a little entity that manages our host files so that the individual machines can talk to each other. This could be replaced with a bind server if you wanted but for purposes of simple demos, I'm just using XTGhosts. And we have an Ansible server that contains the link. It pulled down the playbooks from GitHub and that's where we execute the commands to deploy and create this OpenShift origin cluster. And you can see the main, the URI with our OpenShift.WalkHolder private name. It's not actually in the public DNS.  HCD, we have three of these. The masters, it's a pair of master servers and a single load balancer. And we've already seen the five node OpenShift node cluster. So going back here, if I look at the individual OpenShift nodes, we look at sensors. And what sensors are there, the mechanism that I'm from Brooklyn use to pull data back from things that it's deployed so they can then use them for runtime management. So you can see it's got the host address, which is, I'm doing this on a VPN, so they're all private 10-dot addresses rather than public. There's information where it's installed software and I'll pull back the whole YAML document that describes an OpenShift node status and in fact, this can also be processed. So this is simply the first part. So this is a YAML document showing we can read in here the 20 pod capacity, the amount of memory, and that can then be fed into policy that will extract out the correct, perhaps the memory status, perhaps out of this messages, it will extract those out and the policy can then decide, really, I need to do something, this node is unhappy. I need to restart the service. I need to maybe delete it, shut down all the pods running on it and go and start a new node. But we can see here OpenShift status, it's happy, it's running, services up. This is, it's a happy cluster, it's doing the right thing. If we would get the master nodes, again, we can see the same sort of thing and we're pulling back information about versions of which particular bit of software ended up being installed by that Ansible Ansible Playbook. And the cluster itself, I'll just pop open the OpenShift console. So it's a pretty standard OpenShift. We're running, yeah, we're running a single reader's pod on this and I'll come back to that, but we're just running a single pod. It's not doing anything particularly interesting at the moment. So that's our runtime managed and deployed OpenShift cluster. The AMP has created all of this. In fact, the final thing that I'll show is the activity going on and show where it came from. We provisioned this on a Playbox OpenStack environment. So I've created the virtual machines. It provisioned them on OpenStack and it's then executed a series of actions. It's installed some software, customised it and launched it. And then the same thing with our Ansible server, which goes, we provisioned an Ansible server and it then executed the Playbook. And the Playbook turned all these virtual machines into that running OpenShift cluster that you saw there on the console, the OpenShift console UI. So I'm going to leave that there for now. We'll come back to this runtime management and actually execute some runtime commands on it. But I'd like to explain a bit more about how that actually works first. So I'm going to move on to automation and describe how we can automate actions in OpenShift. So we're not just deploying, but this is automating tasks that you might want to do while the cluster is running. So we want to monitor the cluster activity. So I mentioned policies that would get, say, the number of pods. So I suppose I have five nodes that are configured for a maximum of 10 pods each. I'd need to monitor and perhaps once I hit some little watermark, say 40 pods, I know that actually I'm going to run out of space soon because I'm going to hit my limit of 50, so I need to do something about that. So the first thing we need to do is monitor the cluster, look at these sensors, look at the properties of the cluster and pull them back into policies that we can do something useful. Then we need to actually do that useful thing. So adding new nodes, and that's reasonably simple for AMP because, well, you saw it can deploy to the cloud. So adding a new node to the cluster while we simply provision a new virtual machine and, helpfully, Red Hat have provided further playbooks for Ansible that we can use to extend the cluster. So there's not just a playbook for deploying, there are playbooks to scale up and scale down. So AMP's able to orchestrate those and execute these further playbooks that will scale out when it needs to. Other things we might need to do, we might need to replace machines so perhaps a process has failed, maybe the distance failed, maybe there's a bad network connection. We don't know but our cluster 5 has become a cluster of 4. So to regain that capacity we need to, again, it's the equivalent of adding a new node. It's just when does it happen? So we monitor, we monitor for failures and we do, we replace the failed machines and either delete the failed ones or keep them and investigate later what was it that happened? Was it someone hacking in? Was it just a dead valuable machine or some natural cosmic rays, something like that. We can grow the cluster so adding new nodes when we need to because there's excessive load but perhaps we also want to anticipate that so we can provide a policy that follows the sun, so to speak, that 9 till 5 we increase the size of our cluster because we know that's when most of the jobs are running. By the clock happens we scale it back down to some minimal level and we're not wasting money, we're not spending, our Amazon compute bill is not growing enormously when we're doing nothing with the cluster. And finally we might want to update the machines in the cluster, we might want to update the operating system, we might want to deploy patches or perform some kind of operational maintenance of the underlying infrastructure and hopefully do this without upsetting customers that are using the cluster, without affecting the applications. We simply want to make sure we have the right type of security patches, we're up to date with the latest services running on our cluster. So these are all the things that we'd like to do and the way we do this we do this with effectors. So the amp blueprint creates that tree structure of entities that you saw, so we have the cluster, it has children, it has five children, there are the nodes running in there and each of those nodes has not just the sensors to find on it but it also has effectors. So these effectors they're ways to perform tasks so each entity can have certain tasks performed on it and which tasks you perform is based on the type of entity. So there are some things it makes sense to do on an OpenShift node there are some things it makes sense to do on the master and other things that it only makes sense to do on say the Ansible server. So only the Ansible server understands how to run the scale out of play week whereas starting off in the OpenShift process that's running a node well that only makes sense to happen on the OpenShift node or management of pods that only makes sense well it's the masters that would be able to do that perhaps wearing OC command line commands or executing some HTTP REST API request against the master or against the load balancer and resizing of the cluster as well the thing that knows how to do that is the cluster component itself it knows how to add another one of the things that it is managing a cluster of so the master cluster understands how to add a new master the node cluster can add a new OpenShift node and so forth. So all these effectors are defined on these individual nodes and they perform sometimes simple actions sometimes a little bit more complex in general and I'll show you an example here this is the definition from the actual underlying blueprint and it's just it's a YAML file it describes the structure that tree structure but it also describes these effectors these actions and this one it happens to be selecting the oldest nodes but you see the underlying way it does that it's simply an OC command and worked out the correct parameters to pass in we want the K oldest node so we pass in this $K and we can build up some quite complex things from just very simple components so we can define on nodes all of these little effectors that do various quite simple things but you then get a very powerful capability out of that because you can compose them together so select oldest nodes once we've selected them well maybe we want to do something with them and in fact the evergreening the whole evergreening process it's simply a composition of a lot of these very small vectors these primitive actions pulled together and bundled together to perform useful operational actions on your cluster and evergreening is just one of those it's just an example you could do pretty much anything you want so we're able to combine these tasks like select the oldest and we can do different things we could say sequence some tasks so do A then B then C we could compose them together so do A take its output and feed that into B take these output feed that into C looping here's a list of nodes just do X to each of them maybe X is restart the service so we loop through the list of nodes restarting the service choices if the service is unhealthy then do X otherwise do Y transformations and replacements so we can transform the content or the output of some command maybe we get the output and IP address and we want to find the host name so all of these little compositional mechanisms can be used to build these useful tasks that's how in fact that's how we build a task like repave so we want to keep our cluster fresh and we'll say the phrase if you're evergreen the cluster so we do that and we use simple primitive components and AMP lets us build those up into a task like repave so what exactly do I mean by repave and evergreening so if you're not familiar with it evergreening is the process of making sure that your cluster doesn't get stale that the operating systems that the patch sets that the security hot fixes that are deployed that you're always up to date so one way of doing that one way of evergreening your cluster is to repave nodes so repaving basically it's a simple set of steps laid out here so we resize our cluster so we've got say five nodes we resize it so we've got six and that sixth node is going to be created using a fresh operating system and when we do the update you know we call an update command it's going to pull down the latest security patches it's going to pull down the latest packages so we know that when we create a new virtual machine we get the fresh operating system the fresh patch set and the fresh packages that we need to update the cluster but that's just the virtual machine so yes we've resized the cluster we've got a new fresh VM that's got the latest set of hot fixes on it we then need to scale out OpenShift so scale out on to this new VM and that's where Ansible comes in to play Ansible helps us by giving us the scale out playbook we kick that off and the new fresh virtual machine becomes an OpenShift node but now we've got a six node we've got a bigger cluster than we want it so that's where that select oldest little task that I showed you comes in we want to get rid of some of the old nodes because we don't need them any more we've got a nice new fresh one so we find the oldest and then we run the OpenShift commands and we say let's stop these nodes take them out of the cluster stop all the tasks on them so they're running some pods they're running some processes we stop those processes stop the pods or rather tell OpenShift to do that and OpenShift will helpfully stop them and restart them on some machine that actually has space for them so OpenShift will drain tasks and move them over to hopefully our new virtual machine and we can then get rid of these stop nodes that aren't running anything anymore and are just taking up space taking up CPU and memory in our cluster and adding to our monthly bill on AWS so that lets us repay the single node or perhaps a couple of nodes and if we want to make sure our entire cluster is evergreen we simply schedule this we say let's run this we've got an end node cluster let's run it end time so five node cluster we'll run it five times once a week and that five times we'll clean up one node at a time and our cluster every week we know it's evergreen and if there's a problem well we can stop after the first one we can say oh okay there's something wrong with this and we can go back and we're not going to the cluster is not going to crash and burn because we just changed everything all at once it's a similar mechanism to say evergreen deployments the same sort of concept we're doing one at a time and making sure that yes that was okay and we can carry on so I'm going to kick off a demo of this and show you how Repave actually works so first off here are the effectors so we have Repave cluster on the OpenShift Origin but I'm not actually going to use that because what this would do it would Repave all five of the machines all five of these OpenShift nodes and that's going to take a bit more time than we've got available to us so instead we can execute the Repave nodes which is sitting here and Repave nodes simply Repaves K where K is some parameter and we can Repave a single node and that will happen a bit faster and actually this is a good place to look because you can see in this list of effectors things that an Ansible server can do you can see that the Ansible server knows how to scale out nodes it knows how to stop machines how to update nodes and if we look further at the master we'll find that the other things I talked about disabling scheduling evacuating nodes selecting old is they all live on the OpenShift master because it's able to run OpenShift commands across the entire cluster so before we go and start Repave what I'd like to do here's our OpenShift console so we're going to flip to the OpenShift web console I've got a demo project as you saw before and here's our Redis so let's look at the deployments so there's only one replica there what I'd like to do before this is to scale this up to five because we've got five nodes so now I go applications deployments applications of ports so we can see we had our initial running Redis and we're going to have five Redis services running and if I pop to the command line it's a list of nodes so we can see here's all our nodes that started this cluster an hour ago and I'm also going to look at the list of pods and we can see here's our one, two, three, five pods so we can see the pods running and you can see they're each running on a separate node so we'll leave this up here and go back to our amp so as I said we'd like to repave but we'd like to just repave a single node so let's invoke this I'm going to set that to one and confirm so that started the repave process and if we look there you go there is it's scaling up, it's resizing and what's happening with resized nodes it's calling, it's asking OpenStack for a new virtual machine and it's then going to run through, it's going to run the Ansible Playbook and so on and so forth but I don't think it's perhaps less instructive to watch this as I have a sort of visual diagram that shows perhaps more clearly how exactly this is all happening so we started with the initial OpenShift cluster you can see there are nodes, each node is running Docker engine and OpenShift and we have pods, okay there's a lot more pods running here than on my little demo cluster but you see the light green ones, there's some application that is spread across all five nodes so first thing that happens is amp resizes that cluster and in this case it adds two more nodes so we see those at the right and these are what I talked about the evergreen, the fresh nodes with the fresh security patches and so on, we know they're updated then you move on to Ansible Ansible has the scale out playbook and it's telling Ansible execute this playbook that causes these fresh nodes to have Docker engine and OpenShift on to them so we've now gone from five to seven nodes and are now running a seven node OpenShift cluster but we don't want two of these so we need to find a couple of the oldest ones and it so happens these are the ones we've gone dotted lines around them so amp is able to run that little bit of shell command that I showed you and it selected the two oldest OpenShift nodes so next we want to stop anything further being deployed to those they're the old ones who are going to get rid of them so we turn off scheduling which is again a single command and then after that we drain the pods from those nodes so you can see the dotted lines we've gotten rid of the pods running on these old nodes and OpenShift has helpfully started them up on the two nodes that we created and this is all possible and if you remember the way OpenShift likes things to happen you're running stateless pods you're running stateless images so we can stop and start and move things around and our end users are going to be none the wiser they're going to see their application continue working they still have capacity there's no lost transaction there's nothing to worry about like that your applications are built as stateless stateless microservices stateless applications OpenShift is able to juggle them around as it sees fit and move these pods to the latest freshest nodes that it finds in the system because of course it can't schedule anything anymore to these old the nodes with the dotted lines around them AMP comes in again so AMP has told OpenShift let's reschedule these pods to another node we then turn off the OpenShift process we don't need OpenShift anymore so SSH is in and stops the processes there is nothing happening anymore those processes are no longer of any interest to us but we still have the virtual machines so last task AMP needs to go and release those virtual machines put them back into the pool maybe it's open stack maybe it's AWS but essentially they were just taking up space they're taking up CPU from our pool of CPU they are increasing our Amazon web services bill or Azure bill whatever so we release those virtual machines they disappear and we end up with Repaved OpenShift cluster now this is simply two and if you imagine we do this perhaps one at a time or we do it once more but set the browser to three we end up with five build cluster every virtual machine has been renewed replaced and our applications are still running quite happily our pods are still quite happy end users are none the wiser and yet they have a more secure a more up-to-date piece of underlying infrastructure so we've been able to do all this to improve our infrastructure without inconveniencing the end users running applications there I'm not sure how much I can take an awkward time when I started running through that little animation so let's see okay no that's looking good so we've resized the nodes we then updated them so our select oldest happened we did a bit of bootkeeping converting the string to a list and we then stopped the oldest ones let's go back and then we actually stopped the machines those were running on so bit of bootkeeping again resized by Delta so that resizes by minus one and what that does it says let's throw away the machines that are unwanted so that would be any machine that had open shift stopped on it so that's happened we still got five nodes in our cluster it's not actually immediately intuitively visible here of what's happened so I'm going to flip across back to our command line so let's look at two things I'm going to run that get pods command again and we can see there we go seven minutes old seven minutes old, three older pods and we have two one minute old what did I run that with yes I ran it with a size of one so that there was the initial pod that we started then I scaled it out to five which are these seven minute old pods and then there is this brand new one which has just been started so this is the pod that got moved on to the new evergreen node and in fact if we look at the list of nodes we can see that yes they're all one hour old except here's our dot 146 and yep that's exactly right that new node is what our brand new pod is running on so you see that one node is vanished, a new one has been created two minutes ago and the pods have been shuffled around and our application still has five replicas it's still quite happily running there we've got to be able to see if we look at our console in fact yes we can see so there's our two minutes old this little redis running here activities and the only other thing that might be a bit useful to go into here is yes we can do that manually and that's great but we want to do this automatically so here's our list of things that happened but if I look at policies we see periodic effector and this periodic effector is running it's repaving two nodes every day or we could repave the entire cluster we could run this repave cluster once a week the principle is that we're able to execute these effectors automatically these effectors in turn run a sequence of further primitive commands so resizing starting stopping scaling out and that happens on some kind of scheduled scheduled policies scheduled program so I'm going to talk back to the slides now and just summarise what we've seen here and why it's useful so first off we talked about AMP and what AMP can do so AMP lets you manage your applications grow your applications scale them dynamically depending on the workload it gives you a common management platform so that mechanism that we saw to manage open shift infrastructure is exactly the same front end an API and user interface that would be used to manage applications running on open shift so completely the same piece of tooling completely agnostic so although we across platform so although we ran it on open stack there it could run on AWS it could run on private or public cloud doesn't matter it can also run on containerised platforms and finally it's a simple and consistent management mechanism and it lets you build up from simple components into complex apps using a library of effectors and actions and a library of entities and templates and blueprints so you can orchestrate not just your application and the mechanism for deploying your application but also the operations that happen to your application at run time so we're able to deploy open shift origin we then are able to I didn't really show this but we're able to deploy applications to open shift in the same way so we can deploy open shift itself we can manage a running open shift so work at the running virtual machines look at the properties of those virtual machines and we can orchestrate actions across the whole application so we can make things happen the repave of an entire cluster and use that to evergreen open shift so with this mechanism we can deploy open shift and make sure that at all times we have the latest version of whatever security patches and fixes are required and this all happens automatically and in the background and I just add that of course this is no solution or no alternative to your heart bleed comes out and you've got to fix everything immediately we're not recommending that it will be repaved next week but you can use the same mechanism we could simply have heart bleed is out we need to get the latest updates well I can just click on the repave effector and repave now I don't need to wait one week so we can either automate the management it happens on schedule or we can instigate those actions and execute them whenever we want as operators so that's essentially it hopefully that made things a bit clear hopefully you understand how open shift evergreening can be accomplished and how we can deploy and manage open shift using Cloudsoft AMP to talk to Ansible and talk to OpenShift so I guess are there questions well I think I have a couple just maybe clarification which and I'm thrilled that we finally captured all of this information and I can't wait to get the feedback from people who are using it and what they think of this approach I think it's solving a lot of problems I'm I have to say for me this was the first time I heard Repave I've heard it evergreen before but Repave was new to me I think it's introduced by Pivotal they first talked about it if I recall correctly so it's an interesting concept my question is you talked a lot about stateless apps and OpenShift leverages Kubernetes persistent volume the PV framework to allow the provision persistent storage for customers and I'm wondering how all of this repaving works or if you've tried it the things that have for PBCs or for volume plans right so I don't know if you noticed but I did I'm not going to say cheat but the redis I deployed was the redis with a femoral storage and essentially you wouldn't want to use localized volumes but you can Repave if you're using volumes that are coming from an external self cluster or something like that then there's no problem at all because Kubernetes and OpenShift are smart enough to restart the pod somewhere else and reconnect that volume from your SAN if you were using local storage of course you've got a problem your app is going to have a bad time because when it starts up it can't find any of its data but I think so always you follow best practices and everything should be okay and that's one of the next steps that I'd like to work on with this OpenShift deployment you'll notice that it didn't contain a deployment of a SAN there wasn't a storage cluster deployed there so I think that would be the next step is to modify the blueprint to deploy a storage cluster and make sure that we can Repave and redeploy the applications connected to volumes on that storage cluster and also think about what to do to Repave and update the machines that are actually running the storage cluster because you have to worry about never rain and availability of your storage and that's another exciting problem so there's a lot of exciting problems out there I'm hoping that some of you guys will be coming to Red Hat Summit in Boston and will pop into the OpenShift Commons Gathering on the day before May 1st in Boston because there'll be a lot of real world production scale customers talking I think we have 9 or 10 of them now who are going to talk about their stack and their implementations of OpenShift and it would be good to see because I think that the PVCs and persistent storage clusters is on the rise and that's something that's going to be interesting for people that are using this approach to make sure that they manage correctly there is one other question here and and I'm also interested in this too and I think probably it's new to you too but Dale is asking if you've attempted this with an OpenShift Upgrade Ansible Playbook and to run the Upgrade Playbook no but that is one of the things I had in mind as being one of the capabilities of these effectors so yeah absolutely that's a further effector that would be quite simple to design based on the work that's been done here instead of calling scale out we call Upgrade and we move from OpenShift Origin whatever to the next place yeah that's I think that would be infinitely useful to have and have it tested and have those have that implemented here because that really because with Kubernetes being on a three month release cycle and OpenShift Origin being rapidly coming up on its heels I think we're always one point behind because we take three months here in scale and test our projection versions of these but that I think the upgrading process is something that is always top of mind for everyone who's in operations using OpenShift pretty much anywhere 100% agree I mean that's basically it is one of the next things on our to-do list with this so yeah we're looking in the right direction so that's good to know and hopefully we could come back and demonstrate the Upgrade once we've done that we're also Diane we're also looking for people to work with us on this so rather than us just going off doing something coming back you know another show and tell if there are people there or whoever that wants to kind of come up with Andrew certainly we'd be very keen to support that yeah I think that would be interesting and that's kind of why I'm thinking that you should if you're not coming to Red Hat Summit or the OpenShift Gathering at Red Hat because there's I think over 80 80 sessions that are nearly just people who are using it in production and their feedback would I think inform and they'll have some real world use for this approach I believe so I think it would be a good time to get together and introduce you to some of these folks Is there a link you can just post for us of the gathering or am I just behind the curve here that's okay sorry I'm losing my voice a little bit because I've been talking all morning too not I got to listen to Andrew for a change but yeah if you go to I found it I found the link yes commonsadventure.org we do three of them a year two at each coupon and now one the day before every Red Hat Summit and we love I think I really think you ought to be in the room and be part of that conversation because that's where you're going to find people like Dale and others to help you out with this and I'll shoot you guys a note and a code so that you can figure this out with a promo code and if anybody else wants to I'm happy to get you in the door if you could that be great and we can talk internally about whether we can maybe power shoot Andrew in because I think it would be good because I also think it's the face-to-face time that really makes the difference a lot of these briefings and there's tons of people who watch them afterwards and people who've joined us today and I'm thankful for that I wish you would ask a few more questions but today I think Andrew did a very good job so maybe that's why there's not so many questions but I think we've got a lot of a lot of good synergies here and this is something that's very useful and for me I think today is the first time Andrew and I think you did a really good job explaining the value proposition for what you're doing at Cloudsoft so it was a very very good demo so thanks thank you for having me and I'll obviously send the slides to you so that anyone who wants them will be able to get to the relevant place at the relevant time yeah and as I said at the beginning all of these will be up on our YouTube channel for open space we can shift on YouTube and I am behind a few as some of you know I usually post each of them as a blog and I've been caught up in a few other things so I'm behind about three or four sessions so I will get these up hopefully by the end of the week and they'll be up on blog.openshift.org or .com rather they'll be there soon so thanks again Andy this is really a great demo and I think very useful for getting a good overview of what what you're doing at Cloudsoft and where you've done where you've gone with the patch we built last time I saw a demo it's quite impressive well thank you very much thank you


Okay, thank you very much. So today I'll talk about some relation with the Iain Algebras and vertex models form statistical mechanics. And I want to start with stating two conjectures, which are due to Maxime. One of them is about quantum field theory and it is kind of imprecise just because we don't have a definition of quantum field theory. But the other one is a discrete version of this and which is very precise and we actually, I also suggested proof of it. So the first conjecture has to do with quantum field theory and so I assume we're given a definition of what a quantum field theory is. So let's start with a QFT on some flat space Rd with translation and dilation symmetry. Is it all right with the L? Yeah, yeah, okay. I'll stick with D for the moment, but sure. With translation and dilatation symmetries. And let's say that in this definition of a quantum field theory, there would be some vector bundle of fields on our space. So with a vector bundle of fields, let's say V. Then the conjecture says that translation invariant forms with values in V gets an action of the d-dimensional little disk upright. Yeah, I think you can actually drop this. So it is true, yeah. So let me make a bunch of remarks. Okay, so first of all, like if we were working with complexes, which is the case here. So if we're in the category of complexes over a field of character C zero, and if like we have an E and algebra in complexes, then A shifted by N minus one is going to be a Li or is an L infinity algebra. And presumably, I mean, or like that's part of the conjecture that this L infinity structure should be related to the combinatorics of Conan-Kreimer, like renormalization. So that's the first remark. A certain remark is that actually, like part of this has been proven in some work of, let's say Costello, Costello with Owen Colliam. Maybe also by some physicists like Steffel Orlands. But all this work, they actually deal with theories which are very close to free theories. So only for the perturbative setting. And in principle, I mean, the conjecture should be true for the formations of theories which are not free. So I'm sorry, is it the proper tourist structure so that they get the section?  Do you need to just define a section or is there something you have to check so that the check that we get comes to construct? Yeah, you have to construct an interesting eddy structure on this, yes. So you really have to construct it, so it's not a matter of checking, it's not a deal. No, it should come from, let's say, some kind of operator product expansion. But yeah, you have to construct this eddy structure, the action of the eddy operator. It's not something that you have and you have to check that it satisfies the axiom. You really have to construct it. Yeah, and the third thing is that there's a kind of interpretation of this in terms of deformation theory. So there is this slogan, which is now a theorem, that formal deformation problems are equivalent to DG-de-Agebras or L-infinity-Agebras as infinity categories. And the fact that we would have a, so there's translation invariant forms with that in the bundle of fields. This should be up to some shift. This should be the tangently algebra of some formal deformation problem. So the formation problem of this translation invariant QFTs. And the fact that there's an eddy structure means that this deformation problem should actually lift to some en deformation problem. So this should lift to some eddy deformation problem according to what Lurie actually proved. So Lurie proved that formal modulator problems parameterized by commutative algebras are equivalent to the algebras. And formal modulator problems parameterized by eddy algebras, which are kind of, well, that these are commutative, but not quite commutatively algebras, let's say, are also equivalent to eddy algebras with some shift. Okay, so I think there's also some recent work of Chris Elliott and Pavel Safloff about, so that there's some results saying that if you have a factorization algebra with translation symmetries, if you're taking, well, I don't have like the DRAM translation invariant part of this, you should get something which is very close to an EN algebra. So there's the radius also problem, there are several results which are going in this direction. Anyway, what I want to talk about today is a discretized version of this. And so I'll state everything, so in dimension two, even though everything works in any dimension, it's just easier to draw pictures on the board. So here is what I'm going to do. So we consider a square lattice in R2 and it's gonna be oriented. So it's an infinite graph if you want. And I'll give myself two vector spaces, H and V for horizontal and vertical. So the element of the horizontal space will be labels on the horizontal arrow of my graph and the vertical element of the vertical space will be the decoration for the vertical arrows. So one way to, and I'll give myself R, some matrix, so an endomorphism of H tensor V, and let me explain how to interpret this. So let's assume like it's not necessary but it's easier to explain how it is, what it is about. So let's take some, so let's assume that H is and V are finite dimensional and let's take a basis of this. So like EI for H and FJ for V. So then the matrix R gets matrix elements. So it's some basis element EI tensor FJ. And like I'm not writing sums, so it's gonna be R, I, J, K, L, E, K, tensor, F, L. So here's how the way to interpret this. So we have configurations like this. So locally around the vertex of our lattice, we're having, so we'll decorate edges. So we'll decorate horizontal edges with E's and vertical edges with F, so basis element of H and V. And R, so the coefficient R, I, J, K, L is the weights associated with this local configuration. Or if you want to think in terms of probability, if you're counting things with probability, or I, J, K, L is the probability that you have such a configuration locally around the vertex. So and the game we're going to play is to count configuration with weights. So like that's the state sum game.  So, but before this, so I'm going to do some kind of state sum computation with boundary conditions.  So I'm going to have a space of boundary states. So let me take some, so U will be some open, bounded, and even like just for simplicity, I'm taking convex, but it actually doesn't matter. We can also even only take both. I mean, any basis of the topology of R2 would work. So I'm taking such a thing. And so I have my lattice here and some, so U will be something like this. So I'm going to have boundary edges. So like let me write D plus H of U. These are going to be the incoming, that's for the plus, horizontal, that's for the H boundary edges. So that's the state set of such things. So what is it exactly? So that's an edge which is horizontal. That's pretty good what it is. And saying that it's incoming, it's just that E intersects U. And moreover, the source of E does not belong to U. Basically, like this is a horizontal incoming edge for instance. And like, well, you can define like D minus H U for incoming, outgoing, sorry, horizontal edges.  Right, so now we can say, so let me observe that there's a canonical bijection between horizontal incoming edges and horizontal outgoing edges of U. That's pretty clear. I mean, like since the region is bounded, like if you enter into the region at some points along the line, you will go out of it at some point as well. So there's a canonical bijection and a canonical one between these and as well with vertical ones. So we can define W of U. That's gonna be our space of boundary states. That is going to be endomorphisms of H tensors to the power D plus H of U, tensor V to the power D plus V of U. So what it means is that to every incoming horizontal edge, we associate an element of H and then to every outgoing horizontal edge, we're associated an element of H dual and the same. And the same for the vertical edges. Okay, so now we're ready to define the partition function. And the partition function associated with a given region U is going to be counting all possible configurations with weights with associated boundary condition and the boundary condition will be some specific element in here. So here is how it works.  So first example, let me take this. So let's take U being this. So I'll have decorations like, so I'll have EI, FJ, FL, sorry. EK, FM, FM. So all possible decorations will be this. So I'm gonna construct, so ZU will be an element of WU. So I'll write it as a map from K to W of U and it sends one, well, to ZU one. And that is defined to be, well, that's gonna be an element of this. So it corresponds, so it will be like a basis of such an element of this space is given by tensor product of all these things. So I have to describe your sum over all these things. So it's a sum over all the indices like I, J, K, L, M, N. And then what I'm going to do is to put the matrix R at every vertex and sum over all, the only remaining possibility is summing over all possible decorations in the middle here. So now I'm putting, so that's gonna be sum over S and that's gonna be R, I, J, M, S times R, S, L, K, N. K, N. Actually it's better to put indices on the left and the right and the top and the bottom than to be. Sorry? It's much better to put indices on the left and the right and the top and the bottom than the top. Yes, you're right. Anyway, in the end I'll get out, I won't use this notation anymore, so there's kind of a better notation for that, so. In tech you can put indices anywhere. And times like this big thing like E, EI, tensor, E, whatever, K, tensor, FJ, FL, FM, FN, yeah. So yes, you're right. There's a star here and J, L here, okay. Anyway, so overall what we're doing is just matrix multiplication, right, here. Summing over S and taking the product of these two if you can forget about all other indices, that's just matrix multiplication. And what we're doing is just matrix multiplication in two dimensions somehow. So what is the image of one, that's this matrix. So let me assign numbers to every vector space, so that's one, two, and three. And this is just R12. So that's not, these indices are not the same as these ones, so that's why I put a comma in here. So that just means R acting on the first two vector spaces and then acting by identity on the remaining one. And then I apply R applying, acting on one comma three. So it acts on the first and the last guy. So it's an element in endomorphism of H, tensor V, tensor V, where these are one, two, three, okay. So more generally I mean you can write matrix multiplication, let me show you one more just to resolve some ambiguity that can be in the notation. So if I'm taking like this bigger one, like Z of U1 in this case, so let me number this one, two, three, four, five. That's gonna be R23 for this first vertex here. Then R24 for this one, R25. And then R13, R14, R15. And you can observe that actually, like these two ones actually do commute. So like the order in which we do things is not completed at the time, but anyway since things do act on different space, actually there's some commutation relation that you have which kind of resolves this ambiguity. Okay, but not only you can have this partition function, you have a kind of conditional version of this.  So here's how it works. Assume that you have like U and we have a subset U prime in it. We're gonna associate to this a map from W of U prime to W of U, a linear map. And here is how it works. And again let me give an example. So the bigger open subsets will be this big U here and the blue one will be U prime. So boundary states for U prime, that's gonna be endomorphism of H tensor V square. And it goes to W of U, which is endomorphism of H to the third, V to the third. And basically we're taking some A here. So A is an element that lives here. So somehow we're being blind. We don't know what happened inside U prime. We only know what happened at the boundary of this domain. And we're counting all possible configuration given boundary condition on this domain inside. So basically we're filling everything with R here. So like again if I number things like this, it sends A to like this big matrix. Like we're gonna have R34, R35, R36, like for this three guys here. Then there will be A. So A acts on three different guys. So they're gonna be A245 and then R26. And then the remaining R, so like R1415. And R16. And you can play this game a lot. So what we're interested in in the, actually the, what happens when U becomes bigger and bigger? So we're taking the, let me define formally W of R2 to be the co-limits for overall use of W of U. And once you get some kind of the global section of this, you get an action of Z mod two, of Z square, sorry. Just because everything we did is completely translation invariant along the lattice. And the conjecture, which I think is impoverished. I only heard you talking about this in talks, but I never seen something written about this, right? So it's that's if you're taking the chains for the group Z2 acting on this representation W of R2, that comes equipped with an action of the chains on the little viscope rod. And again, I mean, I studied everything for in dimension two, but that works in any dimension. So in class, there's pictures you're drawing. Remind me of these operator categories, like Clark-Farrock study, do you have any, there's not a connection right now? I don't, not that I know. It may be, but not that I know. Okay. This is kind of discreet version of PX and nothing else. Yeah. So. There's a notion of an operator category and a equivalence between some operator categories and the N-algebra's. And the operator categories look at least vaguely like this, discretized. Make sure you find. Okay. It might be a notch. Okay. As far as I know, these operator categories are related to E and operator. Is that correct? Yeah. But there are cells in higher dimensions. In this picture, we only have like vertices and arrows and no higher cells. I don't know if it's, maybe there's a way to understand this that way, but I don't know. Okay. Actually, one remark is that instead of, if instead of including one open subset in another one, you include a bunch of open subset, which are perverse disjoint, you get that W is actually a factorization algebra on R2. It's actually a factorization algebra on the lattice and actually you can push forward it to R2 via the inclusion of the lattice. So that worked pretty well. And the first strategy to actually prove, try to prove this trajectory was, I never succeeded to make it work, but it's very easy to using this Z2 action on this factorization algebra to show that it's equipped with some kind of discretized RAM differential. And like you can cook up a factorization algebra in complexes that is not exactly locally constant, but you can kind of guess that it's somehow asymptotically locally constants. So that would prove that global section would be equipped with an E2 structure, but I never succeeded to make this argument work. So here I'm gonna present a different strategy to prove it, which is actually more direct. So that, yeah. There's a kind of like block spin thing you could do, right? Yeah, that's the kind of thing also I was trying to do. But block spin works pretty well in dimension one, also sometimes in dimension two. And furthermore, it works with spin.   And I don't know how to deal with that. But it might just be my ignorance. But that was also one strategy. So in general, I mean, I would love to see a way to make these discrete things fit into some kind of BV formalism or like to work out the analog of what you and Kevin have done for these discrete theories. That would be great. I don't know how it works. Okay, but anyway, like for this, like the main result that we proved with Damian Loge is that like this conjecture is true. And like the goal for the rest of the talk is to explain the strategy for the proof. So first of all, I need some discrete version of the category of little disks in R2. So let me explain how this works. So I'm going to construct. So let me write this DD2 for discretized disks. And this is going to be a two-one category, pretty much strict actually, a really strict two-one category. So it's a two category in which two morphisms are actually invertible. So objects of this category will be finite, disjoint, unions of disks in R2. One morphisms, they're generated by inclusion of configuration of disks in R2 into bigger configurations plus translations using the Z2 action. So typically, that's an example of a one morphism in this category. I think you can assume that disk is efficiently big, contains a lot of integer points so it can just picture these integer points inside. Yeah, yeah, yeah. So I'm not writing the lattice here? Yeah. Yeah, yeah, yeah. That's correct.  So that's where, so of course, what we ask is that at every single step, like we never end up being in a configuration where disks do overlap, right? So that's really important, otherwise like everything, we won't get any E2 structure. And then the two morphisms are like these discrete homotopes. So the two morphisms will be completely generated by like you have a disk, you can translate it that way or that way or this way and that way. And we consider that there's a two isomorphisms between, two isomorphisms between these. Okay, so actually this category, this two one category happens to be like there's a braided monodic structure or E2 monodic structure on it. And instead of showing, exhibiting an E2 structure, I will give you two compatible E1 structure on this category. And I'm sure you can guess what it is. I mean, there's will be a vertical direction and a horizontal direction. So here's how it works. So we have like two partial orders on objects. So we're saying that's A is smaller than B that way. If B is at the right of A, like typically if you have, well, something like this, this is A and this is B, but also if there are like this. So B should be on the right. So there are projection on the first axis should be disjoint and B should be on right, right? And like you have a vertical order. I mean, like A smaller than B that way. We say this if A is below B. Okay. And the two monodic structure are very easy to write. We're going to use the action of Z2. So the horizontal tensor product of two guys will be the disjunction of A with B translated by like say the vector M0, where M is the smallest integer. So that's A is to the left of A of B plus M0, right? So like if B is to the left of A, you have to translate B to the right to make it disjoint from A and to the right of A. But if B is actually very much on the right and far away, you have to take a negative M to put it very close to A. And the same for the horizontal structure, for the vertical structure. It's gonna be A disjunction B plus zero N, where N is the smallest so that A is below B plus zero N. Okay. And you can check that this actually defines strict monodal structure. There's even, I mean, the higher coherencies are completely trivial. It's a strict monodal structure. Like the, actually the lemma is that, no, no, no, it's fine. Actually, I mean, the correct way to phrase this is to prove that there's a single object in two one categories. So actually, like this, there are many ways to write this monodal structure and this one makes some choice. I mean, you could move A instead of moving B, for instance. But there's a single object, which is more fundamental and that's one way of presenting this. So there's a better way to write this, but this one is machine monitoring. Yeah, so like these are strict monodal products. And moreover, they are compatible, but the compatibility, this one is only up to higher isomorphism. So the compatibility is up to homotopy. Even though in dimension two, I mean, there's no match room for homotopies, but, and like in higher dimension, it makes much more sense to present this using iterated sigal objects in categories. Okay, so like because these are monodal product, which are compatible, we have like two compatible E1 structure. So it shows that this gets an E2 monodal structure on this DD2 to one category. So in particular, E2 monodal structure to one category. So in particular, if we mod out by two isomorphism and go to the homotopy category, it's gonna be an actual braided monodal category. So the consequence is that the homotopy category of DD2 is braided monodal. And actually the braided monodal structure in this case is pretty easy to write. I mean, you have like two open subsets. You have like A disjoint union, B plus some M0. That's, let's say, that's a bigger one. So that's A and B plus M0. And like here, you want to go to B and A plus some M prime zero. It doesn't have to be the same M. Well, it shouldn't be the same M. And definitely, I mean, the way to go from one to another, well, it's to use this discreet path to go to put this on the right. And then you might have to translate back again. And up to this kind of discreet homotopy is like, if you want really, like that B goes over A when they turn around, there's only one way to do this. And that's gonna be your braiding in your category. So they actually, in an ad hoc way, we could define the braided model structure directly on the homotopy category. Okay. Right, so in, let me say also in that in dimension two, like working with DD2 or its homotopy category, it doesn't matter that much because they're actually equivalent. It's just like this fact that in configuration spaces in dimension two are K by one. So in the end, I mean, there's no higher, actual higher homotopies, but in higher dimension, it's not anymore true. So we should stick with this DDN category. So yeah, maybe a remark. In dimension N, we have like EN monoidal N1 category. And it's not equivalent to its homotopy category while it is in dimension two. Anyway, we'll see in the end that the specific examples that will solve the conjecture actually factors through the homotopy category. Yes? That's for a fine minute of the conjecture. So sort of the interesting thing is this, if you fix this R, right? That's kind of the model here. Yes. Do you know what the, that's got pointing locally in this W of U? What's the co-limit of, if I pick my R matrix, what's the co-limit of R? Like what does, do you have a guess of what element in? So the co-limit of W, what is WR2? Is that the question or? What is the R, what's the, what's the distinguished point in the co-limit? WR2, yeah. It has some meaning. This WR2, you want to describe this space? You consider not an all I, but the partition function. Oh, that's just a huge product of R's. I understand that. No, it's kind of a unit or not a unit. Is it good at the unit or is it a thing? Okay, you get some square of this, yeah. Immediately, if you picked R to be zero, you'd always get zero. If you picked R to be identity, you'd always get identity in there. Yeah. So you do this thing, but if you pick interesting R's, which is picking an interesting vertex model. Yeah. Do you have that sense of how to figure out, I assume this is like a change in. I think it's n or operations n equals zero. Yeah, it should be unit. It's going to be infinity algebra unit, nothing else. Yeah, yeah, yeah, it's going to, but typically if you take the arm matrix to be zero, in the end, this WR2 is going to be zero itself. Because like you're taking a collimate for zero map, I mean the collimate is going to be zero. So, and in general, if you take a non-invertible arm matrix. W is this vector in this vector space? Yes. WR2 is a vector space. Now you get vector space is the element, it should be unit for all. It's the unit in the C2. Yeah, yeah, it's the unit of the C2. But W is the name of the space, right? Maybe that's where it would. Yeah, I think I'm a little bit, well I'm interested like where the interesting part of the physics is. This is all like linear algebra. Yes. Yeah, happening with the partition function. So, the partition function is the unit for the E and algebra that you're constructing. Then the interesting thing is if I start deforming it to see how that. Sorry, I didn't get. If I start deforming it somehow to see how it changes or something. Is that correct? Yeah. You have some? Okay, sorry, I'll speak. Yeah, I have to say that I'm not sure I can say what is the interest. What's the actual physics content of this? But- No, this is kind of formal deformation theory, but it's like the normalization upside down. Yeah. Yeah. Anyway, so now the goal is like let me make a small digression for why, like how we can produce E and algebra from these categories. So, maybe, like there's a general way of constructing E and algebras from, let's say, lax E and monoidal factors. So, there's this general principle that's like if you have C and D to E and monoidal, like infinity one categories and let's get F a lax E and monoidal factor. Then the column of this factor is an E and algebra in D. So, one way like which is quite pedantic, but which will be actually useful to reformulate this is as follows. So, like we have this factor C goes to D, we have the terminal factor to the point category, and actually the co-limit of F is just a left-hand extension along this. So, like if we get the left-hand extension of F along this terminal morphism, what we get is it's a factor which send the like the unique object here to the co-limit of F there. And like the yoga of con extensions works if things are structured, namely with actions of operas. So, in this case, if F is E and monoidal, I mean this factor is obviously E and monoidal, this one will be lax E and monoidal. And like, I mean an E and algebra in D, that's tautological, it's the exact same thing as an E and monoidal factor, a lax E and monoidal factor from the point to D. So, that's a way of, I mean that's a very pedantic way of saying what I said before, just it's going to be useful for computing co-limits of factors in several steps. So, let me actually give an example of this, which is the one that we're interested in. So, assume that C is this category of discretized disk, we get some factor F here, and assume that let's say D is any actually in three one monoidal in three one category, but let's say it's complex, it's a category of complexes. So, like here I have the factor two points, and I'm going to go to point in two steps. So, first of all, I'm going to take the function here from DDN that goes to this category, which is essentially the classifying category of Z2. So, it has one objects, it's morphisms are just like generated by Z2, you could put, well, oh that's ZN here, and you could say that there are like homotopes, like instead of like things which commute strictly that would commute up to homotopy, but actually these things are equivalent, so that doesn't matter. And then there's this here. So, if you first compute, so when you compute co-limits, there's a kind of Fubini theorem that tells you that, like if you compute can extensions here, like you can compute it in two steps there. So, first of all, you can compute the can extension with respect to this function here. So, what it does, like if you forget about the ZN action, it's just this co-limit when you get bigger and bigger, and this is a filtered co-limit. So, taking either the co-limit or the homotopic co-limit, it doesn't matter. So, in the end, what you get from here, it's really like F of R2 or RN, and this thing is just like getting an object in this with an action of ZN. And then, when you take the co-limit along this, that's just taking homotopic co-invariant for this with respect to this action. And if you work with complexes, what you get is really change for the ZN action with values in this, F of RN, right? So, whenever you have an E-n molecular function from this discretized category to let's say complexes, every time, so the upshot of this is that change in ZN with values in F of RN, this is just another name for the co-limit over all use of F of U. This gets equipped with an action of the E-n operand. Okay? So, you're regarding complexes like U-pennedy algebras? Yeah, yeah, so complexes like this isn't, yeah, that's the infinity one category of complexes, yes. It's symmetric monoidal, so in particular, it's also E-n monoidal, yeah. Okay, so in the end, the last thing to check is that we do have such a function. And indeed, if you look, W is an example of an E-tun monoidal function from DD2 to complexes, and it's even a strict E-tun monoidal function in the following sense. That's actually, W does not depend on the higher homotopies, so first of all, we have DD2, we can go to its homotopy category. Well, again, I'm doing things in dimension two, so in this case, they're equivalent, so it doesn't matter so much, but in higher dimension, actually, it does matter, but with this specific example, it factors through the homotopy category. So it's a nice one category, and like the W, the construction that we have with W actually land in vector spaces, and the construction is completely monoidal, strictly with the two monoidal products, the vertical and the horizontal one, like W on the disjoint union of guys, you just declare that it's the tensor product of W of each guys, and all the computation we did is compatible with everything, and then you embed vector space into complexes, as complexes concentrated in degree zero, so that's an E-tun monoidal factor. So in the end, it gives a proof of the conjecture that chains on W or two, gets equipped with an E-2 algebra structure. So maybe before I stop, I'll give you a few remarks. So why exactly are you doing this for an equal to two? No, that's just for expositioning, it's just easier to explain things, but it works for n equals whatever. Yeah, for any n, it works. Like a bunch of remarks, the first one is that actually if n is greater or equal to three, because like this specific example factors of the homotopy category, the homotopy category is symmetric monoidal, then because like E n monoidal, whatever, for n greater or equal to three, for strict one categories, that's just symmetric monoidal. Vector space is symmetric monoidal, so actually this is a symmetric monoidal factor. So in this case, if n is greater or equal to three, then, and that was actually some, I didn't expect that. We get that this E n monoid, this E n algebra structure is actually an infinity algebra structure, which was quite surprising to me. Sorry? Yeah, it is because there's basically no room for homotopies in this specific case, like because of course if you take an H and V being complexes and R being some kind of monophysm of this H tensor V as complexes, then there will, it won't be true, but if your H and V are concentrated in degree zero, like there's no room for higher homotopies actually, for the commutativity and it will be infinity. So like the question, I'd like to see an example and a natural example where in higher dimension, like this would produce something which is not an infinity, but E three or whatever. Maybe like, I don't know, other question I have is that if the R matrix has special properties, like let's say, let's say assume it satisfies the quantum Young-Baxter equation, I have like, what does it imply in terms of this E and E two algebra structure? I actually have no idea. And also I would be very much interested in other examples like maybe non-topological ones or something like typically examples I would like to understand very well very much but I didn't get any success up to now, is that if you have like a half space and like you take the hyperbolic metric and you have a kind of graph which is with geodesic, that there are ways to write kind of discrete models for this and can we get some kind of Swiss cheese algebra or things like this? Okay, lots of questions, but like for the moment, no, not many answers. Okay, thank you very much. Yeah. Remarked? Yeah. There was also some similar, at first I don't believe this in the course of your story. And second, there was kind of similar trouble with inductive limits and similar stuff. And at some point, it was Young-Sergeant and Roper paper about categories, whatever. And we didn't want to go to foundations and we kind of moved by some flow, like assumptions of the intersect, and if they're not intersect, we don't just don't define anything to product it.  And so there's also kind of axiomatic part to define the infinity thing with some flows. And then you can approach somehow that it's equivalent to infinity algebra. In fact, it's presented today, which I thought was internal to be used and make me think it's kind of similar trouble maybe even in the mission one. That's the long and sense here. And second thing which I want to say that I realize that in a few young generations, probably don't know because I didn't really read the book that came in, I have to say, there's a kind of, for example, this question about the formation of QFT, yeah? Well, it's not free, but we start with like, conformed fields sooner than anything. I have, for many years, I have an answer and maybe I can share with you. It's really one line. Yeah, sure. Yeah, just because I think it was never able to write it in proper paper. I think it's just... This is a formula. Yeah, so suppose we get after the species gets some spacetime, manifold, on which we have a pleiadium theory and we get to each point, we get some vector space and for if you get a i, ctkp of xi, the intellectual points you get correlated, yeah? And then we get some opi for this guy, so when this space is kind of filtered, it's union of vx that's by dimensions, should be interesting, yeah? So, of course, a little picture of opi. Now, suppose I have, yeah, so it's mentioned, this thing is given by final intervals, the interval of this element of some action to the product of some sort, that was roughly a good story, but no final intervals get conformed to this theory and now I'm going to deform action, replace action by action plus, that is small parameter, that the s, and that the s will be interval of Lagrangian, yeah, it will be integral of certain field Lagrangian, that affects v dx, v dx, we get kind of top form, that's where this infills, it will be about the end of this complex of chains, or bushes, and so on. Now I want to write new correlators, and the formula, it's kind of magic formula is a formula, so for the new formula to be series in a bar, it should be usual stuff, plus and correction, for the right formula, it's sum of m, where it is in zero, one of n factorial, and make integral of what? Now what can make integral, maybe we want to have make integral of a correlation function product of f i x i, we've got Lagrangian, I'm going to write j, we want to get the m, d, d, n, this will be what, maybe we should take this integral, this integral is divergent, yeah, yeah. Now, now what we do, we integrate over, we make kind of integrated things, first we, suppose we have fixed all points except y n, and the engineering, we integrate over y n, which are from d with some distance epsilon, and x i and all previous, then if you guys can't come back, and don't consider artificial things, you get divergent integral, you remove the small balls, it depends on epsilon n. Now we take limit, and by limit, I'll take, take a constant term on a synthetic expansion, so this is a power's logarithm, just, it's a constant term, to be limiting appearances, you get function of the rest, integrate all previous points, in the future, in the future bit, and the claim it will be, the formula for the particular theory, and depends on the series of, the sinc center if you change the metric, you get, how would you get the e n, e n structure? No, no, no, it's not the n, if you get logarithm to n epsilon, and you get constant term, no, no, yes, it's the constant term, it's not invariant by relation six, but it's kind of, it depends on the definition of limit, it's going to be some, linear function or function switch, have continuous limit, should get the limit to zero, in a linear functional, okay, and it will be some kind of, choice of formal coordinates, in the neighborhood quantum field theory, and if you choose the different limit, you get identifications, and then we can extend to e n algebra, and if you change the number six, it's just plain deformation theory, yeah, it's sufficient. Do you have any other comments, question? I had two other questions, one thing you do is replace, vect by some other interesting, even like say a braided minoidal, category or something in certain settings, or just like g-vect, or g-aq, or something, do, have you thought about it? No, I'm kind of lacking examples, like, I don't know, I would consider kind of fake examples, I would be interested in, like these models with R, I mean, they naturally show up in statistical mechanics, I would be interested in seeing like, yeah, examples that show up naturally in, I mean, are these lattice theories that are supposed to correspond to the sort of three TFTs we learn in math? Yeah. I mean, have we tried those? No, no, no. Like with Germany-Felder, we have a different approach to a lattice gauge theory in dimension two, and like we recovered basically the McDowell-Witton renormalization stuff for this Younger's theory in dimension two, but like, it's completely independent of the shape of the lattice, while here, I mean, because of the z to action, we have to have a square lattice, for instance. Yeah, there are also questions like, instead of vertex model, there's this model that we've, I think we've seen them this morning, with what I call IRF model, interaction around the face. I don't know. I think it's sort of the same. I think it- You put tensors at my basis, I put a lot of zeros in this tensors, and you have the same stuff. The thing is, there's D2, I just don't remember, does it have like sort of an empty set in there? Yes, yes. Is that where the matrix of R is being hidden? Yeah, so like the map from empty guy to any open subset, that's gonna be putting R's everywhere. So that, yeah. That's the partition function, basically. Right, so the color of like the W part, ignoring the R, is easy to compute, but like where, so you get some big, you get some E2 algebra, but you would think about it being sort of the same thing for every trace of R, but the image of R on the color, it's sort of moving around, right? I think the W part is just this big combative endomorphism of some big vector space. Yeah. But like, no, no, R, it's gonna be a huge product of R's. It's not gonna be one single R. I understand that, but the big, the E2 algebra for the underlying chain complex, in this case, is vector space, it doesn't change that you change R, right? No, no, that's true. So what I'm asking is, as I vary R, do you know how that changes inside of there? They change R on just the single vertex, how that changes. So I thought in the column that you take R as the map on all the vector space, right?  Like, if R is invertible, and if R is zero, you get a very different column, it's, yeah, so yeah. Yeah, yeah. Okay. This thing is filtered by pieces, by kind of like radius of domain, and the gross, like a dimension of filter capon goes to the spawn of size times dimension minus one. Yeah. And in conform field theory, you can see filtered by dimensions, it's the same gross, yeah, it's the same, yeah. Oh, we can see the volume of the volume of the ball, that volume of the ball to power N over, whatever, D over, D minus one over D. And like in conform field theory, these things goes like expanse of square root of energy, yeah. But it's a similar story, just inductively.  Yeah, you will. So I've got two torques where you get. You should really give me like a, tell me of vector space, and as I vary the army tricks, like I get a different set of numbers, what will click to you? No, I'm pretty far from being able to compute in variants of white surfaces, just from this. Yeah, but also just want to say that it's, these things could be zero on zero, it should be, there are universal Turing machines, which can put on this already two dimensions, this dials, and these things is kind of algorithmic, non-compatible, yeah, so the gross could be very, very slow.