Not a lot of people here yet. Let's, I guess give it a couple of minutes. So I think Jared was going to try to join also so a lot. Doesn't appear to be online at slack right now so I guess we can. Yeah, maybe as, as these meetings usually that you're the first couple of meetings on a lot of people show up. It might be beneficial to set it out to the mailing list again because sometimes people get confused by them so just as in. That's a, that's a great idea. Um, so how that's the, the agenda here. Great. So there's not like a lot on the on the planned agenda right now. So everybody has access to the dock here. We'll go ahead and get started. The meetings being recorded will send out a link to it afterwards. But like I mentioned, there's like, there's no announcements. There's no like planned like items on the topic. So like, let's start off with, you know, kind of like putting the agenda together for the meeting today. Does anybody have anything that they they want to discuss they want to add to the agenda. Like go ahead and just add on to the dock or talk here. The only that we could add is the existing document about the operator definition that I could throw in maybe. Because I wasn't the first goal. Yep. Let me just find it that everybody has it. Dropping into the Docker. Yeah, I just had to open it up. Drop it right into. Just give me a second. We can share and discuss what is already there. Just one more second. And here we go. I can actually share my screen and we can have this dock up just in case anybody doesn't have access to it right now. So I'm sharing it. I have the dock up on the screen here. Everybody can see it. Okay. Awesome. So I think, you know, like the goal here is to continue to to define, like, you know, what what what an operator is, I think that's the first step. The word really, you know, but do do much else. Like what's included in an operator what's not included in an operator. This is like a doc that's been going around for a while. So I think everybody's hopefully had a chance to read it. Like, you know, I don't know if like, it's definitely not something we're going to like be able to like solve today on this call. But like, I think we should like continue to push forward on like the discussion and see what, you know, if anybody has any more, any further thoughts on it. Well, hey, folks. Yeah, my friend here. I actually have a lot of thoughts on this doc. Some of them I've put in it. I was looking at it again this morning. What I've noticed here, and maybe it's me, the question was originally asked. What is an operator, right? That was what was asked from the TOC to SIGAP delivery. But I noticed that the doc gets a lot into things that go beyond that, such as a capability model. And the capability model came out of the operator framework. It hasn't really been worked out with the other operator projects. And it also isn't something that was actually asked of anybody from the TOC. And so I think maybe looking at what they actually asked, like what is an operator, all the nuances to just kind of define what it is and then explain that. I think that's what they asked for and this doc kind of diverges from it. So that's my big level thing. I think this document had the purpose of collecting information that was already available out there on different levels. And part of that definition was also what capabilities an operator should provide beyond the pure technical ones. And that's why this made it in there. And I don't think we have to live by the word of everything that we have been asked to do. But also provide what is needed by the community. And when we discuss this, we had certain discussions, especially around what separates an operator from a controller. And that's why we threw it in there. This doesn't mean, however, that out of this definition, we need to have a capability model in there. We just put it in there when it comes to capabilities because beyond the operator model, there was discussions. Should it only be stateful or non-stateful workloads? So that's the reason why it's in there. So nobody said we're defining an capability model. So let me ask this then. So if this document captures a whole bunch of things, is this the document that we are planning to pass up that kind of explains here's what an operator is. Here's the outcome.  This, as currently stated, is a working document. And as such, we are working here. We can rename it. If this makes it more clear. Yeah, because, you know, the working document that captures lots of things is different than kind of the output that answers the questions. And that's useful for people who walk away because the general person is not going to be as involved in this conversation as say you or me. And they just want the outcome in a short concise manner. But a working document that captures lots of things and links out to it, maybe has long form explanations. That entirely makes sense to capture all of these things. But I would suggest that a capability model maybe something that should be gotten into, but I would separate it from the definition. So that way the definition can get out there quickly. And these kinds of things that probably should be discussed with lots of different operator projects. Kudo operator framework and the other ways of doing things. We'll take a lot longer to get through and it may change drastically by the time that it comes out who knows what will come out from those long form discussions. My understanding and my hope is that this document is that working document that we kind of like think of it as the all encompassing things that may make it into that final like definition of an operator and then we can distill it down into that smaller. Like, this is actually what the definition of an operator is and if the capability model is or is not in it I think that's a decision we make but like, like we should definitely include it as like a candidate to make it into a into the into the definition over time. I don't I don't have an opinion about whether or not it is part of that but like, you know, right now I think it's like, like data collection mode what could potentially make it into the definition of an operator before we can actually figure out like what what the pick is like this is actually what the operator is defined as. Yeah, like if like, maybe we just break out like a sources or prior and sorry sorry everyone I had the wrong calendars turn on. So prior art or like research section here just to make it clear like, like this is just stuff that we are taking lead from right or just telling him because I am of the mind like maybe this is not part of the like we have a separate goal to like build a maturity model or like think about maturity models or just consider those things that only is part of this but you know there's definitional stuff that's in this capability model that we may want to refer to when building out our actual definition. I just linked the actual definition by the way that it is currently in the Kubernetes definition and the communities documentation just put it in the agenda so we have this one there as well. Yeah. And I think, like I think we're the reason that we're here is because like this current definition that's in the Kubernetes documentation is somewhat vague and lacking and so we're trying to like. It actually covers it, but it actually covers the capability model because if you can you can you bring it up because it says like deploying an application on demand taking and restoring backups of the application handling upgrades, publishing a service application that don't support companies API to discover them simulating failure and all parts of the cluster to test this resilience. So there is actually parts. Yeah, exactly this piece of so we have it currently in the communities documentation. As examples. Well, it doesn't actually say this is the capability model it's giving examples of what it might look like to do that and it gives examples here but it doesn't actually say what it is, which means logically that this could be. It doesn't mean that it's everything that's inclusive, or that it involves some kind of structure for a capability model. I think it's just trying to paint the picture of what this might be, not list what it is. It's trying to paint a picture rather than fill in all of the details. And, yeah. Yeah, I mean I think that kind of comes back to the same conversation that that's, you know, like, is an operator like, is it a CRD or or is it not a CRD doesn't doesn't require that an operator includes a custom resource definition and the controller that runs in the cluster to meet the definition of an operator it's it's kind of in that same, like encompassing area of like the definition of an operator right now. So if we look at the the original definition that came out of chorus when they they defined it. Just like I find this. So the original definition. Brandon Phillips and and chorus said an operator is an application specific controller that extends the Kubernetes API to create configure and manage instances of complex stateful applications on behalf of a Kubernetes user. It builds upon the basic Kubernetes resource and controller concept, but includes domain or application specific knowledge to automate common tasks. And that right there kind of has a I would argue three specific things that make something an operator. First, it extends the Kubernetes API. And if you look at extending the API there's actually two ways to do this. You can use custom API server, which is what the service catalog project did and that's from before we had CRDs or anything that created that right. You can do that, although it's really really hard, the much easier and more common path to do that is with CRDs and custom controllers and that kind of thing. And so I would argue if it extends the API and probably either one of those ways, most likely through CRD because it's easier. Then that's the first check right does it extend the API and if you have a controller that never extends the API at all. You probably miss that chuck box. I mean it's right in the definition of it has to extend the API and this builds upon the other parts because really what you're getting into is the declarative model. And in the declarative model you declare what you want and then the system works to make that possible.  And so if you don't have that extension, you're probably not an operator. The second thing that it gets into is domain or application specific knowledge, and it goes on to say that it has to define common tasks, right. And so you need to look at does it have it. So if something like meta controllers my example is something that's a controller, but it's not an operator because it doesn't have application specific knowledge it's a controller that actually helps you build other controllers, but something like one of the postgres operators that has application specific knowledge for postgres. Well that has application domain specific knowledge in order to accomplish something you're not going to be able to use that operator to run. I don't know WordPress or something entirely different because it's only targeted at that. And what are good the third thing is is it needs to manage instances of applications on behalf of the kubernetes user. So you know if I'm using kubectl and I want to deploy my sequel right. I have to know my sequel I've got to know the ins and outs I've got to run commands I've got to craft the files and do that kind of thing. I actually have to know kubernetes and I have to know my sequel and I've got to know the business logic and marry it. And if I want something to happen or change within my cluster like backups things like that. I actually have to go create the cron job or else I'm going to do right. You have to deal with the business logic side of that. But an operator, it says, I'm going to capture information about that application, and then I'm going to manage that application for you based on what you've done for me. Do you say you need to have so many replicas and ha do you want backups okay give me your schedule for backups, however we want to do it. We're just going to make it happen and we manage that for you. So you don't have to think about it. Right. Those are kind of the three big things that were in that definition. And if you use that definition and you basically rip out the stateful set side of it, or the stateful part of it. Right. And you just take that out. You've got those three criteria right there and you can actually write that out in the long form. And then you can test anything against those. Right. The Postgres operator and meta controller easy things to test fluxes was brought up the other day on the call is kind of that hard one to test and basically I've written up what that would look like. But this is one of those things like it's there playing his day as long as we just expand on that definition, and then we're not breaking from it we're not trying to greenfield our own definition, and the details are there. So at least that's my two cents on this, and you don't have to get into the capability model that's a later thing we could do a we can respond to the TOC in short order, both with a short form definition and an explanation. And we can move on to the other things because that's what they ultimately asked for.  Yes, it's good I agree I mean that's that definitely is the current definition of an operator fluxes definitely an example of something that's kind of you know, in a weird place like it doesn't extend, you know, the Kubernetes API directly I don't deploy like, you know, like the flux helm operator get is a different, different beast. But, and I think that it also like comes down to like you know managing an application from an operator perspective shouldn't be like a one time like install right like, like, like, in using an operator to deploy postgres is different than using an operator to manage the lights to manage postgres running in the cluster and make sure that it like, it continues to work right like, like, monitoring like making changes to parameters that are necessary and things like this like operators for install versus operators for runtime. I was just going to ask in our defining operators to respond to the TOC and to share to people. Do we have to get into the nuances of what the common tasks are. Is that a requirement of providing an explanation. I don't know if like a requirement, I actually I don't think that a requirement is to define the common tasks but to like to like to like define what areas of the life cycle of an application that an operator like is potentially or should be responsible for is it is something that just installs an application and then done and it never touches it again is that does that meet the definition of an operator or not that's a question. If something that just installs an application. So if we go back to let's go back to the definition because I think this is wonderful. The definition says it says includes domain or application specific knowledge to automate common tasks right and so the question is is by something that just installs an application and never touches it again. Is it actually automating common tasks. We consider on and argue whether it is or isn't I would actually argue that it's not because you're not getting into the common tasks. But do we need to answer that question in some form of long form description in order to respond to the TOC on this. Do we have to share Divini any you want to jump in on any any kind of. I think right now we do with how we we we've not written it down so so either we're not being specific enough right in in the exact terms we mean but because I because I do I do agree like is it is it enough for example to for for for definitional like like let's just let's apply the test right to that that definition is I'm going to just I'm first going to pick on pick on Helen but is tiller an operator and because in actually that's a bad one that's wrong. No tillers not an operator and it's not a custom controller anyway. So it's an easy one. Because it's not a controller. Yeah. And it's also not application specific. It's not targeted at something like Postgres to continue my example. It is a more general thing. And so it fails that test as well. Yes. So it's okay. So certain manager. So they're not calling themselves an operator right now under this definition is what we consider certain manager and operator. It doesn't manage an application. So it manages certificates. But it does extend the API. It is a controller. Do we have to answer that before we have a definition like they don't brand themselves that and not all things that are extensions to the Kubernetes API are in fact operators. I agree with that but but our we should be able to apply a litmus test to our own definition before we even internally we don't answer it to the to see but we should we should ask ourselves that like like does it is our is the wording we're using our definition specific enough before we pass the definition so that we don't have to be long for because I don't want to go long form, like if we don't have to. But if we're missing specificity in what we're saying, and too many things in our in our own like gut check before we pass it that's going to cause questions and stuff. Okay, let's assist though. Let's assist them. Um, does the does it extend the Kubernetes API. Well, the answer to that is yes. Right. Um, does it contain application specific knowledge. The question is, so what is the actual application here. Is it their own custom application, which is something that it also manages. Hey guys, I have a good question for me. Yeah. So I'm a new one here. So I'm kind of wrapping my head around. So yeah. My question here because I see both arguments and the old body but the question here seems to be is do we actually have to use the word application because that's the only thing that I see so far that is creating the confusion because when I does have a domain specific software that needs to have some knowledge in order to be operated, but it's not. I wouldn't call it application. Like for example, that's the only word that is creating completion, at least for me, maybe you guys can help. Okay. So, so the original chorus definition said domain or application specific knowledge. And I for one don't want to remove the or application here, because I think for a general audience, that's going to make that example more clear in their minds because they're going to start to ask, what's an application in my case for what I'm doing. And if you say domain or application specific, it kind of zooms in and answers it for most people, but it doesn't preclude the domain part of it. And so the chorus folks really I think cleared that up for us when they originally wrote it. So, no, that's great here. Does the dessert manager do domain or application specific stuff. Yes. Okay. And then are in this one is where maybe the hard one comes into are the the applications or the thing managed. Right. Is it managed by the operator instead of the Kubernetes user. Yes. Right. And so, so I like framing it as a question that can hopefully be answered yes no, and it can kind of be boiled down to those three questions. And maybe we've got to finagle the language a little bit of it. But if we can answer yes no to those and all three are yes, then it's an operator by their definition. Right. How it does it and to what level it does it are things we can debate in essence but it can be boiled down to three yes or no questions, I think. Yeah, but I think that what I'm struggling with, I think we're not in front of the chess here. We don't want to look at components and want to decide necessarily whether they're not an operator or not. And very often the question that I hear from people is, okay, I have built xyz on top of Kubernetes, whatever it is, should, and it's kind of complex to manage, because if it's just a very simple piece of work loads, usually people might not care. Should I build an operator to manage and run the thing or shouldn't I. And would it help me. And user perspective rather than looking at something oh this looks like an operator does this really matter. It's all the one thing I'm looking at it, but at the end of the day. One problem we need to solve as a community is making running workloads on Kubernetes less complex than it is today. And a lot of frameworks have not really done a necessarily great job at that. Like even at some point we just made it more and more complex like help for example help charts did not really make it easier to run stuff, except that you have just to apply 100 but building it doesn't make anything easier. And it doesn't cover certain things. So that's my point here. Who do we want to help. So, so I think there's actually two separate things here. The first is helping people who have that question. And I think that's entirely valid to try to come up with answers for them. But then there's answering the question that was asked to say gap delivery by the to see what is an operator, because what it is, and should I get into one. And then the third thing I would argue from what you just said is, how can I build a toolkit that's useful for people to help them move faster and make it simpler. So there are three separate questions for three different target audiences that each need their own response. And so the first one here was just trying to the to see back before the holiday break asked this question and now we're something like five months later, and they're looking for a response of what an operator is and so what actually need. Yes, there was the question that can was agreed that is part of the working group we want to answer questions that actually help people out there and just move beyond. And I get and I know what this question was asked. I was actually part of this conversation. And it came up as part of the operator have discussion. If you remember. I was talking about like installing applications. So, I think that these three questions actually go well together because if you have a construct there, like an operator, the first question is why does it exist. When you know what it exists and we can define okay what, how should it be, what should constitute this construct, like CDs controllers, whatever. The great one is then the next one. What it is today might be worth this. I guess what I'm arguing for here is the TOC asked for something, and we should probably give them the answer to the thing that they asked for, and then take the other two things that were brought up and look at who the target audience is and then craft something specific for them, because the definition of an operator isn't something that people are creating frameworks probably need to have. Right. And should I use an operator is kind of a separate thing. And should I use an operator is kind of for end users who either want to create one or maybe look at using an existing one, and then somebody who produces an operator is in an entirely different role. And what they need to think about is different than the end users right and so there's different target audiences. I totally disagree here, honestly, but I have never built any product in my life that it did not first thing of what I'm going to use it for and then this feels like we talk about technical constructs that exist on the cloud case Kubernetes like CODs and operators and by the way keep in mind that technically everything we do is cloud native so they should also work outside of Kubernetes while we're not focusing on it right now but I could build like, so even something like the current operator like a file definition and something that has a reconciliation loop running on top of it even with lambda and CNS three bucket conceptually the key question for me is why does the thing exist and why should people be using it and then what falls into it for and then I'm thinking about the technical details. It feels a bit weird just take the technical concept and then later on finding the use case for it. And I'm actually not arguing that I'm actually arguing there's different roles in this whole thing. Okay, and so I'll take helm for an example you brought up helm. And so with helm, it's a package manager right at its heart. It is a package manager and I like to relate it to something like apt. And so with apt right somebody who has domain knowledge of Debbie and base systems and domain knowledge of an application puts together a package and then distributes it and somebody else who doesn't need to know intimate knowledge of those Debbie and base systems or of operating that application can install it and get it up running quickly and use it right it's a great way to share applications and make it easy to install it's why use apt get install all the time on my systems without actually knowing all the intricacies of where files need to go in the binaries and all this stuff. And that's kind of where helm comes from but if you break that down. There's two different roles. There's me as somebody who's producing the package and the knowledge I need and the considerations I need to have. And then there's somebody who's going to be installing it and the role they have where they need to discover the package is be able to evaluate them and install them, but they don't need to know the intricacies. And some people are going to wear both hats. Right. Some people will wear both hats where I'm doing it. We used to use apt where I used to work to manage our own deployment workflows in staging production and things like that and we needed to work both hats. But the common case is you still have these different roles and sort of think about what you produce for those different roles and what's useful for them and not trying to put them all together because you know, then you're starting to mix things up and you've got to pick what's for me and what's not and where do I go into what level of detail, but actually crafting things that help people in the different roles where they're at. I think that would be useful. In our case I've listed to here who's the the operator consumer who's just going to install it and get it up and running. Then there's the person who's producing operators those are kind of two different roles. And then of course in this case because there's an answer from the TOC there's answering that TOC question. And giving them what they asked for as just even a point of process, because I think they're still wanting that but I don't know if there's a to see no there's no to see member here to answer that. But even giving them as a role as somebody who asked for something in us, giving them what they asked for. And so those are kind of the three things that I at least was thinking of how do you give each of those their thing. So, so I'm going to chime in here, especially on that last point or at least to start on that last point is that we can to the letter give the TOC what they asked for or we can give them what they need. And what they may need more than a strict technical definition is they may need. They might really been asking the question of okay help us really define why operators are valuable so when I think about this and I've been listening very very carefully here trying to form some opinions and if they're still not quite formed but the operators are a way of having somebody be able to package up a capability and for a different constituency to be able to consume that capability at the core. That's what an operator is. I like parts of the definition that you drew out from the original core. For example, love the fact they extend the API one. I think that one's pretty important. I so I think that there's elements of that definition, but I tend to also want to back up and say, Why, what are the problems that we're trying to solve with the operator before we start defining what it is so. So I guess I'm lending some support to you a lot. So, let me ask this, are we do we get to define what an operator is, or is it something that is already defined in the market, because we aren't greenfielding here. And I think that's that's one of the things it's not like we get to decide what an operator is operators have been in the market for years. And maybe they need to be described and it need to be written down, but it isn't new. It isn't we're not the creators of operators. I think that, like, that's true. But I think like the goal here is to better define what actually is an operator so that we can kind of put like, like, something that maybe currently called an operator actually doesn't meet the definition of an operator. And therefore, like, as as as a consumer of that operator I don't expect to the same functionality the same services that that thing provides because it's like it's not the same right now right like, I might look at helm and tiller helm v2 and say, that's an operator because it's actually like to me it creates this abstraction around the Kubernetes API so I can just run helm install and helm upgraded to manage my charts which are applications and that's an operator. But like, that's not an operator I think Matt you agreed to that point you shook your head pretty emphatically when Jared mentioned that helm might be an operator. Being able to say look helm, you might think of helm as an operator but it doesn't meet we fit into this bucket of what we what we in this group define as an operator means like you shouldn't expect the operator services and operator functionality and you shouldn't expect as a consumer for it to fit into like other tooling that are built around the operator ecosystem. You know, defining it is definitely necessary here we we we don't get to define like what people are going to create but we do get to define like this label operator that we get that people can kind of like slap on and say like this meets the definition of an operator and that's that's what I think here. And even to the installation like one that I can see sometimes people just use them as better installers to do some extent it just use it to install complex application but like one key aspect of an operator for me is also the reconciliation look like a dynamic piece of it. It's just not a system that simply installs something and then the scare was what happened it actually jacks that that's something happens because it's actually for just doing a cute control apply. Let's go back to like the very basics and I'm just applying a yeah but I don't know whether this thing is even working out. So it is the basic primitive of the platform but I'm not sure whether anything happens. So, yeah, I want to think about it. I think that comes back to the including in the definition that it's like it extends the Kubernetes API and it has an in cluster controller, or I don't know if maybe in cluster might be too, too, too broad there but like, it seems to be the common use case but like a controller which is continually running a reconcile to like to manage that application. So, so the thorough loop here, let's let's take let's go back to our home example. And bring up, I'm going to bring kudo into this right because, because, and my question is, does this have to be a singular holistic unit, because for example, kudo can then start to bring in a reconciliation loop and various day to a helm chart right eventually to a CNAP bundle, everything else. So, is that combination of things that installation of postgres with from a chart with a kudo, you know kudo lifecycle around it. Is that now an operator or is it not because it's not a single controller that also knows about postgres. So, so let's get into this though. So, we'll ask the question with with the chorus one and then maybe debate it right does it extend to the Kubernetes API. All right, does it. Where are my questions. The it now becomes the question. What's what's the it. In the kudo example is domain or application specific knowledge included in kudo. I mean, what is what what's the application is it the application that could that the operator that was written in kudo is or is it the the the kudos like a meta operator right like it actually like is it has the application and the domain specific knowledge of how to like create and run that operator inside the cluster. Jared, is that a fair. Exactly. Exactly. Yeah, it's so. So if I understand it right what you're saying is kudo itself is not an operator, but an operator created with kudo has extends the API and contains the application or domain specific knowledge right. Yes, now that that that said it in some cases it only contains domain specific knowledge right because it's bringing in an external helm chart. Sure. And then you've got to ask our common tasks being accomplished. Right. And their language was to automate common tasks. That's the language in the chorus definition. And so would common tasks be done. And so in this case a common task might be will say Postgres install upgrade delete. You might do backups. Can those common tasks be accomplished defining common tasks and that's also what you have the capability model. That's right now. More specific what the common task is because actually back to the previous point of certificate management when you get certificate is a common task. Updating a secret is a common task. Updating routing rules is a common task. And the common tasks are going to be different per application or domain area. Right. I think that's one of the things we just caught because doing cert manager is going to have in certificate management is going to be an entirely different set of common tasks from something like Postgres. I hadn't thought of that before. That's why I think defining what a common task at least by example is and I think that's what the capability model did in the past way beyond that with like sales managing and so forth but defining that what is a common task at least that we have for community service. So we could give examples of common tasks but I don't think we can define them because to define the means we need to know all the areas and certificate cert manager or yeah. And Postgres operators are going to have you know database operator they're going to have different sets of common tasks. And I'm sure there's so many different applications out there with so many different common tasks that it's probably not useful for us to define the common tasks because we're not going to know everything to be able to define everything but providing examples of common tasks to illustrate them for people may be very useful. Yeah I don't think that we're going to be able to like provide you know an exhaustive list of every possible operator an operator could could meet right because like to your point like every applications a little bit different. There's a common set of common tasks around like application lifecycle management which like an operator doesn't have to necessarily like implement but you know kudo when I write an engine X operator using kudo like it may be that that operator is just installing and upgrading engine X inside the cluster. Does that still meet the But it's also going to if you break out of the application as we talked about earlier to the domain, you may not have the simple install process. Right. And I think cert manager brought up is a fantastic example of that.  It's more domain area that application and so do those common tasks hold when you break out of the application model into the domain model. Yeah, I'm not sure that that that's your application need a valid search to be there or if you're using let's encrypt that's a whether that's encrypt operator which would actually make a lot of sense by the way to have a let's encrypt operator that would automatically with you my certificate. Matt though to go to your, your point to like I mean the CoroS original CoroS definitions that domain or application specific knowledge not domain and application specific knowledge so like in this case like I totally agree with you there's a very different definition between domain and application and like this engine X kudo example is like it's kind of like it's not a very full featured operator but it still meets the definition there. Let me ask this to actually create a definition. Do we need to define this because I know we could take a long time defining and thinking through all these things in order to create that that definition is it useful for us to go down all of these roads or just to consider and give some examples of common tasks and move on to some of the other things like the role of as a consumer of an operator should I use one. Right and move on to something that that targets that role and provides them with the contextual information they need to say okay, should I bother with an operator in this particular case, how can I myself figure out if I should as a consumer of them, and that may be. It may be useful to just switch gears into that instead of spending lots of time going down this whole. I think the answer to that question about whether we should have to whether we should include that definition kind of comes back to like should is should the definition of operator be like this really wide umbrella that covers like everything that like sits inside the Kubernetes cluster that manages other applications. Not like it's not a final application or should it be a very narrowly targeted like very specific thing that says, like it has to extend the Kubernetes API has to include domain or specific knowledge. Like the original definition says it has to be stateful components that doesn't feel like, I think we, most people agree that that could probably get removed. And does it have to have an in cluster reconcile controller loop that's running to like manage the lifecycle or instead of just a one time process of like managing these, like if we if we start with saying like is that the definition of an operator that's that's you know, kind of relatively broad but like it excludes random things. I mean, if I take out stateful stuff from theirs, it seems pretty still solid to me, because if I go and start extending it further. Then you have a hard time of saying I've got a random controller and some CRDs, and it doesn't do anything that's domain or application specific. Is it now an operator. I actually agree. I think that's a good starting point to the definition. I think that like, the only one that I have some doubt still about personally is like an in cluster controller reconcile loop is that a requirement to be an operator because like as you know could control extensions are being like more and more like, why be adopted and you're seeing those more is it possible that you could actually have something that runs as an operator that's invoked through a control plug in as opposed to like running inside the cluster. So is in cluster required as the reconciling. Reconciling cluster. Yes. Reconciling could be out of cluster, but the reconciler needs to be in the cluster. I personally think that it has to have a reconciler. And there has to be some reconciliation. I think this is a great topic to dig into and so so let's get to the heart of this kubernetes is a declarative model right you declare what you want and then the controller takes that in attempts to make it so and provide status on that situation. Right. And so if you move it out of cluster. Right, then where is the thing that looks for the changes that is reconciling and making the necessary changes to say, Oh, this no longer matches. Now I'm going to update in kubernetes that tends to be the controller whether it's custom controller whatnot, looking at events. If you've got something outside of the cluster. It is no longer watching for events it's no longer watching for changes on an event loop that does that. And so, in many ways you've broken. Oh, bring up one example where this is not the case actually please this is not this is not an operator but what we do for example, or you can look at his monitoring system that have run for automation enabled. They're not running in the cluster. None of these components does, but we look for example and then our goal more or less and we don't use any of these components but we will a lot of what an operator does. We look at response times of an application of the service when these response times go above a certain threshold. We automatically scale up that service or if one for their behavior with disabled feature flags. So we do a lot of what an operator does. We can do it directly with a cube control apply. So it depends on how whether the service is doing what we want to do going beyond just the instances running, but technically there's no component running inside the cluster. And is there an extension of the Kubernetes API and married also. No, I could. Well, we have, we have built it with extensions to the API. I can just have a monitoring system colon and simple script that doesn't keep control apply. And it's a question. Do you actually think that that's an operator? Do you want to call that an operator or not? I don't need to call an operator. It uses the operator pattern. That's the interesting thing for what it's done, but it's not a operator. Jared, you're first.  Okay, well, what I was going to say is, is this application or domain specific? I was going to ask that question. It is application and domain specific in both sides as we have to make application specific as those. And we have domains, the application specific actions like this, enabling and enabling feature flags scaling things up and down. So it is application specific actually the only one who can define it is somebody who knows that application. So the system is targeted at a specific application like Postgres and not applications in general. So I can't monitor some random application and say, look at the metrics for this and scale it. It's a general thing, right? Or is it a specific to an application or domain like certificate management? I would always have to define this very example where I'm using it for dynamically mentioning managing deployments based on monitoring data. It would always be application specific what I want to do it under certain cases. Maybe it goes beyond the scaling stuff up to get if it gets so I could say this is not application specific. So, so it's it's to the application specificity, not to the type specificity like you're not monitoring all deployments and scaling them. It's only deployments and you can relate the type of application running as the deployment and then do that. Yeah, we will have to know what it is because otherwise we wouldn't know the actions to take in. Okay, you're essentially running a controller, but you're running it out of cluster rather than in cluster is what you're saying. Yeah, and they have a reconciled loop as I'm monitoring and looking at the data. So I'm fulfilling all almost all requirements at a conceptual level, but not in the implementation level and I'm not claiming it's supposed to be an operator don't get me wrong. I'm just saying I'm implementing all the concepts we talked about. Conceptually just my implementation is different. Okay, I would like to point out one thing before I pass it off here real quick is operators become an amazing branding thing. And so I know lots of people want to put things into operators. I think it's useful to say what it is and what it isn't. But I also don't want to hope for more things to be operators to somehow fit into the branding bucket as part of this whole thing that just occurred to me. There's this desire to say, ooh, my thing's an operator to to use it as a branding and a thought and there's so many useful things that are not operators, we shouldn't try to go with that branding bandwagon, but that's me.  All right. Okay, I'm going to try to throw a quick quick wrench into this because I agree with what you're saying but you know there's something here that has a lot more possibilities to it, potentially, and it is okay well. So when we say reconciler right and controller what we really mean is a process that is watching again point that detects a, you know, is detects a level change, it compares to things in advance the state right like that's all reconciler is. And we have a baked in assumption at the moment that that is coming from that whatever the end points of whatever you're watching those resources. Now, let's say, and getting to marks like like running it from kubectl point or running it from your command line. If you have all the controller logic baked into a CLI tool that did all the exact same things, except the end user was the one say kicking off and there's other ways to do this of course but like, if I'm just hitting up enter up enter up enter on my on my computer over and over and over again, running one run of the controller loop control loop right event loop.  And there's there's there's, you know, some some things I've been thinking on and others here like they've been thinking about like where these operators like semantics could be very useful. Without being like in a event driven like we're event loop right like not being bound by that event loop and always running. Yeah, I mean I agree I also really quick point out like we're like at time for like what this meeting was scheduled for. So, like, it's it's an interesting conversation there's a lot of a lot of opinions it's a good conversation. Jared I totally agree with that point though like and I don't have an answer for you I think like that's just something that like I do think we need to define that to your point like we need to define like, I don't think like, we want to say like here's this like, it's a branding opportunity and what what might potentially be included in an operator there's there's there may be stuff that gets carved off and gets a different label and gets a different term that has its own working group and its own sake over time and like maybe the kubectl plugins is not actually an operator and in cluster control reconcile loops are actually a requirement. I think like part of our goal here should be to make that that decision though. And I guess I'll just leave when I think about what we should do and what we can do and what we're scoped to do. I was actually reminded that this all falls under the TOC and I just dropped a link into the TOC scope. Right. And so you'll find me being a little careful in coming up with things like the TOC isn't scoped with creating terms, but we can document what's already there. And we can create white papers that are useful for people but we don't get to create whole categories. And I don't really think that they're scoped with that and so I'm just keeping this in mind and so when you all wonder why I come with the opinions I come with in the direction. It's really because I'm attempting to stay in scope and on direction. You'll find that a lot with me. And so at least that it will express why I come at it the way I do. I think that's a great link to kind of kind of like limit the scope of what we're trying to do when we define it so. Well, so let's wrap it up. What's our what's our actions between now and two weeks to work in this talk try to sort of pair this down, get to a definition. And Mark, what do you think communication here or in the mailing list. I mean, I think. Can you define what here is like wait for two weeks until the next next meeting or the mailing list would be like more ad hoc and like in continuous right. Yeah, exactly like what do we what do we want to kick this off with in the next two weeks here. Yeah, I mean I think we should continue to work on the on the on the document I think you know like everybody has it it's like this is the first topic here like we can even edit it we can make comments on it and the mailing list is there to like discuss stuff but like I mean I'm, but I think all of us are like, pretty, pretty excited and have some strong opinions about it so like let's discuss them in that document and like if we need to we can go we can go to the mailing list to but there's just until the next two week meeting either. So I have one question here I wrote up another document just I was trying to figure it out starting with the definition and then explanation and test it's radically different and I didn't want to like overwrite which you already had. I can send that out to the mailing list or otherwise share it. But it because it's so different in structure. I didn't want to like drop it in and go crazy on your document. So I wasn't sure what to do but I'll share it to the mailing list, and then we can take it from there. This was me just trying to work through it and pick it apart with details on each thing. But I don't want to mess with yours which is the reason I'm not going to just drop it in. It's like two and a half pages long. I mean I've read through the document you sent it out this morning it's it's good like I mean I think also it probably worth adding a link to the other doc to it there's like an alternative like suggested reading for people who are reading that one doc is like, you know, another approach to this. Yeah, and I was just trying to, I wanted a logic reason based structure through my thinking on this which is why I put it together and tests. So that was my purpose because I hadn't really thought through it prior to writing that up writing sometimes gives me the ability to think through my structure and thoughts. But yeah. Great. Awesome. Any other thoughts anyone. Yeah, and maybe having like everybody's opinion on like the different capabilities that we have in there would be great collection until next time because then we have something to discuss. So I usually like meetings where we have something that we can prep for. Like we have now a lot of things that we want to have in there and we can have at least from the people who are here plus the ones on the mailing list. What do you consider important. I think we did this. I would be important to consider this year the important if not point out you could even put this into a Google form and see what comes out of it. Exactly. I think this meeting came did a lot of really good discovery and kind of opened up some questions that we can like now have like more more deeper dives into those questions and hopefully you know in the next two in two weeks from now when we get back together for a meeting will I have a very clear agenda with some questions that we should have some more everybody set a little bit of chance to kind of rock and read and understand so. Okay. All right, well let's wrap up for now. Thanks everybody for attending will send the like notes out the agenda is there in the in the zoom recording will go up. Thank you. Thanks. Thanks. Thanks.


This is a big deal that Allah subhanahu wa ta'ala instead chose to send us a prophet Who looked and acted like the average human being Right, and that's why people were struggling with this notion There was a lot of tension as to how the prophet of Allah would just be another human being who goes out in the marketplace Who works do you know what the prophet's hobby was by the way not hobby I mean, you know for lack of a better word the thing he did quite often at home when he wasn't dealing with official business if you like or Spreading the message of Allah. Do you know what he did? He would sew his own clothes. He would fix his own shoes. That's what he did I mean, what's more human than that?  Allah subhanahu wa ta'ala decides to send someone that we can relate to Someone that we could see someone that we could communicate with someone that we don't feel is superior to us He's not superior to us He's another human being who was able to achieve the status And that's why Allah subhanahu wa ta'ala says Rasulan Meen An Fusiko He's one of you right and what's amazing is that even though he's one of us even though he's a human being and Yet subhan Allah. He could have at least acted like he was superior to us at the end of the day, we all have a tendency to See ourselves as being higher than others if there is something we have that they lack, right? If I had a PhD, I'd make sure I'd flaunt it everywhere. I go Right if I was taller or stronger or more muscular than everybody else I'd make sure you know instead of wearing this I'd wear something so as to Give some hints as to my physical abilities We all have a tendency to try and make ourselves noticed given all the things that we have While others lack those things Whereas look at the messenger of Allah Let me share a few a hadith with you This one you're probably familiar with People would come into the mosque and they would see the messenger of Allah sit Well, they'd see a bunch of Muslims seated around one another and they and they'd be speaking But the prophet was such that they couldn't tell him apart. They couldn't make him out. Who is the prophet? Who's the messenger? They had no idea which is why in one hadith Abu Dhar says that this became a problem We would have Bedouins. We would have people who came from outside Mecca. We would have you know, maybe Delegates of other religions of Foreign governments. We'd have Christian monks and we'd have people who don't recognize the prophet They would come into the mosque and they couldn't recognize him so they'd have to ask around and it became a problem So we came up to the prophet and we said to him, ya Rasulullah We need to do something about this, right? If it's the turban Nowadays turbans are exclusive exclusive to people who you know, preach the faith or study this religion Back in the day, everybody wore turbans right in different colors and So Abu Dhar says we told the messenger that this is a problem. We need to make you distinct So that people know who to ask So that they don't just walk up to any random Tom Dick and Harry then ask them about the religion and so he's he then says Abu Dhar says that we built a little bench Right duck on or deck. He says for Benina. Do conan or the conan a little bench from mud Not even a chair a bench and the prophet would sit on that bench And we would sit alongside of him and he would deliver his sermons Isn't that amazing the holy messenger of Allah was a human being and yet Did he have emotions? Absolutely As I said people found that difficult to To grapple with How could the messenger of God who speaks to celestial beings whose friend is the archangel Gabriel? How could someone like that be a human being like me? So they expected the prophet to act in a different manner, which is why when his son Ibrahim Passed away and died at the young age of a year and a half The prophet was seen crying So one of the companions comes up to the prophet and he says to him Why are you crying and why are you crying so profusely and here's another point? I'd like you to remember The prophet of Allah was perfect in every way and so his emotions were also perfect Which means that when there was room for an emotional outpour There would be an emotional outpour that is Basically tantamount or or or something that you would attribute to someone as perfect as the prophet of Allah So he cried and this is the prophet who's not just crying over his dead son He's crying over someone like Ibrahim someone who would have been who would have been someone Who is if not an Imam then someone on equal footing as an Imam someone who's infallible So he says to him, why would you cry so much and the prophet responds by saying that the eyes Tear up the tears Flow out of the eyes and the heart breaks, but we'd never say anything that would displease Allah Subhanahu wa ta'ala So it's only natural. It's only human once again He's warned the garb of humanity even though essentially He's different. He is superior, but at least outwardly the prophet acts like every other human being in fact He acted like the lowest caste in society Now I want you to think long and hard about this because this has never been done in human history You don't have and I challenge anyone to prove me wrong You don't have any head of state any premier any president any king any emperor who at the time of his kingdom and At the peak of his power would act in the same fashion as Rasulullah How does he act the hadith says kana yajlusu jalisa ta'al abid Wa yakulu Aklal abid Wa ya'lam annahu abd He would sit like any slave.    Yeah, Rasulullah. I tell you so I love how they do what I call it.  Do you know why? One hadith says If a slave came up to him and invited him to come and eat he would accept the invitation Now a slave has nothing of himself a slave is owned by someone else How much food how extravagant do you think the banquet would be where the prophet is being served food? Right and yet he would accept any invitation, especially if it came from slaves So the woman says to the prophet you're sitting on dirt and you're eating slave food Fana thought I lay harasulullah Waqala way Haki whoa on to you Wahal Ahadun I abad a mini is there anyone more of a slave than I am So the woman then said to him I'll tell me look what I'm in time. Give me a bite of that food that you're eating She immediately was filled with awe of the messenger of Allah and so it's a weird transition Really to be saying why are you sitting like a slave and then saying give me some of that food? Because she just attacked that food and saying that is slave food, right? But she was immediately Filled with awe to the messenger of Allah, so she says give me one bite So the prophet grabbed a bite and handed it to her. She said la wallah.


My name is Andrea with Food and Mentory Adventures in Food. And today I'm sharing one of my favorite recipes for luscious layer bars. So let me show you what you're going to need. You're gonna need a package of cookie mix. Now I'm using oatmeal chocolate chip. This recipe is so versatile. Let me show you what else you can use. If you prefer to use a sugar cookie mix or double chocolate chunk, peanut butter, either one of those will work. If you want to make your own homemade cookie dough, that is fine too. You're also going to need some coconut. Now I know a lot of people don't care for coconut. You can leave it out of this recipe and it's still totally fine.  Again, change out the chips if you don't care for them. If you'd rather have a white chocolate chip or peanut butter chocolate chip, definitely go for it. You're going to need an egg, sweetened condensed milk and a half a cup of unsalted butter. So let's get started. So the first thing I'm gonna do is to prepare my cookie base. So I've got my egg in the bowl and my egg is at room temperature and I'm just gonna drop in my cookie mix. Now I have made a recipe on our channel called Seven Layer Bar. Very similar to this cookie bar that I'm making today but it has a graham cracker crust. So I'll make sure to link that recipe in the description box. So I've got my cookie mix in there and now I'm going to add my butter. My butter is softened and at room temperature and you're just gonna give it a good stir. All right, so I've got my cookie mix all combined and now I have a nine by 13 pan and I've lined it with parchment paper. I would definitely recommend using a pan lined with parchment paper or some nonstick foil, something like that because the sweetened condensed milk really makes the bar stick to the pan. So all I'm doing right now is putting my cookie dough in the pan and I'm just gonna pat it out. And if you've ever worked with parchment paper before you know it can kind of be a little bit hard to get it to stick to the pan. Now you could use butter or cooking spray or something like that to make it stay but my quick and easy trick for lining a pan with parchment paper is just to use some clips on the side of the pan and that will keep the parchment paper in place while you're working with the product. Okay, I've got my cookie dough all spread out. If it's not perfectly even that's okay as that cookie dough baked it's gonna spread out for you. Don't forget to take your clips off if you're using clips. I'm gonna pop this in the oven for about 20 minutes. Okay, I've got the crust out of the oven. I ended up baking it for about 23 minutes. And now I'm just sprinkling the butterscotch chips right over the top, right on top. And next my chocolate chips, my coconut. And if I haven't mentioned it already I'll make sure to leave the recipe in the description box. And then my pecans.  And I did stir mine a little bit with a knife to try to loosen it up just a little bit. Okay, so now I'm gonna pop this back into the oven for about 30 to 35 minutes or until that top is nice and golden brown. So here are the bars. I let them cool completely. I ended up baking mine for about 30 minutes and these are absolutely delicious. I hope you all enjoyed this video. If you did, please give us a thumbs up. If you have not joined our YouTube family we'd certainly love to have you. Thanks so much for watching and we'll see you all next time.


everyone also if you're watching this on YouTube later or if you're on Twitch here welcome welcome thanks for viewing phylogenic trees is going to be the next topic so phylogenic tree of life we all know that life on earth started from a single origin and then it kind of diverged into different clades which we now call bacteria, archaea and eukaryota so multi-cellular organisms the bacteria and the archaea which are the extremophiles so the animals living near like fountains or these these warm water sources on the bottom of the oceans so this is based on ribonosomal RNA data and when you make a tree like this phylogenetic tree based on our RNA then it emphasizes the separation of bacteria, archaea and eukaryota because ribosomal RNA is very very stable so it doesn't mutate very much and it stays very similar right because ribosomes are very essential parts so you can look back a long long way back in history if you would do the same thing for proteins you're not going to look back that much so if you if you look at other proteins which have recently evolved then you don't see this big split in bacteria or eukaryota so the idea of a phylogenetic tree if you look at a phylogenetic tree made of proteins then the branching diagram shows the inferred evolutionary relationship or the inferred evolutionary distance between or amongst different proteins of course a phylogenetic tree is based upon similarity in differences in sequence or in structure so you can make a because the amino acid sequence of a protein can change but the structure of this of the of the protein can remain the same right because you can change a long nonpolar fatty acid side chain by another long nonpolar fatty acid side chain and the protein doesn't really change so the sequence has changed but the structure did not change and when you look at a tree and so if you see tuxa which are joined together like here right so you see that Argea are joined at this point with eukaryota that means that at some point there was a common ancestor for both in the group right so here we can also see that for example if we look at animals and that there is a common ancestor between animals and plants and fungi but for example there's also a common ancestor between metanosargina and hollow files and which is more or less located here right so that's the idea of a phylogenetic tree so the idea behind the phylogenetic tree is that if you have two tuxa coming together so two of these three branches coming together then it implies that there is a common ancestor to these species alright so when we talk about these trees we have to talk about orthologs and homologies so the homologous sequence so a sequence which is deemed homologous like when you do homologous recognition is so an homologous sequence is called orthogolus if they are inferred to be descended from the same ancestral sequence separated by a speciation event right so if we have a duplication event within a single species then these two sequences are not orthologous but they are homologous so then there is a homology because they are they have the same kind of sequence but an orthologous sequence or orthology is strictly defined in terms of ancestry right and orthologs often but not always have the same function right so we have for example mice and human and both of these carry myostatin as a protein so the myostatin from mouse is an orthologous protein of a myostatin in human while within human you have myostatin and or not myostatin if you look at myoglobin and some other forms of myoglobin because hem myoglobin is the stuff that binds oxygen and blood but you have different proteins which also do like oxygen binding within a cell these are homologous proteins but they are not orthogolous because they occur in in a single species right so remember that when we talk about orthology we talk about speciation events so when when a single species splits into two species then the same protein which used to be in one species is now in two species so now these two proteins are called orthologous to make it even more complex we can say that two species so homologous sequences right so sequences which are highly homologous so which are very similar to each other they are called paralogue if they are created by a duplication event within the genome and then we define two types of paralogs even we define in paralogue so those are paralogs which arose after a speciation event and then we have out paralogs which are paralogue pairs that arose before a speciation event so and it's just a little bit of terminology because I when you build these trees then often people just assume that this tree is the relationship that it used to be but it or that that it really represents the relationship between species but it doesn't have to but by defining something as an in paralogue or an out paralogue hey you kind of annotate these trees with saying well no here we have the speciation event and a certain gene occurred or arose before or after it and this has to do so have paralogue a sequence our sequences that are created by a gene duplication event so the part of the DNA is just duplicated and then have we say that well when one did when this happened before then we are talking about out paralogs and when it happened after a speciation event occurred then we call it in paralogue so just as a picture to show you guys right so for example here we have the early global gene right and the early global gene at a certain point got duplicated into the genome so we have the early global gene which got duplicated and one of them became the alpha chain and the other one became the beta chain so now when we talk all of these sequence are homologs of each other because the alpha chain is very similar to the beta chain in globens it just has some minor amino acid changes but have when we talk about the alpha chain then of course the alpha chain is found in frogs and chickens and our frogs and chickens and mouse right and and the alpha chain existed because of the gene duplication event being here so an alpha chain an alpha gene an alpha chain gene is a homolog of a beta chain gene but the frog alpha chain is an orthologous gene to the chicken alpha and to the mouse alpha the same thing holds for the mouse beta the chicken beta and the frog beta but the mouse alpha and the mouse beta are called paralogs right because they are the same and so a paralogue is it's they are created by a duplication event right but because the duplication event was here before the speciation event we call these paralogs and since this duplication event was before then we actually call this an out paralogue so here we have in a single picture we have the difference between what a homolog is an ortholog and a paralogue right so a paralogue is the same homologous sequence in mouse an ortholog is the same homologous sequence in in two different species and to have the in and the out paralogs and the orthologs a little bit more clear let's say that we have an ancestral gene a right then the gene got duplicated so we now have a a bar and we have a bar bar right and now after this we have a lineage divergence right so the gene duplication event was here and then we have the divergent between different species for example species X I a one gene species why a a one gene then these two are called orthologous and these two are also called orthologous an in paralogue is now when we compare why a bar to why a bar bar right because this now the duplication event is before the lineage divergence and we call it an in paralogue when we look we call it an out paralogue when we look now I'm messing it up again so so tricky I hate that people call it like this and make like terminology so difficult alright so we start off an ancestral gene a gene a is duplicated into a bar and a bar bar a bar is then split by two different species right so if a speciation event after the gene duplication event so now we call a bar within the same species orthologous we when we compare a bar with a bar bar within the same species it's an in paralogue but when we compare it with with a different species then we call it an out paralogue I hope that it's clear I don't really like many of these definitions in a way but they are related to how we in biology or people in biology talk about proteins and homologous sequence and in paralogs being orthologous to each other so I hope it's a little bit clear I have two pictures so just look at the pictures and see and otherwise just ask a question about it next time then I will read up on it again and it's just confusing to make it even more confusing we also have something called a xenologue and xenologs are really interesting right because homologs resulting from horizontal gene transfer between two organisms are called xenologs and this occurs a lot in bacteria right so imagine that we have bacteria a for example E. coli right which has a certain antibiotic resistance gene right so what this E. coli can actually do is it can actually transfer it's or give its gene to another bacterial species right so here we have the the same gene now occurring in both species but E. coli gave it to another one either using horizontal gene transfer or our conjugation or some other method right generally like bacteria talk to each other through these little tubes and they exchange DNA with each other and so when this occurs we call this xenologue so we now see the exact same gene in two species so from a phylogenetic tree standpoint this would make the two species related to each other but they are not related to each other at all it's just that E. coli gave one of its genes to Sleptococcus right so this this in a phylogenetic tree had we would now see that oh okay so there has to be a common ancestor between Sleptococcus and E. coli but there actually isn't it is just because of a xenologue so a transfer of DNA from one species to the other and this happens more often than you think this also happens to more complex organisms not just bacteria DNA is actually something which is exchanged quite frequently by bacteria amongst each other but also by multi-cellular species so also multi-cellular species can exchange DNA making them look more similar to each other right so then you infer that oh there might be a common ancestor like one million years ago while actually that is not the case because the real common ancestor is like hundreds of millions of years ago and this is because of of xenologs so when we talk about horizontal gene transfer right from a bacteria to another bacteria then this can happen in different ways so the most common way is transformation this means that there is a bacteria which dies and part of the DNA from the bacteria like a bacterial plasmid like a little circle of DNA remains after the bacteria exploded right so we can have an E. coli bacteria it has a certain antibiotic resistance and at a certain point the bacteria kind of explodes or dies and it releases all of its DNA into the surrounding and then just some some streptococcus happens to be in the neighborhood and it just says oh nice little piece of DNA it serbs it in and just starts transcribing the DNA and now has the antibiotic resistance gene just because of the fact that it happened to encounter it in the environment another way which is more common is bacterial conjugation and this is when two bacteria make a little protein tube and start exchanging DNA with each other which is like strange because you would think that two bacteria of different species would not talk to each other or would not kind of be friends with each other but this is something that happens a lot right so conjugation is when a little protein tube is made and bacteria just start exchanging plasmids so these little circles of DNA which encode certain genes with each other so happens a lot furthermore we have transduction and transduction is something which happens by bacterial phages so a bacterial phage will be born in a bacteria right and this bacterial phage will then transfer genetic material from one bacteria to another bacteria so using the intermediate then it's called transduction of course there's another very common horizontal gene transfer method and that is just of course genetic engineering right in the lab we often give bacteria new properties like antibiotic resistance or other properties and we of course do this by just using plasmids and then using electroporesis to put the plasmids into the bacteria or we use like these little lipofactamine bubbles so we put the gene into a lipofactamine bubble and then merge this bubble with the bacterial cell but there are three natural ways of horizontal gene transfer transformation bacterial conjugation and transduction as well as genetic engineering which is a non-natural way of giving bacteria new properties and all of these methods will make two species look as if there is a common ancestor more early in the tree than that there actually is right because the DNA now is more similar because both of them have the exact same piece of DNA but this is not due to having a common ancestor but this is due to one of these horizontal gene transfer methods so all of these methods cause xenology right so a homologue from a horizontal gene transfer between two organisms all right so if we want to look at some of these so if we want to look at proteins and analyzing proteins and classifying them into families and predicting domains then one of the things that you can use is from the european bioinformatics institute interpro and i didn't really prepare an example but let's just look at the interpro website so you guys know that it exists and what you can actually do with it so let me show you firefox get rid of all of the weird pop-ups so here we have the interpro database right so if we go to search we can just search by sequence by text or by domain architecture we can also just browse right so we can say well just browse a certain protein which protein did i want to do let's do an example all right um we already had the insulin receptor right so let's just reuse the insulin receptor and then throw it into the interpro database right so we just give the insulin receptor and then we just say search and this should be relatively quick let me also see if the cctop prediction no cctop prediction did not finish yet so take some time bioinformatics is a like field where you just have to wait for things to do because you're always like in this case you're relying on someone else's computer doing the analysis and and the computer might be busy um so how are you might be in a queue just waiting until you can get serviced i should have actually probably just browse for human hemoglobin as well as we oh insulin receptor that is not going very well either like never do a live demo right that's that's how the saying goes that if you do a live demo then all of a sudden everything starts not not working at all why is this not doing anything yeah i agree with this stupid cookie always when ah nice at least this one finished right so we can look at the results right so here we see that we what is mismatch version i didn't choose any version anyway so here we can see that the insulin receptor from humans the one that we just uploaded is a protein right so and this protein has 1382 amino acids right and it is classified in a certain family because it is called tir kinase insulin like receptor right it is also part of the family insulin receptors right so um if we look at amino acid 5 to 138 and then we see that this whole thing is part of a family which is logical because insulin receptors are very common right but then if we look at the protein itself then we see that the protein consists more or less of three different parts so three different domains right so one of the domains here is a receptor l domain which is then split or found multiple times so you can see that here on the domain from amino acid 52 to 470 there is a receptor l domain if you want to learn more about it you can just click on it see the description and stuff here we see that there's an fn3 domain and here we see that there's a protein kinase domain right so protein kinases are there to cut proteins so we can we can see that this one is more or less split into three parts we have also a chemokin receptor and so we can learn more or less how this protein is structured and organized and we can also see that there are several repeats right like a furion repeat into the thing we can see that there's a conserved site here and which is a very so a conserved site is something which is which is the same in many many different species and this is again part of the therazine kinase 2 receptor we see that the active site has been determined to be here so this is where the insulin binds to the receptor that happens somewhere between 1155 and amino acid 1176 we see that there's a binding site so oh no so this is the active site so this is the site that actually transmits the signal after binding and here we see the binding site so this is where the insulin binds the receptor then we have here an integrated part so these are all predictions and here we see that there's more predictions for different signal peptides and transmembrane parts right so here there's a transmembrane area where so part of the insulin receptor is outside of of the cell and part of it is inside in the cytosol and here we have a transmembrane region so this is the region of the protein which goes through furthermore it gives us which biological process which molecular function and which cellular component it it has been classified into and of course we can we can click on all of these things and learn more about them let me actually yeah so we can have we can zoom into the region of the protein and then we can continue with searching with Interpro or with the HMMMR to do a prediction of the secondary structure of the protein um I actually wanted you guys to see is when we look at for example the binding site I had that's not what I wanted I wanted to just get the overview of the oh no that doesn't have that because I just searched with the new protein that is annoying normally when you take a protein which is known and you just go to the database then it will also show you which mutations are known within this protein but it's an it's an interesting website to see okay so I had this is a known domain in my protein and based on the protein kinase domain this protein has a certain function based on the domain here it also we can assume that this function is shared with other proteins as well as the furin like cis rich domain and of course we can click on it and go through if we want to learn more about the domains we can actually click here right so this is a receptor l domain the structure of the first three domains blah blah blah and head so it gives you overview references where you want to look further anyway interpro it's a good website if you want to learn more about protein domains or if you want to learn more about protein structure so did it actually finish the rows probably not no it's still running in the background all right so if you want to learn more about proteins so if you just want to read something then go to this big picture learning it has a special issue on proteins and it's a relatively good link to find more about proteins it's it's quite good what I like more is the second link which are the paper models so the paper models come from pdb the database which is there for proteins so that's the old protein database which was actually founded in the 1970s and if you and because 3d structures everything one of the nice things is is that for example the trna paper model so you can just download the pdf you print it and then you can you can fold it yourself so you can see which parts of the protein fold back on themselves and they actually have a nice youtube video on how to do this and you it's based on this pdb structure so pdb they have this really nice funny thing where you can fold your own proteins so they have a whole bunch of them so you can fold an antibody or you can do some dna or you can for example fold the human papillomavirus or the g protein coupled receptor so really interesting website pdb itself is actually a very very good website for so the pdb website the main website not the learning website actually it allows you to see protein structures so where are the alpha helices so again you can do your own prediction or you can just say well i want to know more about insulin receptor right so if you look at the insulin receptor then they have here different different crystal structures which are made of the insulin receptor and then here you can see indeed that this is crystallography of an active loop mutant of the insulin receptor and so you can click on it and then again it gives you an overview of the so it gives you the the structure which you can actually view in 3d as well and then it gives you literature not just that but if you go down you can see for each of the parts of the protein if there are no mutations the hydropathy so high if the part of the protein is actually liking water or not liking water so the more at the more high the more hydrophilic it is the more likely it is to be on the outside the higher the hydropathy the the more likely it is to be on the inside of the molecule and they have the pay from domain right so this is the the pay from domain which is again related to the interpro domain so and then here you can see downstairs downstairs you can see all the way down and that there are for example experimental data where you can see how well the structure was determined so it's a really interesting website to kind of look through and hey you can also see that in this case there was a magnesium 2 plus iron in there so it's just if you want to know more about proteins in general then had pdb is the place to go and had just searched for your protein and there's all kinds of links to all kinds of different websites if you want to learn more but it's a really interesting website and of course they have the proteins that you can fold yourself right and that's the nice thing because then you can just do it at home and for example i would definitely fold the tRNA so that's one that i did myself and that's actually really interesting because if you look at the pdf and then here you have the the template if you want to do it in black and white if you want to do it in color and the only thing that you do is you just have to cut these out and then you glue them together on the right position and then in the end you have a really nice tRNA with the acceptor loop and the anti-codon loop and here you have the thing done all right so i think that's it for today let me switch back to the powerpoint so yeah that's it for today so i told you a little bit about the history of proteins not so much about the history of proteins but about the history of like methods that we use for protein determination i talked to you about protein structure so what is the primary structure have primary structure is done by atomic bonding what is the secondary structure secondary structure we take into account hydrogen bonds the tertiary structure we take into account ionic bonding and we take into account hydrophobicity or the hydrophilicity of the protein so have which parts like to clump together because they are all hydrophobic and which parts are clumping or are on the outside because they like being in water i told you about purification and identification so head that there are four different protein purification techniques and that you can identify proteins using mass spec and nuclear nmr and other methodologies i told you about functional prediction so have i told you about that proteins are consisting of protein domains and that based on the protein domains you can actually figure out what a protein is doing and i told you about that there are 60 000 different protein families so proteins that are very similar are part of the same family and again that helps you understand if you are looking into a protein what your protein might be doing i told you a little bit about phylogenetic trees phylogenetic trees will come back also how to make them yourself for example using r we did one in the beginning using haklis but there are many many different methods to make phylogenetic trees i told you a little bit about homology and all of the different and confusing terms that are there like an ortholog a powder lock an exanolock so for the exam just a little tip know that i'm not going to ask in detail about in paralogs and out paralogs and stuff i just want you to know what that an ortholog is different from a powder lock why it is different and what why a xenolock is different from a powder lock and of course remember that xenologs are important because they make it seem that the shared ancestor is actually closer than that it actually is and this happens a lot in bacteria where bacteria exchange DNA with one another all right so that's it for today are there any questions remarks suggestions and other things if not then here's the beautiful guinea pig i drew today are there already dates for the exam yes and no yes i submitted dates to the exam no i'm still waiting for an answer for the prüfunksbüro so um yes i submitted dates but no they are not confirmed yet so once they're confirmed i will let you guys of course know when the example be and there's still a little bit of struggle with the prüfunksbüro because they want me to do the exam in person and um verbal so oral exams um but i just want you guys to do a written exam and not that i don't want to see you guys that's not the issue it's just that i don't think that uh it makes much sense to do an oral exam for something like bioinformatics but as soon as there are then i will send around an email um and then you will know exactly when the exam is good then at least i will stop the recording for um youtube yeah no problem genie so people on youtube see you on the next lecture which is going to be lecture six lecture six is going to be about let me see mathematics so lecture six is going to be about um either metabolomics and pathways or about programming in r um that depends a little bit on you guys and also on you guys on on youtube so um probably we will have a little vote um so i will probably do a vote on moodle for you guys to determine which one of the two lectures you like to see more but the next logical lecture because we did dna we did RNA we did proteins um then the next logical lecture would be to do metabolites and pathways and information about those good so people on youtube um see you on the flip side