Welcome to Relativity 12 – Gravitational Waves. The Laser Interferometer Gravitational Wave Observatory, or LIGO, has two stations, one in Hanford, Washington, and one in Livingston, Louisiana. On September 14, 2015, LIGO made the first reported observation of a gravitational wave. In this video, we'll see how general relativity predicts gravitational waves, what they are, and how they can be detected. First, to provide some context, we'll discuss Newtonian gravitational theory. In Newton's theory, two spherical masses, M1 and M2, separated by a distance r, feel a mutual attraction, which varies as the product of the masses and inversely as the square of the distance. This describes so-called action at a distance. The masses exert these forces without being in contact with each other, indeed without, apparently, being in contact with anything. So it's natural to ask, how is the force conveyed? What is the mechanism by which the masses pull on each other? Newton's answer was, I frame no hypothesis. It is enough that gravity does really exist and act according to the laws which we have explained.  He's given us a theory that accurately predicts physical phenomena, but it doesn't give us an intuitive picture of what's going on behind the scenes, so to speak. Now, maybe it's because our bodies primarily interact with the world through mechanical means, but we tend to want a mechanistic explanation of phenomena. We want to see the ropes and pulleys responsible for making things behave the way they do. Let's look at one mechanical explanation for gravity that was put forward shortly after Newton published his theory. To start, we'll limit ourselves to a single dimension. Suppose a plate exists in space. And suppose a continuous stream of particles flows from left to right. When the particles encounter the plate, they're absorbed. The absorbed particles transfer their momentum to the plate, which produces a force pointing toward the right, analogous to wind pushing on a sail. Now, suppose particles flow in both directions. Also, assume the particles do not mutually interact, so the streams pass through each other. The plate will feel forces in both directions, which will cancel out, producing zero net force. Now, if two plates are present, the left plate will shield the right plate from the rightward stream, and the right plate will shield the left plate from the leftward stream. The result is that the left plate will feel a rightward force, and the right plate will feel a leftward force. If we are not aware of the presence of the particles, our interpretation might be that the plates are attracting each other, action at a distance. In fact, the plates interact through an intervening medium. Now consider three dimensions, with particles spread throughout space and flowing in all directions. If we focus on a particular object, the particles of interest are those which converge on the object. This view is a 2D cross-section. The converging particle circles correspond to converging spheres of particles. The object is equally pushed from all directions, so feels no net force. If a second object is present, it will absorb a portion of the converging particle stream, and the first object will feel a net force in the direction of the second. If the second object moves closer, it will absorb a larger portion of the particle stream, and the resulting net force on the first object will be greater. Working out the dependence of the force on the distance between the objects, you find precisely the inverse square relation of Newton's theory. So there is our mechanical explanation of gravity. Objects don't interact via action at a distance. They interact via a mechanical medium, and all action is local. We might call this mechanical medium the gravitational ether, except there are problems with this explanation. One was noted by Newton. The force of interaction is not a function of the body sizes, but of their masses. A small body of large density can exert a greater force than a large body of small density. Another problem is that if the gravitational particles transfer momentum, they should also transfer energy. As an object absorb particles, it would heat up. It's straightforward to show that Earth and everything on it should vaporize in a matter of seconds. We try to explain away these and other problems by assuming ever more fantastic properties for the particles. In the end, mechanical theories of gravity create more problems than they solve. Euler summed up the consensus among physicists. I shall always prefer to confess my ignorance of the cause of gravity than to have recourse to such strange hypotheses. Although no workable mechanical explanation of gravity has been found, abstract mathematical developments eventually modified the action and the distance concept. We can think of the two masses as interacting through a gravitational field. Newton's formula for the force exerted by mass 1 on mass 2 is minus g times the product of the masses over the square of the distance between them. g is the gravitational constant, and the minus sign denotes an attractive force, a force which tends to decrease the distance r. Let's write this expression as the product of two terms, g1 times m2. g1 is the gravitational field of mass m1. It has no dependence on mass m2. The distance r can refer to any point in space. Our picture is that mass m1 creates a gravitational field everywhere in space, which points toward the mass, and decreases inversely as the square of the distance. This field is not a mechanical thing we can view directly, but we can see its effects by placing a second mass anywhere in space and observing the resulting force. The physical predictions of this model are exactly the same as for action in a distance, so we might think of it as merely a mathematical tool. However, it does provide a framework in which masses do not interact directly at a distance, but rather locally through the gravitational field. We can add another level of abstraction by defining a gravitational potential. To motivate this, consider this figure where h is height or elevation above sea level and x is distance parallel to sea level, such as latitude or longitude. The gravitational field of Earth points downward with the same magnitude everywhere. Suppose we have a mass at sea level, and we move it to some other point on the ground. The theoretical work required is the mass m times the function u of x, which we call the gravitational potential. We want to know the force acting on the object parallel to the ground. If we move the object a distance delta r and record the change in potential, then the average force is minus m times the change in potential over the change in position. In the limit that the distance goes to zero and dividing by the mass, we get that the acceleration along the ground is minus the rate of change of the potential function with distance. If the ground is flat, the change in potential is zero and the force is zero. If the ground has a steep slope, the change in potential is large and the force is large. In any case, the force always points downhill. The potential concept can be applied to any gravitational field. A mass m1 creates a potential u1 throughout all space. We can abstractly visualize this as forming a type of landscape, such that other masses will accelerate in the quote downhill direction. The potential corresponding to Newton's law of gravity is minus g times mass over distance. The gravitational field is then the negative of the slope of this potential. And a mass m2 will fall, quote, downhill, which is toward mass m1. Let's visualize a star surrounded by spherical shells of constant gravitational potential, which we show here in cross-section as rings. Now let's ask, what happens to the surfaces of a constant potential if the star moves? Because potential depends only on instantaneous distance, the surfaces will move in lockstep with the star. We see that the gravitational potential concept hasn't completely replaced action at a distance. It's moved it from the interaction of two masses to the interaction of a mass with its gravitational potential. If all action is local, we might instead expect to see the moving star act on the first potential surface, followed by that surface acting on the second surface, and so on. The result would be a type of sloshing around of the surfaces of constant potential as the effects of the star's changing position propagated outward. In the 19th century, a complete theory of electromagnetism was developed. We show two views of the electric potential of a point charge as described by this theory. For a charge at rest, the electric potential falls off inversely with distance, analogous to gravity. When the charge oscillates, however, we observe the type of sloshing effect we've been talking about. But more than that, we see waves of potential peeling off and propagating away from the charge. These are electromagnetic waves.


Capacitors work to store energy by stretching the orbits of electrons in a dielectric compound between a positively charged plate and a negatively charged plate. As charge accumulates on the positive plate, the electrons of the dielectric material gravitate toward the positive plate, distorting their orbits. The attraction of the nucleus to the negatively charged plate further stretches the atoms. This process of distorting the orbit of the electrons uses energy that then becomes stored in the dielectric material. A capacitor must be attached to a closed circuit with an energy source such as a battery in order for it to store energy. When the switch is closed, electrons flow and charge builds up on the capacitor's plates. This causes the voltage across the capacitor to increase. Eventually, the voltage across the capacitor will equal the voltage of the sources. At this point, the flow of electrons stops because the source voltage and capacitor voltage is equal but opposing each other. The capacitor is essentially charged. All capacitors charge at the same percentage rate. Based on the universal charge curve, after one time constant, the capacitor will have reached 63.2 percent of its potential, 86.5 percent after two time constants, and so on. After five time constants, the capacitor has reached 99.3 percent of its potential and is considered essentially charged. A time constant in seconds is equal to the resistance of the circuit in ohms multiplied by the value of the capacitance in farads. For example, in this circuit, if you have a one mega ohm resistor and five micro farads capacitor, the time constant would be five seconds. Therefore, for each five seconds of a lapse time, the capacitor will achieve its corresponding voltage percentage until it reaches an effective charge after five time constants.


Hi folks. Just in recovery from COVID but I'm feeling pretty good today. Hi guys. Hey Ben.  I posted the link and zoom chat. I can share my screen. If you can add your name. And any agenda items to the meeting notes. Let's see upcoming events. It didn't look like we have anything yet. Does anyone want to verbalize anything that they'd like to add or. Just type it in. Taylor's all over. I'm not, I'm not sure I'm looking at the. The meeting notes here now. I know we typically go through. A lot of people. I'm not sure how much has happened. Probably lots of people are busy as we've come back from the beginning of the new year, right? But I think that we do have some. That have kind of stalled. Maybe just need to. Just remind us all to. To review them. Including myself for bringing it up. All right. We'll check out. Anything else? A couple of weeks ago. You mentioned the spreadsheet. Which I've shared before about cloud nativeness. Cloud native assessment questions. I have found. Yeah. It may be the same one. You're talking about. That's what it's. I'll share the link and check if it's the right one. All right. Request access. Is it limited access? Requested. Refresh. No, I think it's because I created it under my phone account. And. Make it viewable for everybody. Not that I can see. I'll try. I'll just put another link on. All right. Oh, I see it. You need permission to access the document. Published. Okay. Sorry. No problem. Let's. I'm just going to add it to the. Is it something about ops? Ops. Or. Targeting. Like ops teams. I T. Everything cloud native. I can't remember exactly the title. Oh, sorry. No problem. Let's. I'm just going to add it to the. Cloud native. I can't remember exactly the title. So it was. It's called just cloud native assessment questions. There we go. It was around the cloud native and it's a solution pool. A scene by the platform. That's what it was. Yeah, that sounds right. So just drop it in there whenever you get to it. Yeah. Thanks. Does anyone else have anything? I'm not sure. I'm not sure. I'm not sure. I'm not sure. I'm not sure. I'm not sure. I'm not sure. Notice daylight savings. Change and March. So. Can affect when people join this call. Cube, Conny, you. And one of the things. That'll be new is a co-located event. I called native. It'll be there. With. Conny, you. CFPs are open. I'd love to see some submissions there. And if anyone is interested in sponsoring. I think the info should be on the main page. Otherwise. Reach out. And if you have questions about it, let me know. Open source summit and. You and. N a are both open right now. If folks want to submit to this. Controls go away. High floating meeting controls. All right. Has there been any progress on. The air gaps. Let's see. This is back in November. On Kai. Some more questions. All right. So. I think. We should start seeing more of Jeffrey. Over the next few weeks. And then maybe this one will get done. So I'm just going to go on. If you all haven't seen this. You're on the call and you haven't seen it. Check out this. It's a set of. User stories. Related to. Air gap environments. That can give some context whenever we're talking about. Best practices and gotchas and other issues that. Could run into. Cloud native. Methodologies and. Kubernetes environment. So let's see. We have the. This one. I don't know if the ends on the call. You're on the call. So this one is about. When. You have an exception on the ability to follow a best practice. And. Ensuring that you communicate to everybody concerned. Why you're not able to follow it. Any type of work arounds or something. So let's say it's a security type of best practice. Maybe. Not running. Processes as the root user or. Having a privileged pod. Something such as that. Remounding proc from the host file system, whatever it may be. Where there's a best practice. Security best practice. Related to it. Running things with the least amount of privileges. And you may have a very valid reason. For example, for example, if you're in consumer service providers, the ops team running it may agree with. The idea here is to communicate that. So there's some. Information in this one about. Communicating it and some thoughts around. Around that. And talking about the motivation here and everything else. I think this one should be a good one. Because we're essentially talking about what do you do when. You're not going to follow a best practice. I think this one should be pretty. Agreeable. I think to most folks. We need to have exceptions and we should document them so that everybody's aware. Right now I'm not seeing. Any. Comments. Any thoughts and we can add them right now. If you want to discuss this. Or you can review it and please add. Go ahead. I just have a question because I saw the title. Working in progress. So that means that. It is complete and we can start reviewing it. Or at least can you remove the. Working progress. It's not complete. But I think. We can add some feedback from folks to keep moving it forward. Okay. I'm going to. This is John Fulman. How are you, sir? Hi, how are you doing? Hi, I haven't been reactive in this community. I've been so busy with client work. I apologize, but I joined today and one of the reasons why I wanted to speak up at this point is I'm part of the. I'm part of the category office working group. Within the C.C.F. We launched a Q con North America. Last year and the team. I'm sorry, what group again? Can you repeat? I'm sorry. Cut car office. Okay. And so it's about maturity for C.C.F. models. Security. People with technology. And I think all the kind of talks about. Where you would just section over here. And then we're going to talk about the. The best practices. Part of what we deal with in the group. And we try to bring this to the C.C.F. And right now we're trying to talk to other texts as well. And how we can incorporate kind of graph. With other texts as well. And this may be one where. We may be able to do some kind of, you know, join such together on this. On this topic as well. If that makes sense. Yeah, that, that sounds great. John. I'd love to. Collaborate. Yeah. As a matter of fact, maybe we can give you a presentation on one of your meetups. When we can talk about kind of graphics and how we can help. You know, draw these kinds of conversations, especially when it comes down to the compliance. And those kinds of things as well. Sure. Why don't you. Do you have my email still? Why don't you, can you. If you just text to me or I'll capture right now. And I'll send you an email. Yeah. And we can maybe set something up and talk and then figure out a format. On where, where and how long and all the other things. That'd be great too. Again, I apologize. I just been. I've wanted to be active. If it's so long and. And I follow everything. I just haven't been joined the other beat the meetups, but thank you. I'll continue you soon. Thank you. Sounds great. All right. Any other comments or thoughts on this one before I move on to the next. Okay. Oliver. Do you want to. I can stop sharing my screen for a moment. Maybe you. Go through this one. Do you like me too? What do you think? Well, the only thing is unfortunately I've got to drop in 10 minutes. I'm not sure if I'm going to make it through it. We did go through this and I'm happy to do it again. Okay. I'll let you have your nine minutes or however long that's left. And then I can step in as soon as you have to go. Yeah. I mean, I guess maybe for the interest of everyone's time, I mean, I'm happy to do that, but. I know I recognize some faces on the call now. So I don't want to bore people to death. Is there anybody here who has not seen this? I guess maybe just like, I don't know if just throw something in the chat or something. If you don't want to otherwise just verbally. I'm not wasting people's time. Otherwise, I'm happy to give you kind of a quick tour through this. I guess what is remaining before we get some approvals? The only thing I'm saying is there were some. Comments from Pankai. Regarding it versus NF. So maybe adding something that was more specific and you had some responses to that. I think I don't know if I had commented in the past. I think it's very important for us to. Keep in mind that whatever the domain is. It's possible to learn and apply it in some way into the networking and telecom domain. And so we, we don't always have to go specific, but of course providing some context so that people can relate to the domain that they care about can be helpful. For sure.   So, you know, as far as I'm concerned, there's not a question that it's, there's networking involved here. But, you know, I did try to, you know, just open the, you know, the scenarios up a little bit to give others, you know, an opportunity to say, oh, wait a minute, it's kind of a similar in other areas or other aspects or other functions, I see some of the same kind of challenges and be able to expand on that. So I think Kankai, you know, he, he recognizes, well, there are some other areas where, and that's, that's perfect, that's great. I think, you know, I would encourage just to add those, propose adding those to the, to the list because persistent data is, is necessary. And I think that, you know, would be beneficial for us to have some outlines, some best practices for this as we're, as we are marching along here in cloud native, best practices. So I don't know what's holding us back, Taylor. I mean, people are, I have encouraged people to add, but I don't have yet to see anyone saying, well, that's not a use case or that's not a, you know, that's not, that's not true. All right. I'd like to get this, this one specifically pushed through. I think that would be happy for Pankai to contribute some things around these topics out of this networking paper from us next or contribute them to a new document, wherever they happen to fit. Now, we, as you know, that all of this is supplemental content, these use cases, user stories, this is something to help with best practices that we then want to see how we can apply them. That's what this is about. And any additional content that gives us context helps us to see where things can be applied, should be applied or should not. It was great. All right. I'm going to open this again, like this. So we have quite a few people on the call. I'm going to just ask, has, have folks on the call, who's been able to look at this? I've gone through this, I went through them. Of course, several times with you, Oliver. So has anyone else looked through this? Other than when Oliver went through it with everybody? I haven't read it, so I can't thank you yet. All right. Now I have another chance. I felt that this is not my turf, but I'm really glad I can go over it. I only partially heard you, Ben. I thought that this was not really my turf, but you know, I'm happy to go over it. Oh, well, I think the use cases and use user stories. May have areas where security can be applied since security is pretty much everywhere. Probably the same cigar with yourself. Have you looked at it? Okay, I should take a, you know, next few days I will go over it. Okay. Thanks, man. Hey, Taylor. Yeah, I have to go through this. I'll go through this and let you know. All right. All right. So while the idea here was to try to get enough context to start talking about best practices for handling state in cloud and a cloud native way in Kubernetes environments, I think these user stories are going to be able to pull out a lot of other things as well. You could see networking, of course, there's availability stuff which ties into resilience and availability. I didn't hear from Ildico. If you've seen them, but I know you have a lot of familiarity with data handling on the open sector world. So you might be able to provide some feedback here. Or more context as well. Yeah, I haven't had the chance to check this one out yet, but I'll do my best. Okay. I'm sorry. Busy start of the year. I understand it's, it's for everybody. So I've tagged you. In the, as a reviewer. So you can check that out. So. To save Oliver from doing it again. I know you have to leave. Just a quick view here. This is. Somewhat a mix of use cases and user stories. So looking at it from the CSP perspective and persistence of data. And then we have some user stories talking about from the subscriber. Perspective going all the way through and what needs to happen. These. How to deal with low latency. Updates whenever you're needing to ensure that the data, this specific one has been driven from. You could say like. Could tie into financial and accounting and other things, but there's other reasons to deal with. Low latency. Stateful. Type actions besides that. I think other people could see. This one's kind of related. Acid compliance. So this could be related to potential requirements. Or it could be where they're actually saying they need. Acid compliance. Or it may be that the actual. What, what comes about. You know, you know, underlying things, these type of things may end up being, we actually care about consistency and durability. The isolation is not a priority. It's not always, you know, people aren't going to normally try to break these apart, but if you can get down to that, the specific reason it can be applied in other areas as well. Availability. There's a lot of stuff around cloud native practices for how to be more available, which in a lot of ways is quite a bit different from how things have been done in the telcom world and how it was done in other domains actually in the past. There's been a major shift to try to, how do you handle this? How do you do availability in these type of dynamic environments where you expect failure? That's one of the big things. Anyways, and how to recover. This would really have to deal with how do we make sure that the services and data and everything are always available. But how do you do that in a cloud native way? Of course, one of the ways in the past, if you're like a Oracle fan or anyone else, you may have seen massive systems replicated with big sand storage and everything else. And that's not how you would approach it from a cloud native way. So how do we do that? So there you go. Quick overview. Please come check those out and give some feedback. If it looks good, what we're trying to do is just get us some user stories that we think provide enough context to be useful whenever we're writing up other things, best practices and other documents. That's the main thing. And we can always iterate. We can modify. We can do other pull requests to add, update, clarify. We do want to get these through. So once we have four or five thumbs up, then we can merge. And I think that's it. Let's see. Tom, did you ever get the assessment ready? Or do you just want to share your screen? You can do. I've given you access and all of that because I've got the requests through. Which, which link? The first one. If that doesn't work, I'll try and copy it over to a number. It worked. Is it just for me? Or can anyone access it? I think that version is, I think. If we copy it out into something else. I think looking, looking back in our Slack chat history, you were going to put it in the tug. Google drive. Oh, that's right. And I don't know. I may have actually put it over there. I'll. Just put that on the today. Cool. Yeah, I haven't reviewed that for probably at least 12 months or so. So I will do that. And I'll think about whether other things as it should be. All right. Do you want to. Chat about it real quick or? Yeah, yeah, sure. So. I mean, this was, this was pretty good. Do you mind if I just let you share your screen? And that way you scroll through it? Yeah, that's fine. All right. Go ahead. Okay, got that. So yeah, this was put together in the kind of early days of. The, what was before the CNF working group. I don't know what it was called. But we will, we were thinking about. How can we, what questions can we ask to understand. The cloud nativeness of something. From the point of view of the platform. So we're not, we're not trying to assess the, the cloud nativeness inside the application, which I know. I know that the kind of CNF tests we use, looked at some of those. So these cloud native principles, I think you'll probably be familiar with those. I think the ones that this group and others have been through a number of times and obviously missed specs. And so it was, it was, I kind of phrased it in my head as a kind of bunch of questions that we'd ask. And understand whether, you know, whether something was cloud native or not. So, you know, it's obviously not perfect because nothing's as binary as that. But we started to use this in, in Vodafone to sort of just do as a really simple. Set of questions to get people used to answer, asking themselves when they were looking at stuff. As to, you know, what input the operator has to have, you know, how tight is it to specific project hardware, et cetera, et cetera. So this, in this current form is not currently used in Vodafone. But certainly the characteristics and the questions are in different formats. So it'd be interesting to understand, you know, I need to go through it again, because I haven't looked at it in a couple of years or a year or so. Yeah, last edit summer 2020. So it'd be interesting to get people's thoughts on, on what's being asked, how useful is it? You know, there's likely to be loads of questions, comments and debate around the yes and no part. Yeah, that was the, that was the idea of it was to guide people down. Is it cloud native or not? I think it would be nice to have an assessment like this for application focus. So when you're building an application, we're thinking about, I mean, this, I guess this kind of covers managing deploying as well, but getting that other viewpoint. Yes. Adjusting the questions for a copy and making something similar. Yeah. I don't think that should be too difficult. I'm happy to start work on that. That'd be great. And I'd, I'd be glad to work with you on that too. We'll put together draft and share it with me. Yeah, sure. Does anyone have any questions or comments about that or. Right, anything else? Not for me. Thanks. I'm going to need to drop in a couple of minutes. Sorry. Take me kids for me. All right. Thanks, Tom. Thank you. Thank you. Any questions? Thanks to everyone. Y'all, um, I guess we'll end it here and we will see you again next week. Same time. Thanks. Thanks to everyone. Okay. Thank you.


Well hello friends of the internet, it's me. I did not vlog yesterday. I was like on the verge yesterday. I was not feeling it. I was having a very busy day at work. It's very busy today as well but I'm taking a few minutes to myself because I just, I need it. Yesterday was, I was just panicked. I don't know why. I mean I think I know why but like I was just in a very panicky mood at 2 p.m. Central time, which is what Minnesota is in and I'm in Minnesota, not in Canada, I'm in Minnesota. There was a like Minnesota press conference with Tim Walts, who is our governor I believe.  Thankfully I can still work from home so that doesn't affect my financial standing or work or anything like that. It's just, I don't know, I feel like I'm just being like way empathetic towards like everybody else that I don't know. I mean and even people like do know and it's just getting to me of like you know people's financial situations and you know not being able to go to work and get paid and have daycare and like I don't, I'm just taking it on and I shouldn't be taking it on but I was actually watching Jen Ross this morning. I'm like, I was catching up on some YouTube videos before I started work and I was watching one of her videos and she was talking about, she had struggled in the past with like feeling all her feelings and that like every feeling is valid and I'm like maybe that's what I'm struggling with because I'm just like pushing it down. Yeah so that's why I didn't vlog yesterday. I was just, I was feeling all the feelings you guys. It was just whoo. Also I stopped work at 4.30 something like that and I laid down for just like a couple of hours, woke back up, had my night and then I could not get back to sleep. So I decided to take a little night drive. I didn't go anywhere particular. I just drove around for like 30 minutes. I think I just needed to get out of the house even though I wasn't going anywhere. I just needed to get out. I stopped at my parents house and they're not there by the way. Like they live in the same area as me but they're not there. But I stopped there, just checked in everything, at like 4 in the morning but whatever. Anyways so yeah and then I just, I haven't slept. Like I got to finally lay down at like 5.30 and then I like laid down for about an hour but it wasn't like real sleep. I mean I have trouble sleeping anyway just because of my like reflux and stomach problems but I think I was just like, I was definitely on the verge like for sure because it's just too much going on in this old noggin here. And it's all stuff I can't control which I think is making it even worse. Like I feel like I should be doing something but I can't do anything and I know you guys out there feel me on that and yes I'm probably overreacting to whoever's trying, you know whoever's typing on their keyboard that I'm overreacting. I totally understand but this is just like, this is legit. This is how I'm feeling and that's what these vlogs are all about. You know I pretty much always have a very like positive and happy demeanor but you know sometimes it's just, this is real life so yeah. But in more fun news I actually got my simply gilded subscription box today. I haven't been posting those videos. Those videos just like don't do very well for some reason on my channel which is totally fine. I mean I was just posting them because I know some of you out there enjoy them.  I already went through it and what I like to do is when I receive it I'm like clearly I like open up downstairs and then I kind of separate the things that I know I'm not going to use versus the things I will use because I don't want to bring anything up into my office that I know I'm not going to use so um so yeah but then I also have these sticker books that I got. They're just like plain pages. I'll show you what I did till days. This isn't all of them but this is some of the stickers from the collection that just came out so I will pull off on the sticker sheets the ones that I will potentially use and like I don't know I have like this is very very full at the moment but these are like stickers that I don't normally use things that are half used samplers things like that. I'll link this below. It is kind of expensive unfortunately but I got them on amazon. I have this one which is like a whole bunch of pages and then this one I have as well but it was only like a few pages but um I don't know they're kind of spendy. I will be honest they are kind of spendy for what they are but they work really well and it's the fun thing about these is they've like actually forced me to use some of my less used stickers because they're just right here and I don't have to go searching for them and so now this used to be like full like jam-packed full of stickers like all of these in my little categories and now it's just like if I truly love the entire sticker sheet it stays here so I like that a lot. Here are kind of like the remnants of the sticker sheets of the things I know I won't use so I'm going to end up passing that along to someone else and then also they had these this came in my order it's one of those like I don't know things folio things I don't know but there is and she said this before that there was going to be some shadowing on this and there is quite a bit of shadowing and I didn't know if I was like in love with the color of this in the first place and I brought it up here and I decided you know what this is going to be better to another home so I am going to go like this throw these in the middle for the moment go downstairs you guys can come with you can come with me I'm gonna grab some lunch because it's like lunchtime it's like 11 something and uh yeah so I don't know I'm just gonna in a funk are you guys getting funky already this is my week four of being quarantined or you know self quarantine whatever and uh I'm losing it clearly um yeah and then also in here is this is my little bucket of things and oh this was in there as well so like this little pouch was in the seasonal surprise box um I just won't use it I know I won't so I know people ask all the time they're like well you know if you're not gonna use the things like why do you why do you get those little monthly subscription surprise box whatever the hell they're called I like them that's why and this whole hold on let me go back in here um I know it's hard to see but this whole thing is for like a future plan or meetup I just haven't been to one in a really long time so I uh just keep all my stuff in there like put to the side so I don't have to you know deal with it so anyway oh but like I was saying so this is week four for me so today's Thursday I'm almost to four full weeks um and then now the Minnesota order is two more weeks so I think it goes to the 10th um we could be like mandated to stay at home longer than that um or my office could also mandate that we stay home longer than that as well afterwards so whole lot of unknowns I'm just like I said I'm feeling the feelings you guys and I'm gonna eat my feelings now so I'm just gonna have some of this macaroni and cheese because I don't know what to eat and um I'm actually gonna make some dinner tonight so hopefully I will remember to vlog it a little bit um I have a bunch of like fresh vegetables and I need to do a little like stir fry situation might as well uh get the water going while I unload the dishwasher because you know dishwasher if so it is unloaded um I am going to have some orange juice because that you know makes me feel better I guess I don't know let's see here so I have my OJ I normally don't drink orange juice unless I'm sick um I'm not sick I'm fine now but um I don't know kind of helped me get over the hump before with um you know when I had the flu so I'm like you know what I need some orange juice makes I don't know you feel better a little bit OJ to the rescue I am gonna go um you guys already know what I'm gonna have for lunch I'm gonna drink my OJ quick here and um then I'm gonna work while I eat my lunch so yeah I just wanted to give you an update I just I just have all the feelings today and yesterday it was yesterday was bad I think we're all going through a range of emotions regardless if we decide to acknowledge it or not so anyways I will see you guys in a little bit bye all right it is five o'clock I'm leaving my office because I just don't want to do this anymore oh some days y'all some days um yeah it's just been like super super busy like my department's been crazy busy and it just doesn't stop like the emails don't stop which is a great thing um but yeah so tomorrow I have two happy hours to attend uh virtual happy hours by the way so it's like wow my social calendar has never looked so exciting but like I said before I am going to do some cooking I'm gonna bring you guys along we're gonna cook together it's gonna be great um let me get the pan hold on let's la la la la cool all right so I I think have a video about this on my channel if I can find it I'll put it up above um let me get all my supplies and then we'll start talking about it all right I'm going to put a pot full of water over here I'm not starting it yet but I'm gonna put it over here and now I have this little bad boy it's like one of those deeper skillet looking things and I am going to turn that on and let me grab all my veggies so the only veggies I really need or that I'm gonna be using today are things that I really clearly I like them um I've got my zucchini I've got some sliced mushrooms and I've got some tomatoes so that's all we need uh the sliced mushrooms I always just like check to see if the mushrooms are more or less expensive depending on if I get whole mushrooms or sliced mushrooms this time they were the same so I just got the same for like the same weight so I would just much rather deal with these so throw them in it's really like rocket science over here you just throw them in that's it all right so I'm gonna open up these clean these clean these and just slice them put them in that's it what I like about this is um I end up having a ton of veggies for several days which is pretty great and then I either put it over like a bed of pasta or some a bed of rice quinoa or something like that I have a bunch of whole wheat pasta that I want to go through so that's what the pot of like the big pot of water is for but I will put that on a little bit later so yeah one of my zucchini almost ran away I don't have a ton of room in this little space here but we're gonna gonna make this work all the vegetables are rinsed off with the vegetables you could like roast them too like you could just put them in the oven I just don't I just throw them in this pan and it's fine with me so I don't know everyone's different so yeah I'm just cutting cutting the veggies now but um yeah how are you guys doing tell me in the comments how things are going I feel like after lunch I had a better attitude you know about life and general and all that good stuff yeah I don't know I just losing it a little bit but I feel like we're all kind of on that struggle bus you know so I think it's I think it's okay to lose it a little bit right now I got a message from my dad this afternoon and he's like yeah I wouldn't got a haircut like what my parents are in Florida by the way um so I'm like what the heck like all the barbers and hairstylists and nail salons and tattoo places like any like massage all that kind of stuff like everyone is closed down right now um like gyms all of that so I don't know it's like dad just just stop with the haircuts he's like oh look pretty so anyway I don't know but definitely they're in a totally different state and um if I've understood correctly the virus likes colder climates like it sticks around a lot more so that could totally be the case and that would make sense that Florida doesn't have one of those like stay-at-home order kind of things so anyway um yeah so just getting this all chopped up this usually takes like um to get it all kind of like wilted kind of wilted down the way that I like it once it starts to heat up I do put the um top over it like what's it called the cover the cover I put the cover over it um and then usually I don't know once I get everything in there usually it takes like another 15 minutes or so as it sits like when you put it in like your glass container or whatever for leftovers later so because I'll just eat this tomorrow too and probably the next day um it tends to get like more juicy if you will but I like to do the harder things first so this and then the mushrooms because those need to like take more time and then with these I'm just gonna cut them in half and then um what I do with those is just toss them in there and I don't care if those wilt down or not at least the first time around because it doesn't make a whole hill of the beans of a difference to me but um yeah I don't know I just like it it's easy and you could do it with like any vegetables that you like um I just like these and they're easy pretty pretty easy to find um I found it during this whole fun coronavirus situation so that's good um didn't have to fight anybody for any of these vegetables which was nice yeah and they're usually pretty hardy vegetables too so they do last quite a quite a while like in your fridge or on your counter or whatever um especially if you don't get to it right away like I didn't um so yeah so all of the um zucchini is chopped up ready to go I'm gonna give that a little bit and let it simmer down meh so I have this whole wheat pasta um I just decant everything into these jars I got from Ikea a long time ago um I have quite a bit of this as well so I'm just gonna put all of this like this is way too much for one serving but I'm just gonna put all of this into the water once it starts boiling and then whatever I don't eat I'll toss up a little bit of like extra virgin olive oil just so it doesn't get too sticky normally wheat pasta for me doesn't get too sticky at least this brand I'll save it for like lunch for tomorrow or whenever because I don't know I feel like it keeps pretty long so I'm gonna go do that but you could use any pasta that you want you don't have to use you know like a penne or whatever I don't know well here I'll show you the situation now so this is you know getting warmish that's what it looks like I haven't tossed it or anything you can just sit in there and then I've got my water going and then this whoo wow can't see right in there um and then I am going to just chop these up real quick with you guys and then um when I'm done then I'll just throw it right into the mixture there like I said I'm feeling better this is gonna be like a rambly vlog um I'm feeling better I just uh yesterday was bad y'all like I was just I was on the verge for sure and it was not good it was no boy knows um and I am not one I don't know if I've said this before I'm sure I've said it before but I don't know if I said it today but um I am one that does not watch the news so having to know what's going on is something I don't want to do um but uh yeah like watching the news like on a normal basis when this is like not going on is it good for my mental health I'm just gonna put it that way I feel like I'm on a need to know basis and like right now we all need to know me watching the news is just not not a good thing for the mental health situation but getting through it dealing and um yeah it's just it's just hard right now but um I did actually really enjoy it earlier today I took a little walk with the dog so that was really nice I saw a lot of people out I didn't say hello or converse with anybody um clearly everyone's keeping their distance but um you know saw a few families out like riding bikes and with like little kids and strollers which was nice just nice to like see people um because I haven't like physically seen anyone in a long time I mean I see my neighbors every once in a great while and we just say hello and then go back inside but you know it's just one of those things good to see people are like kind of getting out and about too and you know we're all kind of going a little stir crazy so yeah all right so all of my things are chopped horrible way of like explaining things just all my things are tough like okay um so yes I'm gonna just toss everything that's in this big pan real quick just get it moving around a little bit actually everything's still a little dense so I'm just gonna leave my tomatoes out for just a little bit until it kind of wilts down slightly and then I'll put those in and then we'll be good to go and then by that time it'll be time for dinner so anyway um I'm gonna jet because Doyle is over by the front door so he needs to go out and go to little peepees and um I will check in with you I will show you my dinner before I eat it so I'll be back in a little bit bye okay so here is the finished dinner um I just have a little bit of pasta around the sides and I just like basically all vegetables like it's like a mote of vegetables another thing that I do sometimes I'm gonna do it today because I have it is I'm gonna sprinkle a little bit of cheese on there um I like this Italian style cheese and I got it from Oldie and then um a little bit of cracked pepper and there's my dinner and I got all my water right there dinner time all right so it's about an hour later and I am done with dinner and I'm just hanging out now got my toilet paper um gotta bring some upstairs anyway so it's like my home value just skyrocketed with this toilet paper I swear oh goodness well since I missed the Vligati vlog yesterday I am going to throw that on the top there I'm gonna edit this video today and um hopefully the internet gods will be nice to us like they were the last couple of days and I can get this uploaded for you guys so I'm gonna upload my footage and uh get this done for you hey Doyle Doyle what are you doing just following he just sits in his little bed when I'm in here eventually every once in a while he doesn't do that but yeah he's just okay okay well he's got his back turned to us I guess that's a good sign bad sign I don't know but anyway thank you guys so much for hanging out with me today I will see you tomorrow for a Friday vlog and um yeah I hope you guys are doing really well let me know in the comments down below how you're doing and um I will see you guys tomorrow bye


State your name for the record, please. The voice echoed through the vast space amplified by the microphone. Um, Doctor, Dr. Robert Felden, sir, he said into the microphone timidly. It was the first time he could ever recall being timid. Usually, he was the one with the booming voice echoing out from on high in a dark room. Of course, this room was hardly dark. In fact, it was illuminated as well or better than some of the rooms in the facility Felden had worked at before the masquerade failed. And the men, or rather, men and women, accusing him were only slightly higher than him. He observed the group before him carefully, looking as he had in the past, for weaknesses, for fears, for anything he could use to his advantage. They stared back with the same expression. Felden began to sweat. And at your former position with your past employer, Dr. Felden, the man in the middle spoke again. Balding, slightly corpulent, dark clothing, glasses, a dead stare, the same expression many had thought Felden once wore at similar times, except that Felden was slightly younger and more fit, completely bald, but in his former line of work that could only be expected. Felden cleared his throat and spoke into the microphone again. Former head of the Foundation's Ethics Committee, sir, before it was phased out to this body, sir. And how long have you held this position? For the past seven years, sir. Despite himself, Felden heard a bit of pride creep into his voice and inwardly cringed. A quick glance confirmed his suspicions. They had heard it as well and were less than pleased. A group murmured a moment before a glance from the man in the middle, quieted them. He seemed to be the man in charge and would presumably lead the entire hearing. I see. And for how many of these SCP objects were you involved in devising the containment procedures, Dr. Felden? Well, that depends on what you mean by involved, actually. Do you mean objects in whose containment and research I was personally involved before my appointment to the Ethics Committee? Or do you mean objects in whose containment procedures I was involved in the approval or revision of following my appointment to the Ethics Committee? Answer the question, please. Right, said Felden, looking somewhat nervously at the other solid members of the panel. At a guess, something close to 435, maybe 437? Any particularly notable procedures, Dr. To be honest, sir, they all start blending together after a while. And when you consider all the information I've been privy to that is above even your pay grade, it's a little wonder I remember no specific procedure, sir. Shit, why am I back talking this group? The people who deterred my future, thought Felden. Yes, well, that is a subject to change. Very shortly, we should have access to all the information. As the UN New Committee on the Ethics Containment of Anomalous Objects, Events and Creatures, we will require knowledge of all that the Foundation contained and is currently containing. Procedures deemed unethical will be revised. If no revision is possible, containment on the object will cease. If the object itself is deemed inherently inimicable to human life, it shall be destroyed without exception. Felden privately wondered how many of them would be left on the board after they discovered some of the Foundation's blacker secrets. Things only former O5 command and the Ethics Committee were clear to know. Doctor, please, the question. I'm sorry, sir. Could you repeat the question, please? Were you involved in the containment of objects numbered 453, 231, 158, 239, or any objects classified as humanoid by your former employer? Felden looked away, wishing he could lie and deny any involvement. Yes, inevitably, all the members of the Ethics Committee were at some point involved with a humanoid object. We did our best to reduce the object's discomfort while keeping it contained. He or she, I mean. You are aware, Doctor, that most of your humanoid containment procedures violate many laws in many countries, I trust. We didn't have a choice. If we hadn't, the world would have ended. Doctor, the general populace still has little knowledge of what your organization terms reality benders. As such, it is thought by many to be highly unlikely that a pregnant woman or a young child could possibly destroy the world. Have you any evidence to the contrary? Plenty, said Felden, beginning to move from the stand at which he had been placed, before realizing that two rather large men who had accompanied him in wouldn't let him walk around. Prior to my time as head of the Ethics Committee, I observed testing involving SCP-239. During testing, I saw 239 shift entire rooms in a secure foundation facility to suit her liking. In this case, a giant dollhouse. This wouldn't have been so bad if she hadn't also shifted the personnel in the rooms into life-size, animate rag dolls, complete with the memories and personalities. When told she had to turn everything back, she told the head researcher to, and I quote, go away, butthead. I trust I don't have to explain what happened to the poor man's head, but suffice it to say, he went away, walked out the door and disappeared. Eventually, she got tired of playing with her dolls, and they simply vanished as well. This was one incident out of many, and this was by far one of the least serious. And the woman you designated SCP-231, as the man in the center, already disapproving of an answer that hadn't yet been voiced. Sir, there are some things no one wants to know. I assure you that is one of them.  Oh, I see plenty that is unethical about that. By conventional ethics at least, he said with a grim smile. You see, what most people don't realize about SCP-231 is that she isn't a single pregnant female. What everyone in the general public knows about SCP-231 is, in fact, incorrect. The general public, and frankly, most of the enlightened public, yourselves included, are unaware that SCP-231 is actually designated SCP-231-7. She is the seventh, and last of the women we contain with the SCP-231-X designation. The others all died. They died either due to a break in the containment procedures we designed, by their own hand, or by our attempt to remove the fetus. On one occasion, SCP-231-1 actually did give birth. The resulting incident caused hundreds of casualties. Were you aware of this, sir? The panel remained silent, absorbing the information. And were you aware that each fetus has had the potential to cause or has caused more catastrophic damage than the last? The panel sat still, silent, fidgeting slightly. The bald doctor now had the upper hand. You can all fact-check me when you have clearance, as try as that sounds. The panel looked uncomfortable for a moment more, before the man at the center spoke again. Doctor, this body will determine that for itself. Even taking into account what we know now about what your organization termed reality benders, we find it hard to believe that any being under the age of ten has enough power to, as some of your peers have put it, vaporize my head, despite the information you have provided. Additionally, whatever the hell you're doing to that person that you have objectified as 231 will stop as soon as his body has the official power to do so.  Felden could see it. He felt the power shift in the room. This was his stage now. Very well, sometimes seeing is believing. But if you find out you are wrong, what then do you intend to do? He asked smugly. Doctor Felden, this hearing is not about what we as a body intend to do. This hearing is about you and your peers, and your decidedly unethical treatment of many human beings, of many nationalities. As such, this avenue of discussion is closed. Is that understood? Of course. Do you have any further questions? Do you contain anything that doesn't destroy the world? Well, we have a two-person llama costume wearing galoshes. Before we took it into custody, it was being used for psychic dissociative recreation, but then its users overdosed and died. What? Never mind. Any further questions? Yes. To the extent of your knowledge, do any of the containment procedures you've authored or revised contain intentional harm to human beings? Yes. The panel as a whole frowned at this. But do any of the containment procedures you've authored or revised place other human beings in danger? Yes. But we... And do any of the containment procedures you've authored or revised involve cruel or unusual treatments of human beings? Define cruel and unusual. Doctor, that statement in itself is enough to convince this panel that you are of questionable moral judgment. Your actions have been, by your own admission, unethical. So in light of this, in light of the possible deaths of hundreds or thousands or more that could be caused by one of the entities we contain, what is ethical? What is right and wrong? What is cruel and unusual? Are you prepared to ask these questions every day for the rest of your time? The panel was silent for a long moment again. As the ethics committee, were you not trusted to keep the foundation ethical? In this, you failed. You think I failed? Wait until you know. You'll want me to come back to take your jobs from you. Because of your statement, Doctor, let it be known this committee is recommending that you be permanently dismissed from any work with the foundation in its current iteration. Additionally, we are recommending a full psychological evaluation in an institution of our choice. If any problems be found, treatment, regardless of length, is mandatory. Remove him. Two large men, the ones who had brought Felden into the room, escorted the former ethics committee head out of the room to a waiting vehicle that would take him to a mental institution, one of many that former foundation employees were being sent to regularly following the new necessity of following international laws. The man who had served as the head of the panel looked at the members gathered alongside him. Coming in the next one, two weeks later, headline, former foundation ethics committee head released, returned to service, May 10th, 2014. Today, Dr. Robert Felden, the former head of the foundation ethics committee, was released from the institution he was placed in following the UN committee hearing two weeks ago and restored to his former position. The majority of the panel declined to comment on the decision to repeal their choice and returned Dr. Felden to his former position, replacing panel and committee head Gregory Rexon as leader of the UN new committee on the ethical containment of anomalous objects, events and creatures. When questioned, Rexon said only, In this world, this world in which everything we know is turned upside down, what is ethical? What is right and wrong? And how do we define cruel and unusual? Further comment was declined. End of file. To learn more about the SCP Foundation, subscribe to SCP Orientation Today and turn the notification bell on so you don't miss any of our videos.


In order to develop for WordPress, you're also going to need a way to write and edit WordPress code. All code is essentially just text. And so you could technically write and edit WordPress code in your operating systems text editor. You would however be missing out on all the best features the true code editors and integrated development environments, or IDEs, offer to you. If you don't already have a code editor or IDE that you are comfortable with, here are some options to consider. Visual Studio Code is a free and open source code editor created by Microsoft. It is available for Windows, Mac, and Linux. It offers support for a wide range of languages, including HTML, PHP, JavaScript, and CSS. It also offers additional features like a built-in terminal with the ability to add more features through extensions. Vim is a free and open source text editor that is available for Windows, Mac, and Linux. It is a command line based editor and is not as user-friendly as other editors. It does however offer a wide range of features and is highly customizable. Brackets is another free code editor originally created by Adobe, but now open sourced. It is also available for Windows, Mac, and Linux. Brackets is similar to Visual Studio Code in that it offers support for a wide range of languages and additional features through extensions. Sublime Text is another code editor available for Windows, Mac, and Linux. It is not free, but it does offer a free trial and was a very popular code editor before Visual Studio Code was released. Notepad Pass Plus is a free and open source editor that is available for Windows. Often seen as a powerful replacement for the default Windows text editor, it's also popular as a code editor. Textmate is a free and open source editor that is available for Mac. Like Notepad Plus Plus, it is a replacement for the default Mac OS text editor and offers code editor features. PHP Storm is a fully integrated development environment created by JetBrains. It is available for Windows, Mac, and Linux. It is not free, but it does offer a free trial and is popular with developers who work with PHP-based applications. Like when you choose a local development environment, choosing a code editor is a personal choice and there is no right or wrong answer. For much of the content on learn.wordpress.org, we will be using Visual Studio Code, but you are free to use whichever code editor you are most comfortable with.


Okay, so I guess I'll start off with some introductions. We have Graham Hayes, he is a software engineer on the HP Cloud DNS team and one of the Designate Core reviewers. We have myself, Kyle McGinnis, I'm the Designate PTL and the tech lead of the HP Cloud DNS team. And we have Tim Simmons from Rackspace, software engineer on their Cloud DNS team. So what we're going to talk about today, we have overview of Designate, quick intro to what we do, quick intro to the APIs, client libraries and so on, and how we integrate with the DNS servers, so how we talk to bind, how we talk to all of the other guys, and a little bit of our current integration with Nova Neutron, which is called Designate Sync. We do have some plans for some more advanced stuff, we've got some working sessions with Nova Neutron tomorrow, so keep an eye on that space. So first up, what is Designate? Designate is an OpenStack style REST API for managing DNS. So architecturally, we're very, very similar to Nova Neutron, sorry, to Nova and Trove and so on, in that we aren't a DNS server, we instead orchestrate and manage the DNS servers. So if you want to use bind, perfect, if you want to use ACMI, perfect. So we have two different models, on-premise, that would be using like bind or power DNS, you run the DNS servers yourself, you have the whole infrastructure under your control. The other model is where you integrate with a third party, so we currently support ACMI and Dinect. So they'll run your front-end infrastructure that the customers actually query, but you'll manage the control plane. So why would you use Designate? As I think everybody knows, DNS is not cool, it is absolutely not the coolest thing you're going to have. It doesn't have Docker in the name, it doesn't have Neutron in the name. So it's plumbing. Everybody has something there today that mostly works, every company, every cloud has something there, but as people are starting to move towards cloud and they're able to turn around and go, Nova boot, why are we filing support tickets for the IT department to actually have the DNS provisioned? So we should start giving users the full control to go end to end. So yeah, that's why. So I'm going to hand over to Graham and let him talk a little bit about the API and client libraries. OK, so we have three real ways you can interact with Designate at the moment. We have a REST API you can query directly. We have a command line client that does all the major features, the basic stuff that users need to do with DNS right now. And we have a new OpenStack client-compatible command line client being developed at the moment.  The command line of the Python bindings obviously interact directly with the REST API, but with that we currently have three APIs we have available. As of Kilo being released, we have now deprecated our V1 API and we've moved on to V2 which is the latest and greatest API we have. It has a lot of nice features that allows you to have zones that are created by one tenant, transfer the ownership to somebody else. So say your one team is looking after a particular domain and they're transferring ownership to somebody else, there's a very nice way to do that in the API and just transfer the ownership directly over. We also have an admin API which has generic admin tools, things like you can look up the amount of usage for a tenant, so how many zones a tenant has, how many records they have and what the quotas that are set for each tenant and you can also set the quotas for each tenant from that API. The V2 and the admin APIs also support plugins. They're based off Pekin, so if you can write a Pekin controller, you can load it into the API when you start up the API service. So this allows you to take the power, take what design they can do internally and also expose it in whatever particular way that you might have internally to your end users. So I'm just going to show you, this is for the V2 API. This is a basic how to create a domain. So you just post with two simple key values, obviously if we were using keystone authentication, you'd have an authorization header at the top, but this is just a basic no off example. And this will return your zone and you'll notice that everything in the V2 API is now asynchronous, so you'll get a response immediately with the status appending and Tim will be going through in a minute how the status will progress from pending to active. So it's a nice, fairly basic object and also as part of the V2 API we decided that we didn't like just giving generic error. We were going to give slightly more feedback about what you did wrong. So can anyone see the problem with that request? Yeah. You notice a thousand, that's not a valid IPv4 address. So if you send that into our API, you get back this and it actually gives you the full path of where you went wrong, what went wrong and what it was validating at the time. So this will obviously make, when we start integrating it into Horizon properly, a proper feedback loop or even programmatically, you can look through the path of what the message is and the error type to really understand what went wrong and this is available on all the resources in the V2 API right now. So Tim is now going to show you how we go from the pending status to active. So just a quick little audience participation. How many of you this morning got out of bed absolutely psyched that you were going to hear about DNS today? Okay. It's a lot of people. You're all lying. I know you're all lying. That's not going to happen. So like Kyle said, DNS is not something that a lot of people get super amped up about except apparently in this room full of nerds. But kind of contrary to that, there's a lot of different ways that you can run DNS. It's probably because it's been around for such a long time. All of the things you see in a beautiful word cloud here are ways that you should be or definitely can run designate. This is important because every single person who comes into our IRC room or contacts us comes up after the talk is going to say, hey, can I run it this way? Can I do it with this DNS server? Can I do it with this configuration? And I think a lot of the reason that happens is because somebody has always got some old legacy system that they want to integrate with and it's DNS, nobody wants to change that. That's super boring. No product manager is like, yeah, let's go. We got to update that DNS server. So given that, designate needs to be a few things when it comes to talking to DNS servers. It needs to be flexible so we can talk to all those that I showed. It needs to be scalable because I don't know about you guys, but if you've ever had a DNS outage, a lot of people come and bang down your door and it's not a pleasant time and it needs to be simple because nobody wants to deal with complicated setups for something that should just work. So the way that designate does these things is down to a few of the components that exist in designate. So first I want to talk about flexibility. If you're going to talk to all of the different DNS servers that exist in some way or another, you need to speak a similar language. DNS has been around for such a long time and it was architected so well that there's a universal protocol for updating and transferring zone data between two DNS servers. I want to describe that briefly. Please don't fall asleep. It's going to get more exciting. Notify is when you as a DNS server say, hey, slave or hey, friend, I've got an update to this zone. If you'd like, you should probably come and try and get it. That slave or that other friend, master or whatever is going to try and perform an AXFR which is a full zone transfer. So the master is going to zip the zone file up into DNS wire format and send it along and then the slave can do with it what it pleases. So the designate component that does most of this legwork is called mini DNS. It's a very, very minimal DNS server that we wrote that's specifically targeted for these DNS protocol things. That sounds a little crazy, but we try to keep it very small, very simple and it gives us full control, which is really, really great. We can do things with that like configuring the frequency that we send those messages, configuring timeouts, configuring retries and if there's some error or some unfortunate thing that comes up during the process, we can go and actually fix it. Designate as a whole acts as the master for your zones. That's the source of truth for you. If you think about it like that, mini DNS or some cluster of horizontally scalable mini DNS nodes is going to be your DNS master. So that's going to be actually where those slaves come and transfer zone data from. And I say it acts as a master, there is a specific use case where designate doesn't have to be the master and I'll talk about that in a minute. So most of what I just talked about there is a lot of what you'll be doing. DNS zones don't get created and deleted too, too often. They're mostly updated because people don't want their zones going away on DNS servers for any period of time. So updating is pretty easy. For almost all DNS servers, they support that universal protocol and everybody's happy. Creating and deleting can be a little different though. Some DNS servers are backed by a database. So when you want to create a zone, you need to create a row and a table. Some have very specific protocols like binds which uses R and DC to add and delete zones. So you've got to integrate with that. Some newer, fancier DNS servers have REST APIs that you can go and use. And some have other services that you're going to go and call some other API out to. So trying to do that universally is not particularly possible. So as part of our pool manager, which is a mechanism for keep or it's a service that deals with the proliferation of DNS data from designate to whatever DNS servers that you need to manage and helps keep them in sync to make sure that they're going well. It has a customizable plug-in infrastructure so that you can choose and use whatever creating and deleting mechanism you need for the DNS back end that you choose.  For power DNS, you're going to be adding rows to a table in the database. And that's really nice because there are all sorts of configurations even within, like, okay, I just want to use bind. It's like, okay, well, which way do you want to run it? And depending on those, it's going to be different, which kind of pool manager you use, which kind of pool manager back end you use. And if you have some wonky thing that you need to integrate with, this is a great place to do it because the stock ones work great, but there's no reason you can't write a custom one. For people who need even more control and they don't want to do a zone transfer directly to a DNS server, we have the agent. So this is a very small Python daemon that runs on or near to the DNS server and talks directly with mini-DNS. So it kind of implements the other side of the DNS protocol that mini-DNS is spitting out. This is really great in situations where you need total and complete control. If you're running huge bind and you don't want to run bind as a master and a slave at the same time, you can run the agent on that bind server, let it talk to designate and do all of the great things that designate does. And bind doesn't even know that there's not some poor engineer sitting there hacking out those own files and creating commands. Other situations might be where a DNS server doesn't support zone transfers or maybe down the line incremental zone transfers for some reason. You can just lay the agent on top of that and mini-DNS knows no different that it's not bind or power DNS down there. And you can integrate in whatever way that you want with the DNS server. What someone did recently is they used the Netflix client, the denominator, and they integrated that as an agent back in. So that literally you can call designate and then your designate can call another designate. So you designate while you designate. So, thanks to that guy, I guess. The one situation where designate doesn't have to be a master is called secondary zones. So you can set up in your company or your whatever a DNS server that you own and you manage, but it's probably unwise for you to try and run that as a highly available server for the entire world to consume.  So what you can do is keep your cards close to the chest and tell designate, hey, I want you to add a secondary zone with my special snowflake DNS server as your master. And designate will go and do the zone transfer from that server and then fan it out to whatever DNS servers it manages. So if for some reason you don't wanna use designate's great API or client, you can do that. This is really great for a lot of other use cases. So Kyle's gonna tell you about Nova and Neutron. Okay, so in designate, we have a service called Sync. The designate Sync service is an event listener. It sits there listening to RabbitMQ for messages. The messages are what Nova and Neutron and other services can omit. So for example, attaching a floating IP, booting a VM. I thought that was a different slide after this. Attaching a floating IP, you'll get an event. If you boot a server, delete a server, you'll get events. And you're able to then take that information and run it through a plugin, a plugin if you're choosing. It will then turn around and look at the information in the event. That might be the house name, the tenant it's in. It might be the flavor. It might be all of that kind of information is available. And turn it into a series of actions against your DNS environment. So maybe it's add a new record. Maybe it's delete an old record. Maybe it's add another A record because you've booted a new load balancer. So it kind of sits on the outside of designate where we have the sync service listening to Nova and Neutron through RabbitMQ. And it then simply talks to our core service called Central. So it looks just like API calls coming in. It looks just like anything else you might be doing. So it has the full power that anything you could have done in the API. You can write this tiny little plugin. You can include two samples out of the box. They are the Nova Fixed and Neutron Floating IP Handlers. They're samples. They're really basic because every single person in the world has turned around and said, we want something different. We don't want the name of the VM.myDomain. We want something else. And we decided, okay, make it pluggable. The Nova Fixed one is, I think, eight lines of code. The Neutron Floating IP one is, I think, about 20 lines of code. So it's tiny. You're not writing, this isn't a three-week exercise to go build and write one of these things, at least not for simple use cases. So it's there, you have to, if you want to use this, you're going to end up writing a small plugin for that. There's a sample in the Contrib folder. It's an entire Python package. You pull it out into its own Git repo and it will install as a plugin natively alongside. So there's some samples there for you. And I guess we're going to go to questions. This went through very, very quickly. So sorry about that. Actually, timing these things is always very, very difficult. So do we have any questions? If you use the microphones, there's one there, just so that it's caught on video. Hey, guys. So my name's Joe McBride. I work a little bit with these guys, too. And I'm just curious for the audience, who here is running designate in production? Just raise your hand. Nobody in the room yet. Who is evaluating it to run in a dev or production environment? That's a lot of hands. That's 40, maybe? OK. For you guys, I got stickers. So come on. They're designate stickers.  OK, I have, in fact, two questions, if you don't mind. The first is about the records that are handled by designate. And you said that, indeed, DNS is not some kind of fancy stuff. And there is no in technologies. But there are still records that are still new. For example, I'm thinking of TLSA and the SSH fingerprinting. I see a great use case of using SSH fingerprinted DNS. So I would like to know, that's my first question, if it's supported. OK, so we don't support TLSA. We just haven't gotten around to doing it. We do support SSH fingerprints. I see exactly the same use case as you. But to make that really viable, we need to make it worthwhile to do that. We really need to get DNS second place so that you can actually trust the chain and the fingerprint you get. And you never have to say yes when you SSH into that new server again if we get all of this right. Yeah, and that was my second question about DNSSEC support. Because you said that, and I don't know how agents are working because it was just clearly explained, shortly explained. But basically, if you have AXFR and you don't do DNSSEC in designate, you will just get, I would say, your zone file, which has no DNSSEC records after that. So if you send it, for example, to bind or port DNS, whatever, it will still be unsigned. So for us, it's completely important to have DNSSEC. So how is it possible to make it work? So there's probably a couple of ways you can do it. So the easiest to explain one is the likes of the Akamai backend, where Akamai will zone transfer from us. And they will sign the zone and publish it on their network of millions of DNS servers. So that's the trivial way. You can then take that idea and apply it if you're trying to do this today, rather than when we get it fully implemented. You can then take that same idea. And the agent backend, the agent service, is it effectively gets a copy of the zone, and you can then do what you like with it. So you could run it through the bind's DNSSEC tools to have it signed there and then. You could do that with all of the backends. Longer term, we're planning to get DNSSEC built right in. So when the zone transfer happens from mini DNS, it will get signed at that point, or possibly pre-signed a little bit earlier, and pushed out. So the whole zone should be signed at that point. OK, I saw a last question then about the, you said that the agent receives raw data from the zone. Is it specific on the backend that will arrive later? I mean, for example, bind as $generates things that doesn't work in NSD, for example. So what you'll get in the agent is you won't get a zone file. You will get, if you're familiar with the DNS Python library, you will get a DNS Python zone object. You can then do what you like with that. So you might call the toText method on it, which will render a bind zone file. Or if you need to do something like, let's say you need to put it all into Power DNS into the database, you might iterate over all of them and insert them into the database. So you have a bit of flexibility there in what you do. Does that kind of, so does that answer the question? Exactly, thank you. You should definitely come to our fishbowl session at 5.20, I think it is. Oh, yeah. The use case discussion. Yeah, before we forget, we have a fishbowl session at 5.20, where we want to try and get feedback from users on what they actually want, what we're doing right, what we're doing wrong, and so on. So please come. No. I put my phone away before this. Joe, do you want to look it up? OK, Joe will shout it out in a minute. We'll tell you what it is. 306. 306. Thank you, Joe. Hello, my name is Tom. I used to work for one of those DNS companies on your slide, and now I work for REC Space. I've been sent from the future to tell you of your pending doom. Excellent. Just kidding. You guys always like to hear about our doom. So I have a couple of questions. What types of records do you attempt to validate, and how do you validate those? OK, so records, any record we support, we will validate. We have a, for every record type, we have either regexes, or we break them up into component parts. So for an SSH fingerprint, for example, we break out the type and the encryption type, and the actual fingerprint to the separate objects, the separate variables, and then we do validation on those. It's pretty in-depth the way we do validation. For the most part, we try and make sure that everything that comes in through our API is 100% valid, even if there are cases where some DNS servers would accept us, because we deal with bind, parity, NS, Akamai, Dinect. And when one of those services doesn't support, I can't think of a good example right now, some of them will blow up if you put a CNAME next to an NS record. It's totally invalid to do that, but some will actually serve that, others won't. So we generally pick the strictest set of things and validate that. OK, cool. My other question is, and I think I heard you mention it, support for XFERS instead of XFERS? Is that coming? Is that something you're interested in? Which one? IXFR. So we haven't got that implemented yet. There's a spec up at the moment. We're still trying to figure out how we're going to track all of that state in a scalable way. That is on the cards, where many of the NS will do an IXFR if requested instead of a full zone transfer. Obviously, when you start getting to 500,000 record zones, doing a full zone transfer, it's slow. Yeah, also the note you had about zone create and delete, there is absolutely a cloud provider here who unaccidentally dropped 50,000 zones on a provider. And pushing 50,000 zones to the edge on any provider is painful. So just be cognizant of that if you're attempting to do what looks amazing, by the way. Just be careful what you try to push. Oh, yeah. At HP Cloud, we've been running it in production for three years now, two years maybe at this point. So we know it works. Is there any support for creating pointer records alongside A records? Yes, so you absolutely can create pointer records. So obviously pointers are a little bit weird in that two tenants of your cloud might have IPs next to each other, but they actually live in the same reverse DNS zone. You can't really divvy those up into anything smaller than a slash 24, not without a lot of cheating. So we have an API endpoint in the V2 API for handling reverse DNS specifically. And it will handle your floating IP space and so on. It will show them the list of their floating IPs. And you can just go, I want this pointer on it. And behind the scenes, it will shove all of that into a shared zone so that customers can see or touch each other's pointer records. I had a question that kind of talks about the PTR records. I asked Kyle the PTR for Neutron. Like host names are a good example of something that's really at the boundary of designate Neutron and Nova all kind of fight for who controls the host name if you get it through the metadata server of cloud and then it's Nova, if you get it from DHCP, it's Neutron. Is there any way that, along with that, are y'all going to stick on just the authoritative side? How do you see all these things kind of evolving together? So we have a work session with Nova and Neutron tomorrow about much tighter integration. Effectively, today you're right. You type in a name. It goes into Nova. It might be totally invalid. It's not a DNS name. It has spaces. It has special characters. It has all of that fun. Sadly, there's not much we can do there without breaking the Nova API. So we do have to figure out some way of providing that information through to Neutron. Neutron then turning around, creating the port, talking to its DNS mask, putting the right stuff in there. And then if you've registered a particular network or subnet and saying, I want my servers in this to have public names. Here's the designated main ID for it. Have them call out to us. So that's kind of the direction we're going at the moment. Tomorrow is when we're hoping to figure out some of the smaller details, though. So don't have a great answer on who will own the name. I have a question about how you get messages from Neutron and Nova. And I'm assuming that's RabbitMQ or MessageBuds. Are those Qs that's messages created for Designator? Are you just relying on the generic messages coming from Nova Neutron? All right, so we get the generic messages. So it's the exact same stuff that Celiometer listens in on. So if you configure Nova and Neutron just right, you don't really need that slide, do we? If you configure Nova and Neutron just right, they'll emit the notification twice, once for Celiometer and once for us. And that allows us to consume it. So you get all the Nova and Neutron messages? Anything any service emits into Rabbit, we can pull in. The plug-ins are what actually you effectively get the raw payload into the plug-in. And you can do what you like with the content of it. All right, thanks. Hi. You described earlier that Designate could actually act as a secondary with an additional primary upstream. Could you describe a use case for that? So a big use case for that is public cloud and enterprise not wanting to hand out, not wanting to get rid of their internal authoritative DNS server, but they want to make use of the public cloud's mix of DNS servers. So an enterprise doesn't want to stand up 200 DNS servers around the world to get a nice and fast. But the cloud providers and the DNS providers absolutely do, they have that. So that's, I think, the primary use case for that. Well, it does also open up a theoretical possibility where you could run Designate internally. And have a Designate driver for Designate that uses, say, HPs or rack spaces Designate install as the place where all your DNS data goes. OK, yeah. Take the hybrid cloud buzzword right there. Private cloud, federating the DNS stuff out to the public clouds. So in that model, you really wouldn't be able to inject additional records via Designate. It would really just be acting as a pass-through. Yeah, it acts as a pass-through. And the API will actually, if you try to do a record update in a secondary zone via the API, it'll give you a forbidden error. Thanks. Any other last questions? OK, thank you guys. And 303, 306. If you want to come tell us what we need to do next.