Hey Dawn. Hey Paris. I was just starting to wonder if we had a meeting because I saw there's a huge thread about meeting times that I didn't read. Oh yeah, no, no, no, that was, that was me trying to figure out maintainer circle stuff and then realizing that we literally have like a million meetings and then it just like snowballed into how can we make this better? Hello everyone watching the recording. Well inside free fall. Yeah, async forever. Like, that's the TLDR there. Oh my God, meetings have just gotten, I don't know, I just have so many zoom meetings and I'm just so, so tired of them. This week has been better. The last two weeks have been better because of the time zone confusion. So you all went to daylight savings. We have not. All my meetings are an hour earlier. So like, instead of being done at 730, I'm done at 630. It's pretty cool. Yeah. I feel like I'm just so overwhelmed that the only time I do get stuff done these days is when I'm in a meeting, you know, or like right before the meeting, it's like high school all over again doing the homework. Still not working. Okay. I'm like doing the homework before the class. Oh yeah, we got a lot done this week because a bunch of my team is in Oregon and it's spring break. So a lot of them have taken the week off. Oh wow. It's been really quiet and I worked on the charter resource doc, Josh. I got a bunch of other stuff. I recorded my cube con talk that is done. Oh wow. Yeah. I'm going to be on holiday the next week. So the deadline is before I come back. So I needed to get it done this week. Yeah. The. Yeah, Carolyn and I have. Not. She's a really nice set of slides though. Yeah, it's been a pain. You had time until April. April 5th or something. Yeah. Yeah. Well, except, except not again, because you know, next weekend is Easter weekend.  So. I'm not going to be working next weekend. Yeah. The, which means that we really need to get our recording done. By Wednesday next week. So. I'm just prepping the agenda right now. Okay. So. Thank you. That going. Sorry, it's been, it's been back to back meetings this morning and for that matter yesterday. Now you know why I'm trying to preach that async life. Yeah, I know, I know the, the, the, we've been, we've been bad about like finalizing things like approving things, et cetera. If it's not. I feel more responsible than that. I mean, as a chair than. On. Then the crew, I think, like, I feel like we as chairs need to just do a better job on. Nagging. I guess. And nagging me and. Ourselves. We can do that too. And get better. Carolyn's here. Who else is here? Oh, just us. Oh, Josh. All right. We've got our agenda. Don't want to talk about what's going on in governance. Actually, before we start, when's our next TOC update meeting? Cause that's the stuff we should. That's going to be next week because they. No, wait. Yeah. It's normally the third week, right? And this week they had an emergency meeting about SIG observability issues. We got postponed until next week. And so we actually need to do the updates. Talk about governance. Talk about governance from a, from a perspective of like what we want to talk to the TOC about and like what's been going on. I'll write a note. We approved and merged the sub project template. So something to let governance know is available. And so that kind of completes the set of governance templates that we plan on. Except of course that last week, somebody pointed out something that was missing from all of the templates. But I, you know, we're going to treat that as a separate change. The, and that doesn't need to be brought up. We can just say we finished the sub project template. So we now have sort of a quote, a complete set of. What do we tell them about review? Cause remember, I thought we were supposed to like graduate before we. Yeah. So, so in those terms, in terms of graduation, the sub project template was actually reviewed by sod. The. I, as far as I know, you know, and I think we need to really write out the process for the sort of different kinds of documents. You know, because as far as I'm concerned. Having either the SIG or a working group. Formerly approve a document and then having one of our. To see liaisons approve it. That feels like sufficient process for me. I mean, that's kind of what we have right now. Yeah. So sod's only approved the sub project. One though, right? And we have about like six other docs that are merged. Right. I don't know the status of any of the other docs. I know that. Earlier on. Sod. No, not sod map. Looked at the other two governance templates. I passed Alina a lot of the stuff yesterday. So I'll catch up with her to see if she can LGT. And the retroactive issue that we have. For the docs that are already completed and merged. Yeah, we should have invited her to this meeting. I've been so. Like, like specifically invited her. She couldn't come. I did. Oh, okay. Oh, good. You're on top of this. The. Not. Hey, Paris. Does this mean going forward? Every single thing we merge has to get it. To see review. Or at least one liaison review. If it's going to end up on the website, it does. Yeah. Because they want to make, we want to make sure that it hears to the values of the TOC is. Trying to portray.  So we're advisory. We're advising them that these things are. I'm just checking on what I should be holding off on merging. Or like. Yeah. We should add them as, as a code owner or something. I'm not sure. Because. Well, I can't. Hard to tell right now what needs it. Yeah. Well, Do you want to set up a branch structure for this? Cause that would be the, that the standard sort of get way to do things. Is to actually have a, you know, a publication branch. And that, that none of us, you know, merge things to the publication branch until they've been approved. By our liaison. I'm down with that. That's like amazing. I just don't think we've gotten there yet. Cause like, I think our first step was to update the charter with what we want. And then do the, do the next bit. So I'm down with that. Whatever you decide there. Carolyn. So what branch are you pulling from for the website? Website is ruining my will to keep working sometimes. Cause it's so long. Right now it's in a branch called website. It's on two repos, you know, you are reviewed the one that's on the website. You are reviewed the one that's on the website. It's on two repos, you know, you are reviewed the one that's on CNCF contribute and he wants it so that. It can get merged and not assume that the website is live, which changes a bunch of links. So I need to go fix that. And that's not easy. So I need to do some thinking about how that'll look and work. Cause in the meantime, that like kind of breaks what we wanted the website to look like. This may be a couple PRs. Do you want to, do you want to share that out? Because I mean, to be perfectly blunt, I'm willing to appeal your horse decision sometimes. Okay. I think that's a good point. I think that's a good point. Cause like, I feel like decisions are not final. We keep trying to stage this somehow and then rolling it out without impacting anything, but we also want a whole bunch of review to happen, but the review is not happening. So like it's going to stay stock for a very long time. And like, so when I first did it, we kind of talked about, we're just going to merge these two PRs at the same time and have a website. We don't switch over the domain, but the website's live. It's going to be hosted at the URL. It's going to be hosted at, it's going to be hosted at the URL. If you don't merge them at the same time, or you don't flip the domain or whatever, like basically in a day or something, you're going to end up with weird links that go, don't go to the right place. Cause they assume it's going to be hosted at the URL it's hosted at. So it makes sense. But like in the meantime, it's like, can you read it on the GitHub or does it have to be rendered in the site? Yeah. Yeah. So I'm just, I'm just, I'm just, I'm just causing a bunch of stuff to just be going nowhere. And I don't think I've gotten a review on anything from the PR to SIG, contributor strategies repo. Can you do me a favor and lazy link those PRs on either in the chat. And I'll. Yeah. Sure that this gets done today. Yeah. Yeah. And please share those conversations, and I'll see you on the next one. Yeah. Yeah. Plus one. Because, because really, I mean, honestly, you know, I've been in the position before with stuff like dev stats where I have. Gone to, to see our Aida over. Okay. Because he's asked me for things that would have involved, you know, 80 hours of work by somebody. Yeah.  So I've linked both PRs. Because there's always lag between when I ask people for reviews and when I've rebased it last on, on the main branch, like we shouldn't actually merge these immediately because it probably needs more rebasing because more stuff is moved around. So if we get approvals, then I'll do another rebase and like update everything, but it's getting to be a lot of work to rebase it over and over and over again. Why don't you tell us where those files need to be? Because I mean, our directory structure, for example, is, is was fairly arbitrary and for initial convenience, it's not like we're attached. So with, let me share my screen. Let's look at what the structure should be. Is let me just go to the branch on a set it up so that we have a website directory and a bunch of stuff is, is actually going in this now. Because this is what gets rendered off of Hugo. So for maintainers, we have a section about community and that's like, we're project health went because project health went live, but I think we have a couple more as well. So this is where things would end up needing to be and they wouldn't quite be directly one to one underneath each working group anymore. So like I'm behind because there were files that you don't have been added since that would need to be brought into the content directory. Why are there two files called paperwork checklist? I messed up. Okay. I'm like, well, my first thought was, did I do that? No, it looks like I sort of thing I would do. No, it's like I type out. Okay. Yeah. Yeah. No, and I actually need to go through that because the paperwork checklist specifically needs to not be on the website yet. That is specifically not approved. That led off to an argument between me and Liz Rice about the ten box form being the canonical source of information. Okay. Yeah. Move it then. Yeah, we can't, we can't publish that yet. Yeah, but the trick is essentially content needs to be in here. And then if we want something to be a draft that isn't live yet, it's, it's. You put it in the markdown. Okay. So I don't know which ones in these is the draft yet. I mean, but essentially you'd put like one of these would be draft true. Okay. And then it wouldn't go be published to the site, but it would at least be in the right spot. So when we're ready to flip it, we don't have to move a file. Okay. So we could, we could use branches or not use branches. Just use the draft tag. Yeah. I mean, my inclinations use branches because often I'm editing several files at the same time. So, but I mean, you can still edit it. It felt like, felt like using the draft tag, then it would work too. It's just right now we've been iteratively merging things into a folder called draft. You know, yeah. So the folder is not really work right. Yeah. So one thing you can do is if you put draft on this, it won't get published, but it can at least be in the main branch and collaborate and work on it over time. Because our drafts live for months and having a long standing branch. I think would be hard to manage. Not really. But, but, but we can, if you want to do that management. Yes. It, it, right. We can enable both paths. Yeah. That's what I'm saying. Um, the, um, so. Okay. That's fine. So I mean, I think one of the things that we can do ahead of resolving, you know, the E horror requirements and everything else is, um, let's move our actual documentation structure. To match the website structure. So you're not rebasing all the time. Plus one. Do you want to do that outside of this? Poor cross. Cause this did.  That's fine. I can just rebase and move things. And then if we merge this first. That's fine. And that means, by the way, that's something to put in our update to the DOC. Which is, Hey, we're rearranging the website. We're rearranging our repository to match the structure needed by the website, which means some of your old links won't work. Yeah. And, and I'll, I'll, um, if you needle me after today, because the rest of my day is 100% back to back meetings. Um, I, I will also add that to like, our rebate and stuff. Yeah, because there's no reason to keep adding this work on to you. So that's fine. Cause we're going to do it eventually. And if we do it now, then that's less work to do later. Agreed. Yeah. Yeah. So I can do one more rebase right now. And then, uh, Nudge everybody. And then if we. We merge it. I mean, like nothing goes live, right? And then, you know, we can just kind of move forward. Not have to worry about this. Okay. Um, Wow. So that got off on the website, but, but I think what else? Oh, for governance. Uh, we're now working in a draft, uh, Dawn primarily, um, uh, is working on a draft of. Charter suggestions. Um, you know, advice to, um, projects on creating charter information. Um, uh, which we're vaguely looking, once we actually have this board for it, vaguely looking at, at adding to the list of CNCF requirements. Um, I think we can do that for a say, graduated projects. I just dropped the link in the notes. Yeah. But we want to have the, what is the charter? How do you write one before we start telling projects that they need to have one. Even though I realized the CNCF way is to use the tool. In the reverse order. So if you have any feedback on that doc, that would be great. Did you get a chance to look at it, Josh? I saw you were in the. Yes. Yeah. I opened it up. I looked at it. Um, and it was, it was, it was, it was, it was, it was, it was, it was, it was, it was, it was, it was, it was something that we talked about. And that was about as far as I got. Okay. Yeah. Cause I, I reorganized it into those. Um, you know, into multiple sections. Cause I had everything kind of. Yeah. Together. So I think it's, I think it's a lot better organized now. And a little clearer. All right. Last call for governance alcohol. I think that's it. It's what we've been doing governance. You to bomb. Um, obviously feel free to continue with website stuff on, but anything else you want to mention to TFC. Um, which is putting together to keep contact, I guess. That's the, that's the biggest thing. Remember, we're going to record early next week. To be honest, like I had lost people on my team. And I have way too many things on my plate right now. So I haven't been able to do much around contributor growth. I've been doing it for a long time. I've been doing it for a long time. I've been doing it for a long time. I've been doing it for a long time. I've been doing it for a long time. I know the feeling I've had a wreck open. To have somebody split red hats, cloud native projects with me. Yeah.  We lost the wreck. And I'm not getting it back, but I still have. Twice as many commitments. As we did with more people. So. Uh-huh. It's been really, I'm just letting you know, like where I'm at. I've been working on this and now it's been taken away from me. Yeah. So. I'm sorry.  I was going to add something to contribute to growth, but go ahead. I was just going to say a, how can I personally help? I mean, obviously professionally, how can I help and be. How can we put a. Word out horn on anything that you're working on that you want to see more help with. So, you know, I'm not sure if it's going to be a good idea to add additional reviews and like edit and contribute to these, these docs that we're writing right now. So if other people. To do that. Yeah. Yeah. That'd be really helpful. Cause I know. I feel like my participation is holding up. The contributor ladder. For example. I. From my perspective, you actually did give us some feedback on the contributor ladder. I'm actually waiting for Karen's full feedback. much as mine. So that's the other thing. But, but my goal is for us to approve the contributor ladder by next week's contributor growth. So I'm gonna, gonna ping her about it again. And because the thing is it's not like, it's not like a document doesn't have a lot of her input already. It's just, I really need her to do a final check on it because I made a lot of changes last round. The, so I'd like to finalize that next week because it's, you know, a it's something a bunch of organizations been asking for be I've already put it into play with an existing project because they couldn't wait. And, and also several governance templates have references to the contributor ladder. So kind of, you know, between all of those things, we kind of want it yesterday. So I'd like to get it to being approved by the working group on Tuesday. And then the remaining pending thing being to us to see liaison approval. If we want to try to approve it by Tuesday, we need to get the edits in of changing maintain our specializations to an additional document that isn't the template. Okay, right. And so our last discussion of that on Slack was I was suggesting that we don't actually do the additional document at all. Scrap all that because I was trying to write the additional document and I was finding it impossible to write. And when you find something impossible to write, it's often because it turns out it was actually a bad idea. And so my suggestion for that is I just put that in as a note in the main document saying, Hey, you might have these maintainer specializations depending on your project. And there's a list of them. But the actual requirements for them are going to be very specific to your project. Because like I started out with, say, documentation maintainer because I have a good example that from Kubernetes. And I'm like, okay, let me take the Kubernetes requirements for documentation maintainer and try to make them generic. And when I eliminated everything that was specific to Kubernetes, I was left with nothing. So the and so I'm like, you know, I don't think this is really something we can template. I think if projects do need specialty maintainer types, but they're very tied to how the project operates. Is the most important piece there just to tell them to document? I feel like yeah, that I feel like that is the most important part to hit home is like as long as there is something written about the actual ladder. I think the reason why we originally wanted to try to include content like this somewhere is output from our group is because people are familiar with I'm a maintainer Iceland code. But these other types of activities and roles aren't getting adequate representation or are being downplayed compared to code. And so it was an aspiration to somehow try to help address that, I guess. But if it's not working, I don't want this to hold up the whole ladder. Yeah, well, the thing is, for a smaller project, if you look at what I have in there is the definition of maintainer in general. That does not exclude documentation. Right. It doesn't say nowhere on it. Does it say that a maintainer has to write code or review code? It says that they have to review stuff. Yeah, but but it's very generic in saying what stuff is. And yeah, and I think I think advocating for having calling out non-code roles is something that really belongs in an advisory document, which we can write later. OK, so maybe let's just add, I'll add something that says we want something that just talks about non-code roles. Yeah, because one of our big to-dos is that we actually ought to have a more narrative advisory document to go with each one of our templates, like all of them. And so that could go in there, right? As we could say, hey, here's some examples. Here's the Kubernetes documentation maintainer. Here's the program manager for Linkerdee. Here's all of these other roles that people have. But these are we're only going to link because they're not templatable. I think adding that as resources at the bottom and exhaustive list of other people's templates that we think are awesome resources and examples is required. Like, I feel like that's in practice, you know? So, yeah, I think, like, especially like the Porter, Kubernetes, et cetera. I think that would be really good. So we also have the contributor framework that Catherine and folks have been working on that also is kind of review lists, and that's also, again, me as well. So I'm going to put some eyeballs on that based on what I'm seeing and what we know now that we have contributor ladder. As well as a draft of the recruiting playbook. It sounds like we're going in this direction where we want this contributor framework to be this umbrella and then have all of these other contributor related docs, not necessarily governance. But those two docs specifically included inside of those and inside of that framework model. Do I have that correct? Just trying to look at this. I don't know. I haven't been working on the framework. So, okay. Because I look, I think I'm going to figure out our content strategy, to be honest. What you laid out isn't actually something we ever explicitly said. Yeah, that's exactly. So that's why I'm bringing it up right now, because that's kind of where I'm seeing this evolving and going. Because the framework that Catherine put together is sort of this like umbrella of all of the different kinds of sections. And it seems kind of like what you're doing for governance too, where you just break off each section with like, there's the narrative and then there's the templates. That's just what it looks like from just a higher level. I did review the framework part too. I'm just waiting to hear back. So I'll get us some more eyes. We'll call them, I want to call them community eyes.  Like end user feedback eyes. And then sounds like that's it for contributor growth. And then obviously eyeballs on the recruiting draft as well. All right. Next is maintainer circle, which y'all saw on a thread yesterday with us going back and forth as to what the heck we're going to do here. And what the heck we're going to do here really means a lot of the maintainers have been saying to me that they have had hard time following maintainer circle and that they want dedicated invites and that they want to be invited. And all these other things. And the problem that we had before and we couldn't reach consensus on is like, should we have a dedicated meeting for this? A lot of people said no, no more meetings. Let's try to incorporate it in our meetings. And then we try to do this like every other meeting thing, which doesn't work for Google calendars. So it's kind of like problem statement. How can we get them a dedicated invite without having a ton of overhead? So what we came to is what we have in the thread. So we'll start that. I think we said I guess of May. So I don't think anybody here is going to see any differences or changes until then. But we will have a dedicated meeting for maintainer circle and that's really it. I'm looking for another host. I'm sort of this like, I feel like I'm playing this role right now where I'm the backup. If we don't have anybody else, then I'll step in. But I'd like to start really making this sort of like a, for us like maintainer done event kind of a thing. Yeah. And well, I can help host an individual event. I cannot track down and find speakers for things. At least, you know, not anytime before August because a good portion of my main redhead students are tracking down and finding speakers for things right now. And the good news is I have, we have managing grief and law set right now. But it's not set set, but we need to confirm. We have a psychologist that works with maintainers, not just like maintain, but folks in tech, but she has experience. She talked to cube con once. So she's going to talk about that. And then we have a maintainer that I won't name that is going to come and probably do a fireside chat about her experience with managing open source for in a time where something not great happened to her child. So I think that'll be pretty nice. She feels like she has a lot of lessons learned from that experience. And so that's that. So you could host that one, Josh. It sounds kind of like uber depressing, but I think it might be uber worth it because it's not a conversation that we talk a lot about, but it's stuff that we obviously deal with, especially in this pandemic. So I can pretty much spoon you stuff if you want to host, Josh. Okay, what date is that? We don't have one yet. We need to make it up. So that's the one I think we'll have whatever that May date is that we figure out for the new one. Make sure just let's not do the first week of May. Yeah, I know. That's cube con. Yeah, yeah, that's good. Yes, I added just in the notes. I keep getting asked this question on can maintainers outside of CNCF projects attend. I think it'd be great if we could just address that in the invite or on the page so that we're not trying to, because it seems really unclear right now. So well, do we want to vote on it? I mean, as of right now, I said no. Okay, could we just put that then on the invite or something? So people. But you know, I mean, I'm open to hearing other thoughts. There's a couple of arguments for yes and before one of them might not be valid. So I guess one of the questions is what is attendance been like out of just the CNCF maintenance? We see about nine to 12 people each time, including the homeless speaker. Yeah, we start off with 20 to 25. I also think that's because we haven't had a dedicated way of advertising or promotion. So I think that's huge. So right, so getting more attendees just for the sake of having a large enough group for there to be conversational synergies. Not necessarily something we need. Or is it? I'm asking. I don't know. Well, I know I'm asking you because I've only made one of these things so far. And that one did have a lot of conversation. I feel like once we get a good amount of CNCF folks, I mean, there's 60 plus projects, right? A thousand maintainers. Most of the maintainers still have no idea that this exists. So that's the only thing. I mean, and the other thing is like most of the maintainers are sharing really personal stories during the fireside chat part. And I guess they would have to be OK with outside folks that don't abide by our code of conduct coming in and potentially tweeting their stories. So given those, the only other group I feel like we should consider is what I would call pre-CNCF projects. That is projects that have already announced their intention to apply for Sandbox. I'm not saying we necessarily should do those. I'm saying that would be the outside group to consider. I think given what you're saying now, we don't want to consider opening this up to any maintainer anywhere. Yeah, I think mine just had to do really with the code of conduct. I have a quick question. The CNCF has the ability to message all the maintainers. Have they done that and notified people about maintainers? Just once. Just once. Not something that they want to do regularly. Yeah, OK. Which is another reason to have a reliable schedule. That's kind of like their CubeCon hotline, and that's really it. Oh, because I get something every month or two about open talks with people at the CNCF and support staff. Yeah, I don't know anything about that one. I don't see those. Oh, yeah, I get an email from the CNCF every month about it. You get that if you signed up for the CNCF Speaker Bureau? No, no, it's not that one. It's a line of support between maintainers of the CNCF project and the support staff. So like Amy and everybody. Incubated project. Oh, the Project Sync. Yeah, Project Sync. Thanks. Yeah, I wasn't quite sure what it was called. Yeah, I usually attend those. And if we have a maintainer circle coming up that I know the schedule for, I mention it to people. Great. And for that matter, if we remind, if we have one schedule, we remind Amy about it. She'll mention it. OK. Sorry, I was just trying to think of more avenues when we were already connecting with maintainers. Yeah. Yeah, it's a good idea. I wanted to honestly, I wanted the just the calendar invite on that distro. Meaning like invite maintainers at and then you have it on an optional on your calendar. If you want to come, you come. That's kind of what I always envisioned this as just like an open door for CNCF maintainers. All thousand if they want to come in, they can come in. But I know I do see like, I feel like it's been exclusive due to the fact of our reaches only so far. So that's definitely been I meant I was talking to Karen about that extensively too when she was when she was you know. One of the other things that we can do once we work out the issues with making the website public is, of course, have a page on the contributor website for this. Oh, whatever. So people place for people to find the schedule. Yep. The so yep. OK. That's it for that. And then so met a group stuff that I captured for us for some actions. I'm going to quickly draft some of the charter graduation review stuff that we talked about today. That incorporates the like the TOC liaison stuff, like having one LGTM there. And then also update the TOC with the new structure to match the website. And then Josh, I think you said something about helping out with some kind of GitHub setup, if I recall. Yeah. There is an open pool or actually I'm sorry, there is an open issue for you to do the pool request workflow anyway. Right. And and that was partly dependent on what we were doing with the documents for the website. So yep. Doing PR flow. And then did I miss anything as far as meta group stuff that needs to get done? Oh, actually new calendar invites. Amy, I'm actually looking through our issues right now to to make sure nothing is falling through the gaps. So to finish up with the calendar thing. So Paris's proposal, which I think we can go forward with was that we're going to do maintainer circle once a month on what are we doing it in the first of the third week of the month? I've forgotten. I'm going to I'm getting out the exact what we said so that we don't do. And then and then do this meeting only on the alternate two weeks. So basically we only be having this meeting every four weeks that depends on our ability to do queue clearing asynchronously. And if that really doesn't work out, then I'll be proposing adding a half hour queue clearing meeting at a different time. But hopefully we don't have to do that. Let's we and let me and you can we can attack like some kind of slack stand up together too. We can like rally the troops. So it is a guess that would be the other right. That would be the other way to do this would be slack stand up and that would be very much better for people who are in non US time zone. So so the official is first Thursday maintainer circle because first Tuesday is always sick updates with TOC. And then third Thursday are sick meeting here.  You know if we're actually doing a slack stand up, we could theoretically do that once a week. Yeah, I mean that's fine with me. So all we need to do is just post items that are currently pending and who's currently responsible for them. And then that person could comment on what status is. The because in a lot of cases people just need to be reminded that they hadn't finished their review on something. Yeah, and the good news is most of our issues are done. I'm like going through them right now. I'm looking at them right now, half of them. So we've got 26 issues open. I'm gonna say half are closed and done. What do we what day of week we want to do that on? I feel like I don't want to. I want to do it earlier than Thursday just because you know for like dawn this is Thursday night. And I you know and if you know somebody's European and they're taking Friday off, then they're basically getting a ping on something. They're not going to get until next week. So maybe like to do it on the Tuesdays that we don't have groups that we don't. Yeah, I like that idea. Okay. All right. Now let's document it. So I stand up on Tuesdays that are group days. And then Paris to send a note to mailing list what changes. All right. Yay team. Everybody's tired. I think I have a very good idea actually. Yeah. Oh my gosh. So did anybody actually see that horrendous PR that I did the other day that dims got me out of? No. Oh yeah. What was it one of the things where you rebass and you end up dragging in the entire history of the project? I'm familiar. I'm intimately familiar. I've never done that. I have not laughed that hard. This is another repo last week. It was all in a mess. It was a mess y'all. It was like wait. I think I just checked everything in. We have all been there. Dim St. My particular favorite one was where I did a rebase that somehow backed out every commit in the project from the last six months. That's beautiful. That would be a lovely thing to do if I know how I did it. Because there are times when you actually want to do that and you end up spending an entire weekend doing that. And I'm like if I had any idea how I did this that would be a good get trick to keep around. But I have no idea how I did it. If you have a stale main and you rebase on main and then push up, you can delete hundreds and thousands of commits that have happened since you last did it. Yes. Yeah. Yeah y'all. Yikes. Never done that either. You have no idea. It took me so much to say to send that in Slack. I'm sitting there like should I send this? I need to send this. If it's any consolation, I have done that despite the fact that I have also been paid $400 an hour to fix somebody else's get repo. It doesn't. Git is a tool with notably absent guardrails. It's like Star Wars in the bottomless pits. It doesn't take a single character out of place, can get you to a place where you can't figure out how you got there or how to get back. Honestly, that's where I am with one of the PRs that's in the key right now. Recruiting, because there's a maintainer circle like weird update to it. Yeah. It's called Recruiting Guide. And I have no idea how that, like I just have no idea. It's usually because you were switching branches around and couldn't keep track of what you'd added. Yes.   Yeah. Yeah. That's a really good visual cue for me because sometimes I'll look at that and I'll be like, wait, oh, I have 11 unsafe changes here. I need to save those before I switch branches. That's exactly what it is. Yeah. So. So embarrassing. It's slow recording. Yeah. Welcome to our Git clinic. Welcome to our Git clinic. Yeah.  And the fact that the rest of us are using it is kind of one of these industry accidents. He didn't mean it to work for anyone, anyone else. I'm getting off here. I'm going to save 15 minutes before my next meeting. It's like, oh, what do I do? Bathroom break. Can't wait to see y'all in person. Whenever that. See you soon. Bye, everybody.


Hi and welcome to the session. My name is Mansi and I'm going to help you with the following question. The question says the dot product of a vector with the vectors i cap plus j cap plus 3k cap, i cap plus 3k cap minus 2k cap and 2i cap plus j cap plus 4k cap are 0, 5 and 8 respectively find the vector. Let us see the solution to this question. First of all let the required vector be x i cap plus y j cap plus z k plus y j cap i cap plus j cap is equal to 0. This implies x plus y minus 3 z is equal to 0. We call this equation 1. Similarly, plus y j cap plus z k cap minus 2 k cap is equal to 5. This implies x plus 3 y minus 2 z is equal to 0 and we call this equation 2 again plus y j cap plus z k cap into this implies 8 and we call this equation 3. Now solving 1, 2 and 3 for x, y and z to 1, y is plus 2 j cap plus k cap. This is also our answer to this question. I hope that you understood the solution and enjoyed the session. Have a good day.


The fiery horse with the speed of light, a cloud of dust and a hearty hyo silver! The Lone Ranger! The Lone Ranger Before this exciting adventure, a word from our sponsor. General Mills, makers of Cheerios, the ready-to-eat oat cereal that gives you go-power and wheaties the breakfast of champions, present by special recording, The Lone Ranger! Fullback Bobby is the boy of nine. He can really hit that line. He's the star because he knows. He's got go-power from Cheerios. Yes, he's got go-power. There he goes! He's feeling his Cheerios. Cheerios. Cheerios. Yes, it's a fact. Cheerios does give you real go-power. You see, Cheerios is made from oats. And every delicious spoonful of Cheerios and milk is real muscle-building food. Each spoonful contains vitamins, minerals and proteins your body needs. Yes, the good things in a Cheerios breakfast do good things for your body. Help you have healthy nerves, good red blood, strong bones and muscles. And Cheerios is so much fun to eat with its distinctive O-shape and its wonderful toasted oat flavor. So tomorrow morning and every morning start the day right with a Cheerios breakfast. Then you'll hear people say... He's feeling his Cheerios. With his faithful Indian companion Toto, the daring and resourceful masquerider of the plains led the fight for law and order in the early western United States. Nowhere in the pages of history can one find a greater champion of justice. Return with us now to those thrilling days of yesteryear. From out of the past come the thundering hoofbeats of the great horse Silver. The Lone Ranger arrives again. Come on, Silver. Let's go be close. I'm Silver! For several weeks the Lone Ranger and Toto had been trailing three outlaws led by a man named Baldi Bennett. The trail had been long and difficult and as they approached the town of Rohide the tracks they had been following suddenly disappeared in the moonlit darkness. The two men grew rain and dismounted to study the hard-packed rocky ground. Brooks and he's smart at covering tracks. It's slow work trailing from here. I wonder if they've gone to town. Maybe they'll go there. Maybe Camping Hills. Hard to say. Well, you look for their trail. I'll ride to town to tell Marshall Joe how about Baldi meet men. That's good idea. I'll meet you here in about an hour, Toto. Maybe then we pick up trail again. I hope so. I'll see you later. Come on, Silver. Unknown to the Lone Ranger and Toto the outlaws were already in town intent on robbing the bank. While Baldi Bennett and Jack Murdock worked at the safe Clip Nolo and Squint stood guard outside. Squint said, Someone's coming this way. Get the drop on him so we can't sound the alarm. I'll go inside and warn Baldi and Jack. Squint ran to the bank to warn his friends while Clip listened intensely to the sound of approaching hoof beats. The rider was Marshall Joe Howe making his nightly round of town. As soon as he came into view, Clip called. Draw rain, Mrs. You're covered. Draw rain and stop playing. I'll get your hands up. What's going on here? Nothing for you to worry about if you keep quiet and do as you're told. You're talking to the wrong man. Now, for Marshall who reached for his gun, Clip saw the moonlit badge on the lawman's vest. Instinctively, he triggered his gun. Marshall Howe fell from the saddle. I told you to keep that trigger quiet. What's the idea of the gun, Clip? Tell us the lawman. He went for his gun. That shot will bring everyone in town here to investigate. Hit the saddle and scatter boy. Did you get the cash, Baldi? We cut it. No thanks to you. Come on. The gang was racing away from the bank when Marshall Joe Howe regained consciousness. As he struggled to a sitting position, the lone ranger reached his side. Marshall Howe, are you all right? Easy, easy. Great cop, Mr. Where'd you come from? I just drawn rain at the back door of your house when I heard the gun play. Everyone in town heard it there. Come on here. You're a man. Don't worry about my mask. You need help. I'll be all right. Hey, what's the matter? What happened? Marshall Howe, what happened? Hey, who's the mask man? The mask man's my friend, the lone ranger. Don't make some banks better off. Four men, they had it south. You'll be taken care of now, Marshall. I'll go after the bank robber. Moonlit tracks on the ground guided the mask man from town. But pleasantly, he reached the place where the tracks separated. Without stopping, he continued his pursuit of one of the gangs. The powerful stallion gradually reduced Clip Noh's lead. Looking back over his shoulder, Clip saw his pursuer. He spurred his horse.  Get up there! The roam was no match for the mighty silver. Clip snatched his gun from its holster and fired over his shoulder. The shop went wide. The mask man took his coils larry from its place. A moment later, the rope arched through the air. Clip saw the loot too late to escape. It dropped over his shoulder. He jerked him from the saddle as his hard-pressed roam raced ahead. Too badly jarred to struggle, he was barely conscious when the lone ranger halted the great horse Silver nearby. Checking his head to clear his vision, Clip saw his roam stop of its own accord on the trail ahead. Then he heard a sharp command. He got the gun. Yeah, I don't mind as well. My arm's been to my side, so I can't use it. No, on your feet. Hey, hey, your mask. That's right. The idea... dates me like I was a local stay in the San Peter. I figured you were alone. As far as you're concerned, I am. Huh? I'm taking you back to Rohan's. What? For what? Bank robbery and murder. I'm going to turn you over to the law. An hour later, the lone ranger drew rain with its prisoner in front of Marshall Howe's home. Inside, Clip Nolo learned the identity of the man who had captured him. Marshall Howe chuckled at the expression on the outlaw's face. I don't want to thank you for bringing him in, mister. His friend got away, Marshall. Yeah, but this is the fella who shot me. Who are you? Clip Nolo. This fella traveled with Baldi Bennett's gang. What? Baldi recruited him in the town of Green Rock. How'd you know that? How don't I have been on your trail for weeks? My trail? Baldi Bennett's trail. When he reached Green Rock, he had two men with him. A safe cracker known as Chicago Jack Murdock. I've heard of him. And a scar-faced gunman named Squint. Those two traveled with Bennett for over a year. I didn't know Baldi Bennett was anywhere near here. I came to town earlier this evening to warn you about him. I was too late. You know more than I figured. I reckon I might as well talk. Those fellas never trusted me anyway. Where are they going from here? We split up to throw the law off our trail. All of us were to meet Friday at Chimney Rocks about five miles north of the town of Moose Jaw. Then Baldi planned to take us to some fella in Moose Jaw. He said he'd hide us for a price till the law gave up looking for it. Who's the man in Moose Jaw? Baldi wouldn't tell me. Neither would the rest of the gang. Squint said most fellas on the Dodge know the gents. Uh-huh. It isn't the first time I've heard about that man. You know him, Marshall? I wish I did, Mr. I don't know how to find him. How? I don't know yet. We'll get him. Adios, Marshall. So long, Mr. and Frank. I'll send the deputy in to take the prisoner to jail. Fine. Let me know if you overtake Baldi and his men with the loot from the bank. Right. Late the following Friday, the masked man and his Indian friend reached Chimney Rocks north of Moose Jaw. We're only five miles from town, buddo. Not good. He won't take Scout to Blacksmith. Oh? A shoe on left front footloose. We take him to Blacksmith to Titan. While you're in town, learn as much as you can about Baldi Bennett and his friends. Ah. We try to find out if anyone in town see Crook. I'll wait for you in the hills near the campsite we used the last time we were here. Now, me remember, please. I'll see you later. Not right. Get him up, Scout. Don't!  Hold down. Hold on. Easy, Scout. Easy. He dismounted and led Scout inside. Cinder, a beady-eyed man in his late 40s, stopped his work to study the Indian and the horse he led into the shop. How? I rescued him. Horses have loose shoe on left front foot. Ah, I can fix that. But I don't work cringians unless you get paid in advance. Well, how much you chide? Sid named the price. Then watch Tuttle take a well-filled pouch from a pocket of his buckskin shirt. As the Indian dropped a coin on the Smithies forge, Sid grinned, exposing a roll of uneven tobacco-stained teeth. I reckon I had you figured wrong, didn't you? On that all right. I'll do a first-rate job for you. Ah. Let me come back by and by for Scout. We'll continue our lone ranger adventure in just a moment. All over the country in every direction How you, how you do it means a question And here's one that happy people have to say Hitton, oh, weedies And doo-doo-doo and okay, okay Sure enough, take Midwestern champions for instance. When Bobby Feller takes the mound, the outfield boys sit on the ground. That weedies pitching leaves them there them there watching batters fan the air and when we name our weedies crew big Ted Klauzewski's in there too he'll face those hurlers day or night and knock their fastballs out of sight Bob Feller and Ted Klauzewski both know that weedies magic there's a whole kernel of wheat in every Wheaties flake Wheaties breakfast of champions keep on eating your weedies and you we do do do okay now to continue unable to learn anything about Baldy Bennett and his gang thought he'll return to the blacksmith shop Sid Cinder grinned at him knowingly where'd you steal this painting you mean not stealing chef March might figure different if he saw the mask he got me a saddle bag a mask yeah a black silk mask just a kind of ferret way to hold up are you stupid take it easy take it easy I might be a mighty good friend to you what you mean I've hid lots of fellas like you for a price of course you hind crook sure for a price like I said if you're in trouble I'd be willing to feed and show to you to the law gets tied looking for realizing the grinning blacksmith was in reality the man with whom Baldy Bennett and his gang hope to find sanctuary title decided to encourage Sid's mistaken impression it's safe for you to shove on you can clear out no one will be any the way they share of them town how'd you get way with heightened crooks the sheriff thinks I'm an honest you fool him huh him and everyone else in town I wouldn't offer you the use of the hideout but I've had tough luck lately maybe me need to hide out right now I thought as much come on I'll show you where to bunk with a quick look outside to make sure no one was watching Sid led Toto through a door in the shop to his living quarters there he lifted a trap door in the floor down first you follow me steps led to a well-liked cellar beneath the shop where three men played cards at an improvised table in the lantern light Tonto recognized Baldy Bennett Chicago Jack Murdock and squint Baldy studied the Indian closely as Sid explained I got a new customer boys he's on the dots to what do you want it for engine or stealing for one thing if you ask you sit what's wrong Baldy what's the idea the gun I'm covering the engine why he didn't do anything get your hands up red skin listen Baldy shut up sit Jack take the engine's guns you can't get away with this Baldy the engine's got as much right to be here as you have you know who he is what do I care who he is as long as his money's good you'd probably give me a phony name anyway if I ask a question he's Toto the engine who travels with a lone ranger local I was in Laredo when he brought in a friend of mine he and the lone ranger captured the engine didn't see me but I'll never forget him but it's rich he's baldy right me not Tom you don't have to I know what made you think he was on the dodge said but I found a black mask in his saddlebag man I thought it was now a little ranger wears mask yeah but I didn't connect the engine with him tie his hands and feet squint while I keep him covered all right gag him with your bandana check yeah what is what are you gonna do with him kill him there'll be a fool the masked man comes looking for him and finds him dead will be in real trouble but we can't let him go he knows too much you can't have him lying here dad we can't carry his body out of here it's just one thing to do get a whole dug right here in this cellar floor before we kill the engine and we'll be ready to bury him without any loss of time that's a good idea I get some spades and picks from the shop and we'll start digging meanwhile as darkness fell the lone ranger waited impatiently for tunnel to return from town eager for news of the outlaws they had followed he decided to ride to meet his Indian friend when he reached the edge of town without seeing tato the lone ranger became concerned pulling his hat low over his eyes to conceal his mask he rode into moustache ahead was the blacksmith shop apparently closed for the night as he passed it off when he sounded on a great horse silver when he didn't reply the lone ranger drew rain the faint light coming from the dying fire inside the shop revealed scout where Sid Cinder had left him as the lone ranger turned from the shop window he felt the barrel of a gun at his back what's the idea stranger turn around slow keep your hands away from your hosted who are you slim mark sheriff of moustache County and it's when you what oh your mask I can explain the mask sure save the explanation you're going to jail for what suspicion of being Baldi Bennett or one of his gang you know about Bennett ever since an Indian came to my offices even tell me those crooks were around here I've been on the watch I saw you right into town and come here but I didn't spot your mask till you turned around where did the Indian go after he talked to you might have left town for all I know he didn't his horse is still in the blacksmith shop at that moment scout winnie to his mask friend and the great horse silver as the sheriff turned to look through the shop window at the restless paint the lone ranger brought a rigid palm down hard against the lawman's wrist with an exclamation of pain and surprise when March dropped his gun he's a gun the ground for the time being here you've got me covered I'll host to my gun if you'll give me a chance what kind of a chance I think tunnels inside that shop my Indian friend he may be in trouble I'm going in there to look for him what about me I'm with me if you like or wait here for me while you break in this place that's blunt but it's a general idea it's illegal but if the Indians name Tonto and you're the man I'm beginning to think you are many people call me the lone ranger all right I'll go along with you good you may need your gun here thanks now I know you're on the level is there a back door of this place yeah it opens in the city's living quarters come on inside of force the lock wincing at the illegality of the action the sheriff watched silently while the lone ranger forced the lock on Sid Cinder's back door a few minutes later they entered the dark living quarters behind the blacksmith shop as Scout whinnyed restlessly from the shop on the other side of a flimsy partition alone Ranger heard the sound of digging and the murmur of men's voices the sheriff whispered hey where's that noise coming from look at the floor sheriff she's a light coming through the crack jumping Jupiter it's a trap door there's a seller under here and you know but it's no as Sid stepped into the room from the seller steps the lone ranger pressed his coat against the crooked blacksmith's ribs don't make a sound oh you've got the engine downstairs I said yes you'll keep him covered sheriff I'll go down after his powers I'll watch him you keep quiet sit there don't try warning those others as the lone ranger descended the narrow stairs for the cold in each hand Chicago Jack Murdock and squint continued their work on the hole they were deepening for Tato's grave assuming that Sid Cinder was returning to the seller Baldi Bennett turned from his work to speak to the blacksmith too late he realized his mistake reach Baldi's gun fairly flew from its holster but a silver bullet smashed the weapon before it completely cleared leather the second bullet hit Baldi's shoulder driving him back into the hole dropping their spades squint and Chicago Jack grabbed their guns the masked man's pulse roared again a bullet grazed the safe cracker's knuckles while squint staggered back with a broken arm if you want more gunplay oh no get your hands up and keep them there bolstering his right hand gun the masked man took a knife from a sheath on his belt and held the blade out hold out your hand still covering the wounded outlaws he slashed the ropes around the indians wrists a moment later Tato took the gag from his mouth me may not think you'll find me in tank you must have I might not have found it all if it hadn't been for scouts these fellow Baldi Bennett Chicago Jack Murdock and squint where is the loot from the cattleman's bank me here and say money and gold in saddle bank they're unbunked good now if you'll tie their hand Tato will take these three upstairs I really trouble with those guns mister everything's under control sheriff oh i'm down kid you're the rest of the group you've made a mistake chef i'm just a poor bunch you're a two-faced triple twisted double distilled crook sheriff the stolen cash is there on the bunk I will have these men tied in just a minute I'm mighty grateful that you for tonight's work if it hadn't been for you I might never have found out sit was in cahoots with the crooks I'm glad Todd and I were able to explode him if you send a telegram to Marshall howl and raw hide he'll send someone to pick up the stolen money good I will help you take these men to jail that'll hold them can't you stay around town mister no sure if we're leaving now how those waiting outside with the horses I sure hope you'll come back soon we'll likely meet again goodbye and thanks again that's what a lot of crooks say after a tangle with tato and the lone ranger the lone ranger a copyrighted feature of the lone ranger incorporated is produced by Tendall Campbell Muir incorporated the part of the lone ranger is played by brace beamer your announcer Fred Foy listen to the lone ranger brought to you by special recording Mondays through Fridays at this same time


So, part of the objective was to have GZ video conferencing on OpenBSD and to have a development environment where I can prove that all of the needed core components can be isolated. So there's no magic discovery or hidden communication, whatever, which would bite you when you try to scale out later on. So all the communication channels would be known. And to realize that I was using one bare metal machine with OpenBC, of course, and then VMM configuration to have four virtual machines for the four basic components that you need for providing a simple basic GZ video conferencing session. On OpenBSD side, a well-known VMM, nothing special here. VMC tells for controlling the VMs and the VM.conf I'm showing on how to define them. And on the GZ side, you just have a web server that can do reverse proxing of HTTP and then an XMPP server. And for, given the reference implementation, they have prosities, the, let's say, natural choice for that. From GZ itself, there's Chacovo, the GZ conference focus server, who manages all the requests about who's needing a web conference, who is talking to whom in which room, and can also assign then the needed video breaches, which is the next component, which is an SFU for all the media streams that are going out to the browser. So it's not messing up between the conferences that might be running in parallel. So that one decides, Chacovo decides which JVP is connected to, which user. And an additional thing what most people want is GZ, the GZ broadcasting infrastructure for recording those conferences and streaming them out to YouTube. And for whatever reasons that part YouTube is hard coded. So you cannot use something, something else right now. They say they will make in making it up more generic, but that's the to do list for the last three years or something. I skipped a little bit. So that's the needed TCP-IP networking you actually need. If you go to the default installation instructions, you would see an architecture of maybe 12 components and then maybe three communication channels between all those and that is just overflowing the people's mind. But this is what you actually need. So the browser to the web server and proxy to BROCID and a connection to the video bridge. That's all you need. On the internal side of GZ, there's just the video bridges. Here I've chosen to for showing a bit of scale out and an external GZ bridge recorder. And they are going all to present, advertise their presence, their health to to BROCID and Chacovo is just subscribing to that channel and pulling in health information like I have an unallocated video bridge I could use for the next web conference request. This one didn't work. That's just the install step. So we'll skip those a bit, a bit more briefly. So we are creating just a basic OpenSD installed system into a Q-Card 2 image and then copy it over for all the four machines. And with this, VM.conf, those four machines are being brought up with a local, local networking setup. So that's all you need. Of course, all those VMs could run on their own bare metal machine. There is no hidden or implicit communications channel, which would only work on VMM based machines, or that would be a valid architecture for having four VPS machines to a digital erosion and to a head snore. So that would still work with the setup. The one thing you want to have for less typing or whatever is a host entry. And there will be way more FQTNs, but you only need one DNS entry. And this is for more or less your main URL. And everything else is not only optional, but maybe you really do not want to have that, because that can have really bad side effects. So only add more DNS entries if you really know what you're doing, because you are shifting gear to completely different spaces. On the firewall side, I will skip that a bit. But all the configuration is that way that in both directions, BF is blocking, and we are allowing really only the needed communication channels inbound and outbound. And if you just cut them all together, you could just make that happen for a local whole everything on local host machine. So we need access to the web server to the Java video bridge over 10,000 UDP, the communication between the cheesy parts and crossity, hnx to crossity, of course, and then you can have also debug connections. Web server needs those two inbound and this one outbound. On the crossities side, the XMPP ports, the 5222 that's used for the internal communication with start TLS and all that. So Jack Kofo and JVB connecting there. And the other part is the Bosch or WebSocket request coming from the engine X web server to crossity. Outbound becoming inbound and the other way around. So that's just flipped over. And the video bridge is exposing a monitoring and metrics interface on 8080. So you want to restrict that if you need it at all. And the same is with Jack Kofo, which is only communicating internally. So you can have only the XMPP port to XMPP. And the health and metrics endpoint is documented on four times eight. And there is something listening a web server or jet the web server, but it's on always returning for four. So it's broken. And I had no time to research what's happening over there. On the crossities side, we need two more modules that's mainly for authentication for Jack Kofo. And there's no additional configuration in Brossody needed along that. And for Brossody itself, the main thing is to have HTTP interfaces or HTTPS because otherwise in default configuration, Brossody will only listen on local host. And that's not very useful when you're coming from a different machine to it. And the two modules you really, really need is of course, Bosch and PubSoup or PubSub. Bosch is the client protocol. They are like either the Mobeck element client or the web browser and Brossody itself. And PubSub is that part that the video bridge and Jack Kofo is using. SSL enabling is pretty painless. I will show that in a second. And you see already we have an additional virtual host, but it's really a virtual host. So please know additional DNS for off GTS. Then there's a component for the chat within the web conference. There's always a little sidebar if you enable that. You need a component registration for that being type multi user chat. This component entry is only the authentication credentials for the Java, Chizzi video bridge. And the new model of authentication here is the aforementioned client proxy. And it's using this username at this realm. Again, no DNS entry for that. Think of virtual host or realm. And this one is almost the same. But here we are talking about that part that Jack Kofo recognizes the British subscriptions. When they say we are available to handle video conferencing, then they will join this multi user chat and have something like a special signaling. Hi, I'm here. Please abuse me. And they might change from, they might change with the next release in the video bridge from this authentication scheme to this one. So if it suddenly stops working, check here. So we can create further user authentication, JVB. We had already seen as a component with a component secret. Focus Jack Kofo is using a real user. So we enable and start varsity, and then we register the user where change focus is the password. And then the subscription. I'm unsure what it's doing under the hood because it's brand new in Chizzi terms. I have had no time to look at what's happening in detail, but it's needed. So it's written on here. On terms of TLS, Java is not using ETC SSL certs directory or whatever. So you need your own part called a key store. This is the command to create such a thing. With prosody CTL search generate, you are running more or less a wrapper about open SSL request. So you get that dialogue, or whatever tool you want to have to just have a standard X5 or nine certificate request and self sign it. And this CRT file can be imported into a key store with this key to command. And you have to copy that result check over key dot store to the Chizzi Kofo VM and JVB key store, which is the same file anyway, to the JVB VM. While you do it the other way around, you copy over the CRT file and create the store files on their VM, respectively. What you really should not do is fiddling within the JDK installation itself with CA certs, the next update and you are dead. With that functionality. The Chizzi installer for DB and all in one VM is exactly doing that. So for the web server, that's a network configuration and for the software installations or Nginx, it's just a simple package ad, of course. And we can use the OpenSD Acme client for Let's Encrypt. And what we created, it was committed three days ago, something in current is Chizzi Meet. I have a bonus slide and now I can show it. How to backport it for 7.1, it should even work on 7.0. You just have to recompile or repackage the whole thing. It takes even on a slow machine, maybe 20 minutes to create the Java part. Chizzi Meet itself is just, I think, 10 megabytes of JavaScript, PNG files, MP3s for the sound effects and all that. So that's pretty quick. And Nginx configuration for using that. Of course you need a virtual host server name. Wow, Chizzi Meet is populated with that package ad. So that's already in place where it needs to be. You need server side include that client configuration is in the file system. It's a JavaScript file called config.js, I'm showing in a second. And that will be included into the delivered index page. So the client has a configuration where to look at. And these web pages are loading JavaScript, CSS and all this stuff from the file system. Again, wow, Chizzi Meet. And so that is accessed and delivered properly. External API chairs is for the element mobile client tool that's more or less legacy support until they are changing the mobile client to config.js or whatever. The connection from the web server to the prosody machine is a simple proxy pass with this HTTP bind as being the magic string here. And who can tell me what this one is doing? Who's running Chizzi? No one. Right. So that's just a regex and it's more or less saying we match everything that's likely a typical URI path. And if that happens, we just throw it away and we stop evaluation. Why would we do that? Well, in Chizzi, everything after or as a URI path you start with slash whatever, then whatever is your conference name. But whatever is not matching this location and it's not matching anything in the file system. So it would produce in four or four. And this one is just saying, no, just keep it under the rock. But the JavaScript knows that it was at the requested path. And so they can operate and then they are fiddling that information on different means by not just the plain HTTP request, that's the old trickery in here. The more you know. So that's the full configuration minus the dot well-known handling, that's just another three, four lines, but a slide is just that big. But it's in the GitHub repo included. On that very config.js, you have the domain in which you are operating and then you call what's the name of the user chat. But again, no DNS here, not needed and not not advisable. But otherwise it might run to a completely different location. So that's not nice for Bosch. Just the same. That's seamless. But actually, you could use HTTPS over here because you need HTTPS otherwise Chrome and Firefox and all those won't ever start your camera because that's unsecure. Turn UDP typically false, but if you are on double-sided not and whatever, you might try to turn that to true. If stuff improve is done, if not, you are in uncharted territory or at least difficult ones and you can have an welcome page or not where either you say you are only offering fixed conference names or you have a welcome page where everybody can start a conference with their name of choice. And also for that, you can enable or disable certain set settings. For example, by phone dial-in because I hate that. So it's not working. I have no information just to remove the button. Also in relation to NAT environments, STAN servers, here you might have to check. I don't know if this one is actually passed, but some of such information from the client could end up in the back end and then used from there to remember about restricted outbound connections. So it might happen that the video bridge is trying something in this regard. So always lock outbound connections, especially if it doesn't work. When you were using STAN, was there a particular part of the JITC? What STAN is doing here is more or less trying to figure out which side is NAT-ed and if both who has which public IP address and then telling the other side what is your public IP address and port for the upcoming connection. So it's something like NAT discovery, whatever. What's my IP address from server side and from client side and then both topples to each other? So that's the configuration in full. The default configuration file where you have all the comments in there. So it's not the default, but more or less the let's explain everything is almost 200 lines, but that's what you need. So as you can see, we have created packages for JCOFO and JVB. And this is installing not only the char file, which comes with already all dependencies included a so-called fat char. So you do not have to run or fetch char from somewhere else, but the package builder is responsible to have one nice big fat char, but it includes all the things and you are not running into wild dependency failures or whatever. And this one needs some configuration. Naturally, and this configuration is for the startup script. So we are providing an RC script so we can use RCCTL later on and you do not have to start nohab, java, dash char, whatever wild thingies, but you have a configuration file for the RCCTL startup script where to find the main configuration, the logging for it. And we are also using the standard demon logging via syslog. So that's a default already. And what you can enable in here for the real hefty debug stuff is, for example, an XMPP packet debug log. So you can see what's happening in this internal Muck channel, where JCOFO is checking for are there any video pages? Are they healthy? Are they gone? Are they allocated? And if you suspect that there's something wrong, you can look into that one. And that's just commented in here so you can use that easily. Here's the key store I've been talking about with key tool and it's password. So that's a clear reference and not it's using something, some places, but really a fixed location. And then java properties or JVM properties like how much heap to use SSL key sizes. So the internal communication right now with this setup is TLS version 1.3 everywhere, even the internal communications and from external as well. And if you need something fine tuning of like minus capital D and then some garbage collector, fine tuning stuff or so you can do that in Javasys props. The startup script is passing that on verbatim to the JVM later on. So the JCOFO configuration, it is a bit shortened. I have the full configuration is maybe 30 lines, 24, whatever. Also in the GitHub repo, two things really notable is that JVB brewery is a magic string. Do not change it. You can change almost everything in those settings if they're as long as they are in sync, but JVB brewery is some considered magic, whatever. Almost the same area, the XMPB connection name can only be client or server and please written with a capital C or S, but the actual client definition has to be with a lowercase C or S if you're using server here. And you have to disable SCTP on OpenBSD or any non-linux machine more or less. That's more for completeness right now, since this will be replaced in future setups or versions from the JCOFO and JVB as well with web sockets. Then the real username passwords and everything coming in via this authentication real will be considered a useful member of the Chitty community services. Let's put it this way. And then there's one pet peevee with me like their default self-hosting guide, whatever assumes you have not only all the components on one VPS or one machine at all, it also is directly connected with a public, with a public external reachable address and whatever and everything is pointing to that. And so for the startup of JCOFO, you need to point it to the XMPP server and you cannot use an IP address here because we would only be using an internal connection, so I cannot say please contact <IP_ADDRESS>. That won't work because it needs the host name for the internal XMPP configuration. Just think again, again like virtual host hosting in Apache EngineX and whatever. So use a real an FQDN that fits for the virtual host and then fake the DNS entry with ETC host or split DNS if you dare to and have that. So this is a configuration that easy as you can get with all package software that's using RCCTL, just JCOFO for the called binary name, which is a shell script in this case, but anyway then enable and start it. Chitty video bridge, same game, package add, reference the configuration file and the logging, the key store again, Java garbage collector configuration and an open and Java sys props for whatever you might need. And in JVB there's a component especially for the so-called nut harvester, which is again doing silly stuff about what's my address locally, what I'm bound to, what's my external address and maybe I am on AWS and then something you're getting different results. So we have to query some cloud API, whatever. And the properties for those are still in a file called sipcommunicator.properties and the location for that must be done via two different configuration options. So you cannot merge that, you have to write it etc and the home name is JVB and then this path is being read. Good luck finding that one out. Oh, okay. Oh, all right. So in the configuration, same part, think as a realm and here it's JVB priori magic again. If you want to grab your JCOFO log, you can use a nickname or whatever you like. So that one is free, but JVB priori has to stick with that one, scdp as that. And if you really want or have to have the video stream over TCP, here's your pot setting. And that's the default for UDP. And that's this described sipcommunicator. So you have your local address and the public address, write it down fixed. So it matches your setup and tell all this auto discovery, goodbye, like disables, this harvester too. So slow configuration is already mentioned and we go. So the pitfall is to mention the IP address and please start the services in this order. I've been talking about those like version bumps without not that much of a documentation logger and the initial startup is slow. So please keep it easy. And missed commas in chasing JavaScript is always fun. The live demo, I was showing it in the main original talk. It works, but we skip it here for time reason, we can still do it and if then time permits. So it works. The ports are committed three days ago or so and we might do a meta which just bundles all the three thingies and a local all a local configuration for better reference. And with that you can can scale out, but you have to look at it like something like Chacovo is not meant to be scaled on multiple instances and all this stuff. SRTP is the next stuff to come that's inline crypto, which is like factor 20 faster or even more and moving from Bosch to WebSockets for because it's WebSockets. And the recording stuff needs a Linux VM because they are using a headless Chrome, Chrome driver and then ripping with FM pack the resulting stream on the disk. It's a mess. And Chigazi was this part, POTS zip dial in no, just no.  I shot Tammy really for creating the POTS packages thing because I was already so exhausted with finding out all the magical stuff within Chitzi's all the POTS stuff was done by by her, really good props and Misha providing the demo infrastructure we did a setup within two hours or so. Only following this talk and the configuration that's in the GitHub repo where this QR code or this short URL is pointing to presentation made with Quarto. I can really recommend that. And this is a demonstration how you can backport to 7.1 or it probably works in 7.0 as well. So it's not much you have to do just for a new make package. So it fits a 7.1. And then you can install it with this little hack and some interesting log files more or less like if you have the wrong key store or it's completely missing, then you get that that log file in XMPP. This one has a wrong password in the in the definition. So this would come at first. And if the key store is okay, but the password is wrong, you're getting advancing to this one. And here it is all good. And then it can take a while on the check hopeful side. You're starting JVB and it might take exactly that interval before you're seeing this one. And only after that your web conference will work. Before this point in time, I will just say it doesn't work on the on the web on the browser side, because internally it will say I do not have a healthy video page to be used. And that's it. All right. Questions? Okay.


Alright boys, it's Wednesday We're about to take old girl out stretch her legs We haven't driven her since she ran 10 fitties So let's go drive a 10 second truck to the waffle house We about to get a cold start. Oh Yeah She in full drag mode Cold start here we go neutral E85 cold start