All right, we are now recording. This is June 14th. Tim is passing to you. Hi everyone. Today is June 14. This is the sandbox reviews. So let's just get started. The first one is cluster PDA. The cluster PDA is seems to be in the multi cluster space. And say if you have a lot of clusters, then they help you find where things are. Has anybody looked at in depth? It's pretty early stage.  I was just going to say the idea looks good. It's more like a discovery thing to see what's running in which cluster. But I agree also because like one contributor basically has all the commits and there's a second one that starts to pick up but it's been like all the rest is very small contributions. Yeah, very young, but it seems like a well situated project and I can see a need for it in the space. The only concern that I have is around the resource editing capabilities and the access control associated with that. Because originally reading through the documentation sounds like it's read only so it's a stateless checks and providing that information back but later on it starts to discuss the ability to offer command and control over those resources and I'd be very curious as to how they propose doing that and what sort of access control mechanisms they have a plan for integration. So I would recommend that they talk to the stag if we choose to accept them. Yeah. I do that one person is doing the heavy lifting here iceberg. But I think, you know, there is a decent idea that we should give it a shot I think. But there's a clear use case there also to synchronize resources across clusters. This is something they stated to start this is everyone started with this. And we do have two repositories. Yeah, this makes sense. One person may have done the heavy lifting. And the other person has more than 10% of the commits although I haven't looked at lines of code and real code. But there are some other people coming along and it like others have said it's a legitimate use case. I didn't realize I guess I need to go look deeper about the editing capabilities I only went through the viewing capabilities which is where I'd seen the need. So yeah, I agree they should talk to the security tag just because when you've got, you know the ability to edit across all of those clusters. That brings in a lot of opportunity for security issues. So, are we ready to work. Any other thoughts. Hang on question. Are we voting, or are we going to have them go be reviewed by security tag. I think we can accept them and then they can talk to the stack. There is no rush. Got it. All right. The vote is open. I need to. It's true you need to find chat. Yes. Yes, I don't know where to look. Okay, plus one. Yes. Okay, now I found my chat window. 123456. Harry waiting on you. Yeah, I'm back. Yes. I need you to vote on plus to be here please. I'm right now on my phones I'm trying to figure out how kind of do that. Yeah, you can voice it and I will cast it for you. How's that. I'm supporting all these projects actually. Okay, so that is a plus one. Yeah, it passes. Yeah, okay. Oh, okay. Thank you. Thank you, Harry. So the next one is called tone buckle. And actually there is one more project from the same people. I think it's a palette. Those two, I think we need to take it up together. Is that okay with everyone? Sure. Yep. So this provides a policy model. It's, it's. It's, it's literally. Got under 100 commits. Less than 10 issues. No PRs and it is extremely early. No stars. It's the way it's developed. It's just been developed in a couple of spikes. Yeah. Right. Without active. Like it had only had a minor change, I think to see I in the last bunch of months. So it doesn't look like it's even being actively developed right now. They have no forum for discussion or communications channels as well for contributions. Just issues seems to be the only place for it. And even the issues, they don't seem to be managing very well. It seems to be from CNN. The only issues are from themselves. Yeah. I was also going to say like that even the action implementation, it looks more like a cap to the schedule or. Right. And they also talking about Q fed as well. Right. Which is kind of old. Yeah. It seems like a very specific use case that maybe they had internally and they wanted to open source, which is admirable. But at the same time, comparing to other projects. In the last couple of months, there has been no contributions whatsoever compared to projects that we reviewed earlier. Like even it's been on the market for six months. We had contributions from several companies. And there is like a very kind of visible disparity. And I think that's one of the things that I think is important. And I think that's one of the things that I think is really important in the interest from the community on this one, on these two ones actually. I was, I was thinking if there is a possibility for them to cooperate with one of the committee six more closely and maybe have a cap around it. And hence bring this overall rather than just having as an independent project. I'm trying to understand how it will survive as well. Because looking at the road maps. I can see that. But like what's next because I feel like it's going to struggle to, to have extra enhancements to itself as a project. Yeah. And for pallet, I went and I looked at it because they talked about Kubernetes scheduling and I realized they never showed up in the meeting minutes for sig scheduling over there either. So it doesn't look like they've engaged with them as far as I can tell. Yeah. So let's do that. And the state for pallet, just to add the state for pallet looks very much the same. And all it does is an implementation of co-scheduling or gang scheduling. There's other projects that do that with our maturity. So it's not filling a hole or anything. So they have three people to talk to one is the CNC of working group for batch. And the Kubernetes working group for batch. And the six scheduling in Kubernetes. So we need to tell them to. So I would also add that pallet should probably talk to security as well. There is a potential use case with that to schedule a security pod to execute scans. But you can do that with any of the other scheduling opportunities. Yeah. It's a batch. Sig scheduling and six security. Yeah. And the projects just don't look very active. Right. If something's going to move from sandbox to incubation to graduation. I like to see a project look like it's going to be active and have a life. And if it's just going to get the occasional work done here or if it was done out as a proof of concept and now it looks really cool, but it hasn't found a place yet. Like what's going to happen if it becomes a sandbox project? Is it just going to have that same thing and then linger and wait for it to go away? Or is there going to be something that's going to lead it to incubation? Does it have that opportunity there? Do we see that? And I'm struggling to see where it would go for that right now. So my first reaction here is like if they can do caps and if they get things into existing projects, that would be the better fit rather than having a standalone project for a smaller use case. It's better to be part of a bigger, larger story for them. Okay. So can we move on to the next one? That's fine. Moving on. So the next one is open cost. This seems to be, the cube cost is the company and open cost is the project name. Yeah. I had a couple of questions like, like clearly the project is seems popular and has traction. There's, but there's two parts. One is that they mentioned a specification for open cost and then the implementation. And it's, it's also not clear if open cost is the full cook cost or if it's like a bit of a cook cost. That was the only question I had is like, what's the relationship with cook cost moving forward? And I think being kept only into cost that is not an open cost. Thanks. Yep. I would agree. They look like a well situated project and would be a good candidate to engage with the environmental sustainability working group. Their contributor file is pretty robust, but they don't have any community meetings scheduled or at least discussed at all. I read somewhere that open cost is the engine or something. I forget exactly where I read that. Yeah. I also understood that there's like the specification and then it's like the reference implementation. But it, but it's not clear. What's the relationship cost. So that's actually a good. Good thing to call out since the, since this project both includes a specification and a reference implementation, the intent is to keep them as a singular project. Correct. Instead of breaking them apart. Because we have, I think we have a little bit of both within the foundation where we have just a spec that's its own project and then a separate one as a reference implementation. And none of the cases are merged. Yeah. In this case, together would be the better way to do it. I'm sorry. I think all the specs have a reference implementation. There might be a separate one as well, like with notary and there's still a reference implementation as if I think for all of the specs have, have something that's at least a reference implementation. So I think this kind of fits on that point of view, but there's different. There's kind of different views of what a reference implementation is, whether it's designed for production use or it's to test the spec. I think all those things can be worked out. Right. You know, we can tell them that he, they come on in as a single project. And let us know exactly which part of. Cube cost will be coming in. Yeah. And from this, you know, they're actually getting active contributions from people outside of cube cost the company, like from Stack watch and bolt software. They're already actively contributing to it from outside. Yeah, definitely. I agree with that. Yeah. I think it's a lot of, there's some momentum on the project, even at Kupcon you can see people talking about. Yeah. And the other thing that I like is that, that they're using so many of the other projects. That we have here. So. I had one question in regards to the management of the project because kind of a separated from cost initially and a lot of members and a lot of like of contacts, they refer to keep cost. Do we want that to be separate, like to be open cost only and it has like its own management community rather than allocating that or for it to follow under a company overall. We normally deal with that as part of onboarding. So it's not fully separated now. Does it mean it's going to have its own organization in GitHub or we're fine to live it within the Android? No, it would have its own organization. Amazing. That was something which I was, I do remember we did something about that, but I was not sure if it was during the onboarding process, but as long as they kind of deep brand, keep cost as much as possible, especially when it comes to, to the kind of the contacts and reaching out. And I think that's, that's a good one for me. So separate from this discussion is whether they can have a company called cube cost, where cube is a play on our project and you know, that goes into trademarks issue, mark issues. I think we can keep that separate and say, I think you've already, I think you've already lost on the cube one. Cube is not a trademark. I know it is not. Exactly. Kubernetes and KHS are the trademarks. Cube isn't. So that's why it's separate. So it's super important for later. Yes. Okay. So I've read it. What any additional commentary that Amy needs to tell them, they'll review the recording anyway. So it should be fine. Okay. We can move on. Yeah. Iraqi mesh is the next one. We are on. Five Iraqi mesh. So. Who is able to talk about Iraqi mesh? Lots of networking stuff here. And they were talking about an on why doesn't really want to deal with. Non HTTP protocols. So they would, they want to do more of those. Was that the reason we'd sent it back because they, they're coming back to us after we sent them away was it, and I'm sorry. I didn't grab the notes on it. Why we sent them away last time. Yeah. In the meantime, I had a question because they put the SCNCF logo at the end of their GitHub. Saying they are part of the SCNCF landscape. Yeah, I saw that too. I asked about it and I was told it's very odd, but I don't actually think it breaks any rules. Okay. I went and asked. Okay. Yeah, that one, right? Yeah. Yeah. Enriches the landscape. Sure. Yes. Awesome. For sure. Okay. So. Networking folks, any networking folks here. My only question. I think it's not like really concerned, but it seems to be quite. Well integrated with Istio by default. They actually integrate with offer. And then they have a standard, which it was. If I'm not mistaken. I think they mentioned it's Istio only. Yes, it is Istio only. They have six releases. It's a reasonably active project. Yeah. Their documentation has a lot of circular links and the doc site is fairly lightweight. They do have a multi year roadmap, but the contributions for the entire project are skewed to just one individual. Yeah. Yeah. So, I mean, I think that read me explicitly calls out that if you do want it contribute, you have to email them to be able to do so. Interesting. Yes. So I'm, I'm concerned over the love, the difficulty in getting more contributors to grow the project. They also mentioned on why the CNCF answer on point four, they mentioned that. Yeah, I'd like to see. More support beyond just Istio. So the person. Wow. Is an engineer in Tencent cloud. And he's the one who's done the heavy lifting. So. There is a strong connection to both on why and Istio. I have a feeling that they'll be okay to do more things like the way we do stuff here. Well, you know, if we think of it as an extension on top of Istio or something that works with it, other projects that only work with Kubernetes and say, don't work with one of the other schedulers out there. We don't tell them that they need to go work with two schedulers. So when it comes to something that kind of extends or adds on to something, like when do we draw the line to say it's okay that it's just on this one platform and it doesn't work with other platforms. Where do we draw that line? This holds under it. Like from my perspective, I feel like they should be on the project roadmap because it's, it's in their interest to grow their use cases and adoption. So I presume there's going to be more interest in other integrations. I think they should prioritize that, but I don't think you should fall under us if they don't do that, like inevitably like it's going to happen that they will fade away within the landscape or they just going to survive on the few use cases. Amy, I'm not pushing back on them because they in number four here, they have mentioned that it is not a priority right now because there are more urgent things to fix. So I'm not going to push back on them. And I would actually want to put this to a vote. Yeah. I agree. I just wanted to add like I mentioned earlier, but I do think the project is very cool, like adding non-HTP or CRPC support, but they do mention that the added value is to like be the top layer without integrating with one solution. So it's kind of fair to say that they should look at other service mesh implementations as well. It's sandbox. They can get to it eventually. Yeah. Yeah. It was just feedback. I think it's, it's not a stopper. Yeah. Yeah. Yeah. Not yet. Not as of today. It's in process. It's in process. I am happy to kind of vote on it. Like because I'm a bit concerned about Emily's comment on like, which they should streamline the contributions. It shouldn't be gate gate by one person. So if the caveat is that the contributing guidelines are going to be updated, I'm going to, I'm happy to vote on it. Otherwise, I'm happy to kind of maybe rethink this a bit. So, well, we'll say we can do a vote and then say subject to them opening up the contribution to everybody. Right. To follow the normal processes that we use in the CNCF community. Right. Yep. Yeah. So, adding a, adding a, a new governance process. Yeah. Yeah. How, how maintainers can be added. Okay. So let's vote for it then. The caveat that they fix their dots to be more inviting to other people and not just an email. Okay. Four, five, six. Hurry. We got it. Okay. So the next one is Curve. Curve came to us before. And we sent it to six storage. A tax storage rather, and the tax storage came back with the recommendation to accept it as, you know, a sandbox project. So. I think they are okay with it. If they are okay with it, I think we should be okay with it too. But let's just go through the usual things and make sure that things are okay. So it's got GPL and GPL v3 licenses on the top. I can't see what they apply to. Okay. So again, the caveat here we would add is the clean up the licenses only then we'll accept. Right. Well, if it is GPL, GPL v3 because it's using tools that. I mean, all the storage stuff. Potentially is. Then they'll have to get an exception from the government board. They won't be able to clean it up. If they, it's not that code is. Likely, it's not that good. Right.  With the, from the tag. So here the caveat would be. We'll ask a question that can, would you be able to get rid of. Oh, sorry, the license file does have. Which parts of what so. Some of it's in tools. Some of it. Yeah. It's in the tools. They're going to have to go to a government board. I think for this. It's looks to me like it. Might not be part of the core software might be. All in tooling. It's external. So it might be. I think a great exception. So do we have precedents where this kind of stuff is in a separate repository. And, you know, during the ideal pull both repositories and do the bills, I guess. No. No, we've got exceptions where things are part of, you know, Linus kernel code and things like that where it's GPL license. So in terms of precedents, then we have open EBS and there was one more. Right. Sorry. For the license, you mean. Yeah, for the license. Oh, sorry. Because it looks like they're vendoring in the outside tools, which means they're distributing and they have it. It's not like in their environment, they just go and install it. Right. And use what's already existing. Because there are certain rules around exception. If it's included in your distro and how that happens. But this looks like they're actually including it and doing that. And so. So the caveat will be a license review, right? Yeah. So it will be accepted based on a clean license review. Well, I mean, it'll have to be GB approval or rework. Okay. So, and GB approval, so two caveats. I also had one question because I don't remember like that. It is kind of in the area of open EBS and Longhorn. I think they do claim that the storage project in the CNCF are not performance and convenient enough to support this. And there is currently no project with the same position. Positioning as curve. Maybe there are details, but in, in general, it's the same area. Right. Yeah, I noticed that too. Okay. It's just, I don't, I don't think the statements are, are very fair. It's not a, again, not a stop or just a comment. So I have a quick question about that. Is there any expectation that we make requests to do comparison of projects from an independent party? Because this is very biased. Usually we work through this. The processes that we have the annual reviews and things like that where we tone down what people are claiming. And make them play fair with each other. You know, propose some benchmarks or something where both of them can, you know, multiple projects can run the same benchmarks and say something about it, I guess. Okay. Okay. So let's, let's vote on this, Amy. What's open. Two caveats we said, right? Two caveats. Can we just one question. Shall we vote on it before the GP approval? The GP vote on license. Can we do that? As a recommendation from the TOC. So it needs to go into this weird space where we'll tell the GB that we want to bring this in. So they need to help us do it. Right. We can't go otherwise. I'll step in here. So the way that this will work is you all will vote to be able to accept them as a project from there. And then apply to the governing board to be able to get an exception for licenses. Okay. Cool. So the camera is going to be the license. This is not uncommon. We've seen a few of these before. So. Awesome. Okay. One, two, three, four, five, six. Harry's already. Yes. Okay. So we're done with curve palette. We are done with open feature. So open feature actually ping me just before. You can you asking about, hey, can we do something quickly? Kind of thing. So they're number eight on our list here today. So I was looking for Golan stuff and I don't remember seeing it. Did anybody see support for Golan? I didn't see go. I saw, you know, Java that I think the Python was a stub and node node is where their examples were even come out of if you look in the playground. Right. Yeah. Is there any other project that does this in the sense? Yeah. I wasn't sure actually. And I, I'm struggling to figure out like what exactly we are doing here, which is going to be useful to multiple people, right? I think it's the flag feature thing where you basically deploy instead of having feature branches, you just depend production and you do feature flag to enable disabled things. Yeah, it's configuring its configuration management around feature flags for your application. And the system they have here is, it looks like it's pluggable and it's spec based. So while they've got a reference implementation and SDKs to work with it, they also have a spec so you can swap out things in the background and here they compare to some others. So if you go look at something like flag Smith, they're doing that same kind of thing of the feature flag stuff. Okay. Okay. Feature enabled or not. So it makes a call to some backend service to get that information back. And this is an open source one built around Kubernetes and cloud native technologies where the other ones, if you start looking at them like flag Smith and cloud bees, you're looking at things that are either proprietary or outside of the cloud native architectures. They're differentiators to say it's built on the cloud native stuff rather than the proprietary or just stuff outside of that. And it could be the first one we have in this area. I want to say data wire had a very similar open source project many, many, many years ago, but they got rid of it because they didn't have a good use case or the market wasn't ready for it. So it looks like basic tooling was from Diego.  I mean, they have a solid roadmap, clear community engagement. They look well supported. Yeah, it reminds me a little bit of GitHub scientists. Because it's that same permission model based thing a little different, but similar idea. What does the operator do. The operator is a way of having kind of that reference implementation and then how is it connected up to the things in your cluster, right? They're using cloud native technologies. How do you get this stuff inside of Kubernetes and specify your flag configurations using Kubernetes stuff? Yeah, okay, CRDs in this case. Okay, so any other questions? Can we work? Okay, Harry, good job. Laptop. Okay. So, Amy, let's vote please. What is open? Yep, voting on it. Yes, it passes. Yay, let's go to QWadden now. QWadden is a policy engine web assembly similar to what OPA does, I guess. Distributed using regular container registries. And so the difference is OPA is regular only and here they are saying you can use Wasm and you can use any language of your choice that Wasm supports. They have a regular implementation in Wasm as well. I'm not sure if it's using the upstream one from OPA. Okay. So it's a custom implementation because this is written in Rust. Yes. They do use projects. Look at that. Yeah, their roadmap is pretty robust and I think they had more than one, if I remember correctly. I'm looking from here. Yeah, if you go through their GitHub repo, they've got a few, I think this was one of the projects that a few other things are working about. They've got their roadmap, they have development. Okay. Yes, yeah, I was looking at the slash one, which is the development one. Yeah. Yeah. The contributing information is fairly robust, but it's more focused about how to get it installed rather than how to contribute to the project. And they have fairly consistent commits with two primary maintainers. I mean, overall this seems like a good project and I can see a good fit for it in the ecosystem amongst the other policy engines. Absolutely. So the other one fun here was the policy hub. Seems to be like a website where people can upload their policies, I guess, or I guess this is the download portion. I don't know how they, there is no login. So they won't be printing off of a GitHub repo or something. Yeah, supposedly you can submit policies to them. They'd be accessible here. So it's more about policy exchange. So if there is a policy that makes sense for a vast number of organizations or industry verticals, they could potentially upload them here. And I know they'd like to eventually integrate with artifact hub to get them listed there and where people can list their own, but until they're part of a foundation or in the CNCF artifact hub isn't going to list them. And so that's why they have their own as well right now. Okay. So one of my questions here is like, it might not be something for, for some books for you, but in the future, I see like a lot of components being part of keyboard in going back to operator hub. Actually, it was, what was the project called we actually had it up. The hub itself was a standalone project that we voted on with operator SDK. That was the one being a separate in the future as well. So I presume like some of the, these consolidations are going to happen. It's going to be more clear for us of the directions of the project. Like again, like my concern, honestly, a concern, observation is that there are like multiple components currently, which we are voting on collectively, but this is going to change if they want to kind of move up to incubation. So here one, one observation here is all of these are from Q wardens itself. And if you look at the, you know, URL for the container image, they are also Q warden slash policies. So I, there is no third party that has added their own stuff here. I guess this is just a way for them to show a UI where people can pick things up from easily. So yes, we can add a caveat saying, hey, the policy hub we are assuming is going to fold into the artifact hub and we are voting on, you know, the rest of the things. Well, in the operator SDK and operator hub were separated out because the operator SDK could be used and then those assets not hosted within operator hub. Operator hub if you wanted to. So there was also some legality around the hosting that the two needed to be separated. Katie saying it's a great like parallel to this, but I think it's a little bit different in this offering that we don't have the, the weirdness when all these assets just feed into that. Yeah. And here they actually say they want to integrate with the artifact hub right in there. Right there. Yep. Yeah. Okay. We'll call on the same page then. Let's work then. Okay, thank you. That's one. One, two, three, four, five, six, seven. Okay. Q warden. You're going to have a party mat today for Q warden. I'll do it tomorrow. They're in Europe. Okay. So has anybody looked at. Yeah, it looks like it's a lot of monitoring framework for services running on Kubernetes. With expected state testing. And I think that's the key value on this. Is that you can assert what your expected state is supposed to look like and it will continually supposedly evaluate whether or not that remains true. Okay. Overall. And they have a contributing file, decent content, no community meetups. They have a security markdown file, which is the first one out of the ones we've reviewed, but it's a template. So it doesn't really help. And there's one primary contributor. It's super early. Doesn't look like there's been a ton of activity. And it's GPL. It has three. Yeah. So it's a dependency that is GPL V three. And that dependency is developed by the same person who developed this. So he picked the license for both. Okay. Um, Is however, another contributor. So he would have to. Um, re-license it. Um, so I think it's, um, I would, it's, it's, it's a no without re-licensing it before it starts. And also it's way too early, right? Yeah. No, no. Six months of help. Six months of time, I mean. Yeah. But yeah, maybe some additional, some additional feedback is that there's actually no other projects that would do something similar. So there, there is potentially value here. So it's not like it's not worth proceeding. Um, or pushing for forward. It does some comparisons with 24 seven and similar projects for external monitoring of services. So that's quite interesting. It would help if it was easier to find the overview of what it was. Yeah. On the read me, for example. Yeah, there's just.  So getting it in a, in a much better place for potentially getting people interested in using it. It's going to take time. I'm gone. Should we give them space to work here or not? Right. I would highly recommend giving them six months to come back. We could, we can't approve it because it will not be approved. Yeah. For reasons. So it's like they have to go away and re-license it. Yeah. Okay. Amy, you have Hydra will need to be re-licensed and re-applying six months. Yep. Sounds good. Okay. Let's go to the next one. Dev stream. This seems like collection of many things. It's a tool. It's a tool stack builder. It Marico is the company behind it and Dev stream is one of their two open source offerings that they have. They have good documentation, a good roadmap, consistent contributions to main contributors, community meetups, and a slack. And they also have security files as well, which is nice. It seems like an easy way to get your developer environment up and running very quickly. It's quite cool. And it applies verify, delete, destroy. They have a developer guide. They have growth ladders. Development workflow. Project layout. Let's look at architecture. I think we don't see any red flags here. So this looks good. Apache license. Yeah. 26 contributors right there. I think it's four or five people in the recent past. Okay. Ready to work. Plus one. Okay. How are you? Was that a plus one or a minus one? And Katie, there's a star. What does the star imply? Katie had some challenges with the keyboard. It is fine. Yeah, lots of challenges. Yeah. We can move on. Okay. Hex. Policy orchestrator. Yeah, this is from. Let me remind myself. Strata strata is the name of the startup that is working on this. If one primary base to identify. I didn't address identity and policy. Q and no opa are closer to what they're doing. Okay. Identity is fragmented across multiple clothes. Technology stats. Yeah. Their description is they have their own query language or identity. And they integrate not only Kubernetes, but also all the public cloud providers and things like this in one place. Yeah, the AWS identity, GCP beyond cops, snowflake. And a ton of others. So is this aimed at people who are writing applications or the infrastructure people. I think I had a confusion there. Yeah. I think that's it for anybody who has to deal with identity. By making it one way to work with identity across multiple places. Right. Because you'd have to query each individually using their own way of doing things. Simplifies it. I think that's it. That's my understanding as well. Yeah. It's interesting for sure. Because that's pain in the butt, but I don't. They're integration with other projects is curious to say they integrate with Harvard because they store their images in the Harvard registry, which is. I don't know, like, I got to be confused. Yes, the integrations are OPA, Kiverno, things like this. Look at that. They have security MD to three applications, policy administrator policy, orchestrator server demo application. There is some other curious information in the repo. So while they do cover a few projects, their security file also describes other projects. That might be within scope. And maybe I missed it on the main repo, but Hawk in particular. Where do you look here? On the security. Markdown file.  What is Hawk? I'm not familiar with that. Is that part of a deliverable? Yes. I see it. On the first one. Yeah. It's a dependency. Okay. So they're saying a dependency and here's. Hawk authentication scheme. Yeah. I've never heard of this. So is it like, yeah, see the OAuth to it? I guess it's similar to that, right? That's where we stick in. W, W, W authenticate. Is this a project? A different project though the highest where Hawk is. Yeah, this is not part of this. That's what I'm saying. Something that was implemented. Yeah. This is what you're looking at, right? It's a new HTTP authentication from 2012. Yeah. Formerly editor of what specifications. So it's in the same family. Okay. That's, that's from 2012. Yeah. Also basically has one contributor now. Yeah. And it's only six months old. Yeah. To be honest, I'm not sure that I feel like it has enough information to evaluate it effectively and understand what it's trying to do in the reply. Agreed with Justin. They need to do some cleanup and confirm what, what the project is actually going to be doing and what it entails and how it fits. I'd love to see more management around the more, I like roadmaps, but when there is a timeline attached to them, because otherwise the roadmap can be. Well, kind of used or kind of find the words anymore. Anyway, kind of timelines to the roadmap, otherwise it's like it has no deliverables overall. Another thing which I was kind of observed is that the issues at the moment, they're not very well managed. They don't have a descriptions. They open by contributors, but it only has the title of the issue and that's pretty much it, which makes it very difficult for inviting for other contributors from the outside. So I would like to see a better management of that as well. So, so reading that first paragraph here, it does say that orchestrate identity and access policy across all your environments, right? Like whether you have, if you have mixed stuff, some running in AWS, some in GCP and some somewhere else, then it helps you. It gives you the tools to do something that's really not very well defined though. What is orchestrate identity and access policy really main? I just, I guess in my head, I'd put it as policy as code, so to speak. And then it orchestrated that off there. So to think, but maybe I haven't wrong. So they use Regal and IDQL to do what they're doing. And I sent, where was I? Oops. Yeah. Right there. It gives you control managing native policies across including mobile policies. I think the value is that it does more than the traditional policies that are connected to the cloud providers and Kubernetes. So what will we do for policies? It will integrate with the cloud providers and things like this. It thinks beyond Kubernetes. Yeah. And I like the idea of it. And I mean, to your point, Katie, about your feedback, I don't know that we typically expect timelines for sandbox, though. It's like, yeah. Is there anything blocking it? And does it have potential of something more fully formed that does fill a void today that it's difficult to manage these things across cloud providers. I don't see anything specific that I'd be like either licensing or it's just not a great idea that I would want to say no to. That's my two cents. Yeah, I agree with you. So here it says hexa translates and orchestrates IDQL policies into native policies for your application platform data and cloud systems to unify policy management. And we don't have one of these here, right? So I'm inclined to at least take to a word. So one last question. This is just for the policy orchestration. This does not include the IDQL language, right? It's IDQL language is in the same repository. Well, it's by the same org. So that's the other thing is, is it both? Or is it just the one? You are absolutely right. I don't see IDQL in this repository. So let's do XR org. There's a comment in the submission for sandbox about IDQL. Does it specifically say whether or not it's being contributed? Oh, look there. There is a policy directory. That has IDQL specifications. They also mentioned using contour as the ingress service and given the email messaging that we got earlier about contour. That might be a potential issue for them to be successful moving forward. Overall, I'm not comfortable with the lack of clarity in what it is that they're hoping to accomplish and how they're actually going to go about it and what all this request entails. Okay. Is that enough feedback to send them, send it back to them? So are we asking them to rewrite, you know, what is there or come because we don't understand it well enough or are we asking them to come back in six months? Which one is it? Has there been a tag they spoke with? This is the thing, but maybe that's going to clarify a bit of the message and the topic. As Emily mentioned, if you'd bring this to a vote, I would kind of hold myself because I don't have enough clarity. Generally, I am not clear where exactly we put this project within the landscape. So the closest would be tag security. Let's ask them to go there. Yep. Okay. I think it's very early. It's got 31 stars and eight folks. It's very, like I'm perfectly happy with them coming back in six months when they should definitely talk to tag security and they should definitely clarify what they're trying to do. But six months seems a good time for them. Yeah. I don't want to hold them for six months, but I do want something returned back from tag security so we can look at it again next time. And it's going to take a while for us to get there too. And I think I heard we had a question around IDQL, where that fits and what goes on with that. Is that part of this? Yes. That should be part of the question to tag security. Okay. Okay. We got through 12. Thanks a lot everyone. And that was a good, good call. Thank you. Thank you. Thank you for your questions to our next meeting being the 26th of July for Sandbox. Okay. So being none. We'll track towards being able to do. I don't want to be able to put a meeting in August because it's so hard to get Cora in August just generally. So July. See you then. Yes. Bye. Thanks. Bye.


Howdy. Well, y'all made it back. That's good. Got an interview. Who you going with? All right. Last time we had done beam base plates. Is that right? Is that what those were called? Beam base plates? Beam bearing plates. Column base plates. That's correct. Because a column has a base, so it needs a base plate underneath it so that it won't overstress the concrete. A beam got ends on it. It's got reactions. It does need to bear against the concrete. Also, this is not a base plate. They're done differently. The main difference is when you have a column pushing down on a steel plate sitting on a piece of concrete, the bending, I'll show you in a minute, occurs. These corners tend to wrap up in one direction, and these corners or these sides tend to wrap up. In the other direction, that's two-way bending. Whereas if you have a beam with a bearing plate underneath it on a piece of concrete, I really should have shown you an end view. They don't sit that way. End view. They tend to wrap up. These little sides of the plate tend to curl up just in one direction. One-way bending instead of two-way bending. So it gets a little more complicated. This is the equation that we derived. It's in your manual on page 4-16. So in one of the pages that you and I just did, it's used for a plate bending of any kind. If you got a plate that hangs out a dimension L, you'd have to decide what you think L is. If you think L starts right about here at a distance k, then how much it hangs out? That was L, two times the load carried by the plate through the column or through the beam, divided by there was our phi in the equation, nine-tenths. B times N, that was the area of the plate in yield stress. So go back and check the derivation. It's actually good for any plate that's got a little cantilever hangout on one or two or one or more sides. The piece of view in the equation is merely your request for load coming in. The stress that would be underneath the plates we're working on now would be the total load divided by the size of the plate, base times N. If you remember, a lot of my notes had N in the beam bearing plate stuff, because in the older codes, here's the concrete, the older codes, they call this N in a beam bearing plate, and they called this N in a column base plate. And people were getting confused and so they said, okay, let's just change the name of how far this goes back from N. We'll change you to the length of the bearing plate. That's what caused the change in the notes. The equation is the same. Sometimes you'll see this stick-out cantilever length brought outside just as L. As long as your plate's thicker than that, it will be acceptable. You know, I did say that was not in the manual, and that was true about five additions ago, and it is in the manual. Thank you. So write it down anyway. I remember that now, yeah. Page 4-16. Is that right? Did I get the wrong page number? Probably off an old manual, too. Let me see what somebody got. Let me see a book a minute. It's in the bearing plate stuff. Well, I'll fix that. I thought it was 4-16, but you ought to see, you know, have this equation right here somewhere around there. All right, so check that. Old book, but not so old they don't have it. At least I know I saw it in there. I know it's in there. All right, now then, first off, you've got to know how long these little cantilevers are.  What we really find is there's so much moment right in there that it actually bends a little further back than that. So they make you say that the thing hangs out M. But to get M, you take the total dimension N of the plate, you subtract the depth of the beam, you divide both of them by two so that you have this dimension here, and then you back off a little back into the flange of the wide flange. 0.95 D is how far it backs up on for both sides. So we'll see an equation for M in a minute. We would say that N cut in half divided by D cut in half, minus D cut in half, but you only want this dimension so that you're back into the flange a little bit. As far as the width is concerned, you might think, well, the little cantilevers pretty much come out from the tip of the web. But even then, there's so much moment that it actually pries underneath that a little bit. And in this region, in here, the little cantilevers are probably even longer than that to some extent. So they make you bring the back of the cantilever, the fixed point of the cantilever back, so that this dimension is 0.F times the flange width. That would be B over 2 minus eight tenths, four tenths of the wide flange.  It makes it a little longer, makes it a little thicker. Now back to where I've got all my pictures and things. Here's your concrete footing. Here is your column base plate. Here are your little pieces hanging out. There's your steel wide flange as seen from the top. There was one last note on this page. You have it on a different page. Back when we were doing the reactions and getting those reactions into the web, sometimes you have concentrated loads on the top of the column. It can get to be a problem once you put a concentrated load, I'm sorry, of your beam. You can put a concentrated load on there and this thing sometimes is so tall and so thin that it will buckle. And in which case J10.4, J10.5 tells you how to analyze that. If they say, okay, that's not a good design, you fall within the region of you got to do some more stuff, then you'll have to brace that top flange. Here are the little curls up on these things. Here it is seen in elevation. Here's the web. There's your flange. There's the cantilever starting back under the flange somewhat. Your job to take D times .95. And then what's left is how much it hangs out on both sides. And so you're going to be looking for that cantilever length. That's in minus .95D. And then there's one on both sides. That's M. And looking at it the other direction rather than bending about the flange, which is this line right here, bending about this line, they ask you to take B minus .8 times B sub F with the flange. And then make that your cantilever length. So N would be equal to B minus .8. There's two of those things, one on each side divided by two. That's how long that cantilever hangs out. The equation we discussed for how thick the plate has to be with a given yield stress, piece of B over B times N is nothing but the stress on the bottom of the plate due to the concrete pushing against the bottom of the plate. And L will be taken as the larger of the two cantilever beams. However big this one is. And however long you don't really have that one. This is M. The other one is B or L, whichever is the longer of the two. That's the one that you'll use. Now when they do tests on these things they find out, geez man this really is kind of a mess. When you lightly load the column the whole plate does a pretty good job of being able to stay in compression. But when you really heavily load it the concrete has a little bit of defamation in it. And this center part of the plate will have a tendency to bend up because of the stresses in here. And you could probably fit a piece of paper under there for some short distance. So there's a difference between lightly loaded plates and heavily loaded plates.  This is a small plate. It doesn't stick out very far past the column itself. Or a big plate. Well here's a big plate where there's a whole lot of. In this one most of the bending is just because this piece right in here is unsupported and you get little short columns in there. But in this one here the effect of this long column coming here far overpowers it. So there's a difference in your answers for small plates and large plates. And it can get to be a mess. Nobody's really very well defined what the real break point is between small plates and big plates. So what they've really done is they've taken a couple of different analyses and they just kind of bunched them up all into a unified theory and based on the speed of light or something like that so that you can get the job done and still have reasonable, perfectly safe stresses at a reasonable cost. One of these things was a guy named Murray in 83 and he had the idea that we would take areas similar to what the wide flange itself looks like and then say that those little cantilevers didn't touch out in here and they were so long. Then a later proposal was Thornton and he proposed an analysis based on two-way bending of the plate between the web and the flanges. Basically he said look theory of elasticity has a solution for the bending stress in this plate. It's a plate that has uniform pressure under it. It is fixed at this line and ours is because due to symmetry there's one on both sides so if you push this down the plate shouldn't rotate underneath the web because the pressure on this side should be the same as pressure on this side and pinned along this edge. That makes sense because if you load this plate under pressure on this side and there isn't much on that side then it would tend to roll like it was unsupported but by a pin and then this in here is free. I said okay where in the world do you get an answer like that? He says well it's like I say it's theory of elasticity and they tabulate the results so you can get answers for what the stresses are in this plate. There'll be some bending stresses in here because the plate's being raised up. There'll be some bending stresses in here because it's the wall of a cantilever beam.  This is one of the most famous ones called Work and Young. Here they have the plate we're looking for. That's his case seven but the whole book is full of things like this. Here the edge of the plate is free. Here the edges of the plate are simply supported. That would be where it is underneath the flanges and here's where it is fixed and that's because there's another one on the other side due to symmetry this edge can't roll and the plate is loaded all the way across from the web towards the free edge. And you get these equations and you get these constants that go in there so it's pretty much right on the money. If on the other hand this thing does pop up a little bit and not any longer touch the concrete then you wouldn't want to load it. Maybe you only want to load it two-thirds of the distance from the web to the end of the load which case here are your numbers or maybe you load it heavily so bad that this plate you can see under there see things living under there small bugs well then you probably ought to only load it a third or maybe you say well why don't we just use a triangular distribution. They have all these answers and they have many more so if you run into a case like this for some reason these are good numbers to use for a specific design but in our case I know what they're going to do they're going to take all those things and they're going to draw a curve through the middle on the safe side and say use this because we just need to get this job done and fortunately these are not the most expensive items in town because they're relatively small. So what they've done back on this previous page they have put this isn't any different here to 60 cd my next page okay it'll be interesting we'll see what we can do okay it really does it start here they had something on the pre oh this is from the previous the previous theory says now these three approaches were combined by fourth gentleman and a summary of the results and procedures as followed the required thickness is same old equation what did you find out what page that was on it ought to be way back in looking in chapter four way back in the beginning of the book 14-6 page 14 I thought it was in chapter four somewhere somewhere back in way back in chapter one chapter two it's not in chapter 16 at all it'd be in chapter four maybe four dash 16 no okay well I'll find it we'll find it 14 dash six okay well I got that's correct now they still got to be in an end because now then they're applying that to everything you do plates beams you name it if it sticks out on a plate that's it so what page is that is that page 14 dash 6 it is on that page okay maybe the one I showed you before I wrote that down wrong I don't know now it's too late I wouldn't I wouldn't doubt it thank you all right now here's what you do you do in effect the same thing your l squared now is brought outside l will be however long you think the cantilever beam is in our case l is equal to n minus point nine five d over two if it sticks out in one direction this is out from under the flange and n is equal to b dimension minus eight tenths of b sub f this is if it's bending about the web and you take the longer of the two and then it's possible that the little plate theory we were talking about may control the situation and you have to check and see if it is there are two count three calculations you have to do number one in and it's going in the same direction but in prime is equal to d b sub f right out of your column table dimensions square root divided by four you're going to take the longest of these numbers except in prime isn't just this really n is uh where does it go here I'll find in a minute here we go you got to look everywhere for these things lambda in prime so here's your in prime that goes right in there now then you correct it with a lambda now the lambda correction is all of this other stuff that we showed you before and and drawn a few curves through things first lambda is equal to two times square of x divided by one plus square to one minus x less than one where x is now then we're back on solid ground for depth of the beam width of the flange depth of the beam width of the flange parentheses squared times piece of you you know what piece of you is that's how much request you really will put on the column that isn't how much it will hold that's how much is really going to be on there it buckles it half of what it would hold because it's long and slender you put what you've requested here not fee times it but the real full blast load take a look on page 260 and then fee of the concrete piece of p remember they have a different symbol that piece of B is how much the concrete will hold the concrete will probably really hold 85 percent of the 28 day compressive strength times the area of the plate or the area of the concrete that's assuming they're both the same size except to be safe there's a lot of variation in concrete times 0.65 or if your plate is bigger than if your that wouldn't work if your plate is smaller than your concrete area if your concrete area is bigger than the plate area that's a better way to say it then you get a square root of a2 over a1 more load it's got to be careful because this is limited when a2 reaches four times a1 this effect stops working so tell me the area of the plate tell me the area of the concrete that is sitting on square root of area of the concrete over area of the plate times a1 again times the strength of the concrete again times fee for concrete and that's how much strength you can have out of the concrete with a limit of four over one that'll be when a2 is 4 a1 square root of 4 square root of 4 is 2 2 times 0.85 1.7 it's limited to this number don't go beyond that number that's where you get this term right here this is due to your column request this is due to your actual concrete strength so having all these numbers we get x who knows what that is what do you do with x you put it in here who knows what that is i can do it and where did it come from came from some of the things like out of the roark book and some other theory now what do you do with it well number one they find that lambda is really closely given by this equation and it goes like this plot of lambda versus x and it comes up and it comes up and it goes like that the truth is the limit is one it's it's actually a correction it's like c sub b in other words this thing is getting ready to be multiplied times lambda and it's a correction to how long that cantilever beam really sticks out so they tell you that the limit on this is a one and so they have you do not that they have you do this now if you say well i'm a weenie and i don't understand raise your hand if that's your case okay one then you can just take lambda as one i mean the best thing you're going to get out of this thing is so that in certain instances this thing won't make you use a thicker plate than you really need to that would help that would not the lambda n prime length down by lambda so he says it's pretty nice it works it's reasonably economical there's no need to determine where the plate's large small lightly loaded or heavily loaded and you can always just take lambda as one if you don't want the correction but if i come up with a problem where in lambda if that's a six and that's an eight and n prime is a ten you better go looking for a lambda if you get this as a six and that's an eight and n prime comes out eight you just write down don't need a lambda it's already no worse than anything i already have to take care of couldn't resist i plugged in x and lambda just an equation in excel and sure enough it looks like that and in the real world they really find it looks more like this so they just let you stop at one here's what the plate looks here is the flange pinned here's the flange pinned here is in this region the plate is unsupported in the middle so it bends like a uniformly loaded beam back in here it is jammed tight underneath the web and therefore it doesn't move up here's a top view of where these points are here if you look underneath the plate this is what you see a b c d e f has moved up possibly no contact possibly still is in some contact regardless it's acceptable and back under there you see those points that's where the web is so as an example we've got a 10 by 49 uses a column supported by a concrete pier as shown it's a 18 by 18 i went ahead and showed 20 by 20 the reason they're only taking 18 by 18 is they got steel in there and they don't want me messing with this other dimensions in here they want that concrete not used for structural use they want it in there for fire protection they want it out there so in case of a fire when this concrete starts spalling off you still got the 18 by 18 in the core of the column kind of like this on the top we just he gives you all the stuff you need he tells you the strength of the concrete dead load live load a 36 base plate peers 18 by 18 so your load 1.2 dead plus 1.6 live this computer required bearing area here's what we did for any kind of plate whether it's a beam bearing plate or a column base plate we need to know how much area the concrete will say good enough any less area the concrete gets overstressed the load piece of nominal what you and I would call it they call it and we got to call it piece of p if we're going to work with their concrete 0.85 fc prime 28 day strength a1 squared a2 over a1 has to be less than this number it's under the plate nominal concrete strength we'll see those pages equation j82 bar v of concrete times p sub p namely how much it can take that's your design strength has to be greater than how much you request and I'd say that fee for the concrete times mr. concrete's opinion of how much load he can take his nominal strength it's 0.65 you see how the code changed or the specs changed 0.65 times 30 day strength for this particular concrete of 3000 psi times area one times area two over area one area two is the area of the concrete area one was the area of the plate got to be bigger than this number that's design being greater than the request now that tells me I need 137 square inches of concrete that's a lot less than last year so if I give him 137 square inches with a two inch wide by 50 inch long plate the concrete's happy he doesn't care but you know I'm not going to let things hang out like that make sure your upper limit's okay because 137 square inches of concrete may not be right you've taken the square root of a two over a one into account so you have been asked to carry 349 b 1.7 as a limit fc primary one would be 0.65 1.7 is your limit times three ksi times 137 square inches is what you propose that concrete would cough up 455 kips of load which means that this did not control had it controlled then you would find that the concrete could only cough up 300 kips and you'd have to go back and scratch this out and put the 1.7 in there and tell me how much concrete you need same thing could have happened to you back when we were doing the beams this is the first time we've really seen it checked well I guess we checked it every time now then the plate can't like look like this or somehow you're gonna have to make the plate at least as big as the column doesn't have to be much bigger could be perhaps only half inch all the way around half inch out that's acceptable if the concrete's happy with it then we're happy with it but that that wouldn't be happy even if the concrete only needs that much area concrete I mean the column has to touch the plate everywhere underneath the column otherwise the load and the flanges wouldn't have anywhere to go so he says you need 137 square inches of concrete the area the length times the width of the column that is a w10 by 49 you go check it it's got about a 10 inch width on the flanges and it's about 10 inches deep so he says the area b sub f times d would be a 10 times 10 just if it's just barely the size of the column and that's a hundred since that's smaller than how much you force to give me regardless then I'm happy with your plate your plate will be forced to be bigger than the size of the column you have a little squatty column like this you could hang these out you have a long tall column like this you could make the plate more in proportion to the size of the wide flange if you let this plate hang out another choice for this one could well be where you put a little more hang out here a little less hang out here so that these little cantilevers aren't quite so long and that would make the plate a little thinner and if you got 5 000 of these things running around then it might be worth you know optimizing the size of the plate so that the cantilever hanging out this way is about the same length as the cantilever hanging out that way within what you can ask the people to do you can't ask them for a 10.716 plate that way and an 8.032 plate that way they're going to tell you to go away yes sir you really don't do what you do you're going to have to make that stick out a little further we got we got room for that to happen in other words if you said that I really need for the concrete a 10 by 10 column and this 10 by 10 plate and this is a 10 by 10 column you're not going to put up with that you're going to go ahead and make it 11 by 11 or something so that you can so it sticks out a little bit they always do now that you don't have to weld this to the plate it's not that that thing sticks out so you can connect it because what they'll do is they'll just put a little angle right here and bolt it to the footing and then bolt it to the column and that'll keep the plate under the column all right so back to our calculations here are the dimensions of our little cantilever strips this in he has proposed since he needs 137 take the square to 137 get 11.99 by 11.99 or something like that so why he didn't pick a 12 by 12 column don't know doesn't matter whatever he picked that's what we're going to show you the analysis for but the 12 by 12 column was still hung out on both sides by an inch we're going to use a 13 inch wide plate this is 10 inches so we're going to say that we want the little the little caliber beams will hang out 13 inches minus 95 percent of the distance from there to there that's the point 95 there's two of them on both sides going to hang out 1.75 inches in this direction and on the other hand is going to be this but a little deeper than that it's going to go back to about here that's 13 inches wide you're going to subtract a point eight it's also 10 and then put one cantilever on both sides 13 minus eight tenths of b sub f divided by two so this will be the one so far then in prime quarter of square root of 10 times 10 two and a half inches therefore there's no reason to calculate lambda because you already got to have a two and a half now then if this came out four inches hanging out four inches i probably would go for the lambda and see if i couldn't get that cut back down to back around the two and a half conservative just let it be a one then you take your max of all the numbers found so 1.75 2.5 or 2.5 take the longest one now we're ready to see how thick the plate ought to be thickness of the plate should be the length the cantilever hang out two times the 349 piece of you requested nine tenths is fee i thought fee for concrete was 0.65 oh we're not designing the concrete now are we we already made mr concrete happy what we're doing now is we are working with a steel plate the 13 by 13 plate 36 ksi 0.893 you're going to go ahead and make it an inch thick if you look on page one dash eight i hope that number is right and copy it down wrong you'll see plate thicknesses they tell you the proper dimensions for plates or what is expected up to i don't remember maybe three eighths of an inch you can specify them in sixteenths of an inch and they're on the shelf pass that there every i don't know who knows eighth of an inch pass that is every whatever couldn't resist for us here was x for baker v sub f for dog baker flange squared times our ultimate divided by the capacity of the concrete port of 10 to 10 over 10 to 10 squared times there was your request here was your capacity of the concrete i calculated that here by the time i wrote down p sub uh fee piece of p i realized i didn't know that yet here was how much the concrete would be happy with point six five factors uh resistance factor point eight five fc prime 28 day strength a one times square root of a two over every one area two is the concrete area one is the steel concrete is bigger than the steel 13 by 13 is the steel rank that out the concrete is good for 388 kits before it'll have problems now says 349.6 from earlier on page 260 h 8 h but the plate sizes change back when you got that 349 capacity of the concrete that's when you were working on a different plate since it's gone up to 13 by 13 that's a new capacity here's your x plugged in right here point 901 here's your lambda plug in the x and you get 1.44 times one well i wish i hadn't even asked he's gonna make me make the dang plate even thicker but i don't have to do that because i get to stop at one so it's still two and a half inches but there are the calculations if you're curious i mean there's nothing to them serious uh should you be able to do that because i'll give you a plate where due to n prime our rascal comes out longer than the other two old pop quiz his makeup pop quiz but it wouldn't be for today 36 deal what is required thickness of the plate if you put 600 pounds per square inch underneath the plate should be able to do that and this is where your text covered what we covered these various methods by Murray Thornton that stuff rork got on a solution for that one here's the problem we just worked all right uh range range from a 30 to 100 i don't think anybody's dead but you're gonna have to do less texting and more listening i got them alphabetic guess who gets up first i just saw him where's a car okay i'll call your name out acar well there he is you know i don't remember uh i just recorded him in there if you'll email me i'll be glad to return the email with that to everybody else so i'm looking for a's come on forward and pick up your quiz adjumaly not here if you don't say here or something berry should already be up here we're in the bees seas ought to be coming up bowman bowman not here bowman's here brute buchet brawn brawn not here cow's seas ought to be up here causado cantu cantu's not here cantu's here carrigan k k kerington kasey chung clark clark chung's not here chung's not here you jerk clark cook cook's not here okay i'm gonna call your name if you don't say here i'm gonna put it in the stack you'll have to wait curtis d's ought to be here where's the villa where's euless euless not here so now i know why i got all these 30s euless is not here but your forester falton forester falton i don't know i don't think so gram gram get get get get get off my stage get off my stage gram gamble dig uh mr who who's here hillbig nobody got two quizzes did they hardy i mean i may have mispronounced your name i can hardly read some of herty a hardy johnson right here not only here but right here coot's coot's not here leon not here lahog michael where are my other m's no none of the other m's are here come on up here mace where are the ends no ends are here navel these perkins reinhardt these reyman rots what comes after r s savoy steinhubble stevens suduki trisca trisca here tidwell to morga thompson vickers vickers not here vickers is here wiley and zapata here always last estus i had all the quizzes i called estus uh either that or i call jones by mistake but it looks like estus sorry quizzes that's a good way to get in trouble thank you grades are not cast in stone one quizzes posted go make sure that you know why you got counted off before you come and ask anything about it or you will really look dumb oh okay yeah i'm actually a pledge for oh sure yeah i was wondering if you would mind i'd love to congratulations thank you thank you sir you bet you too


I'm Germany on Sponky! Yeah, hey, I'm Martin and since ten years I'm working at Genote Labs in Dresden in Germany. So what I was mainly involved there in the genote framework, I don't know, do anyone know about the genote framework here? Yeah, someone? Okay, it's like an operating system framework to create operating systems. And yeah, I was involved there in creating the first in-house kernel for Genote and drivers and hardware support, especially for ARM. And after that I switched a little bit to testing infrastructure and built an automated test store. And then, yeah, I finally ended up with Ada and Spark last year and to be honest I'm a total newbie to this. I visited Ada's death room last year the first time and yeah, I was very excited about experimenting with it. And then I thought about how can I leverage from this, how can I do some Ada in my own system, in my working system in Genote and I thought why not write a kernel for it because it's the most fundamental task, I want to trust it the most. And yeah, so first a little bit about Genote in general because not everyone knows about it. I said that Genote is an operating system framework. It's not actually an operating system. And this framework consists of three parts. First you see here at the bottom of the picture that Genote runs on several kernels, mostly micro kernels. There are a lot of third-party kernels like NOVA, SEL4, Fiasco C or Linux. And there's also this in-house kernel I mentioned that has the beautiful name BaseHW. And on top of that we have the first component of Genote. It's the core. And what core does, it actually translates from all these different kernel interfaces to the generic Genote API abstraction. So that every component then runs on top of it. Generally as kernel agnostic you don't have to recompile it normally to use it on a different kernel once you decide to switch. And then on top of it you have a waste collection of components that you can put together like legal bricks to create your own individual system. And this individual system can scale from embedded systems up to desktop systems. Actually in our office we use all our own desktop system built on Genote for working. And you can see there are a lot of drivers for the most common hardware on x86 and on ARM. And then you have these native resource multiplexers like router for networking and audio mixer and so on. Then there are system services like for instance the init. This is a very special one because it's used very broadly in Genote because it can dynamically load subsystems. So you can start other applications with it and control and manage them. And also the services between them and the resources. Then on top of that you have applications several. These green bricks here are native applications that run natively on Genote. For instance you have these depo query and depo deploy. These are tools for the package management which brings Genote. Or for instance this guide manager is like a managing component for our desktop system. And then there are a lot of ported programs also because Genote provides also LPC abstraction and POSIX for porting components. And you can see we have a GDB, virtual box, GCC and all the stuff you need normally to work independently from other systems. And then a lot of libraries I have put in with different bricks because what I wanted to show with these bricks is all the components are very well separated from each other. So what the system does is it applies a very strict organizational structure. So the complexity of the whole system can be managed. So normally all these components don't know from each other. They only see services and they know how to use them but they don't know from where they come. So normally you have only client-server relations between them and parent-child relations but the components themselves don't know from where it comes. So I wanted to start here with the base HW corner because it's an in-house corner. I know a lot about it, about its internals and it's very easy to modify because the base HW corner is not really a self-standing corner. It's a library that is linked against the core of GNOT. And it's less than 10,000 lines of code, a lot less if you specialize on one architecture. And these modules that the base HW corner is made of are also very well, pretty well separated from each other. So you can pick them out and translate them for instance or modify them without having to change all the interfaces. Okay, and one special thing about the base HW corner is as I said it's linked against core. So it runs in the same address space but it's separated from the core functionality through a syscall interface. The syscall interface is very small because we wanted to keep things very minimalistic in the base HW corner. It has like 25 public syscalls to user components and 20 private syscalls that can only call core. So they are for internal operation only. Yeah, and another nice thing about it is it's single threaded. Our approach was if you have SMP or something like that it's enough to have a thread for each CPU and you simply lock the whole kernel while one CPU is in the kernel because kernel passes are very, very fast. You get into it and then you get out of it and done. You have nothing to block there, you have nothing to... Normally you don't do a lot in there and so it should be fine with a big kernel lock. Yeah, so this makes this whole kernel only a big state machine that is really good to control and especially really easy to transfer into our context for a newbie like me and Ada and Spark. So I thought it's the perfect goal for me to go for. Yeah, now I have to get back a little bit. We had an Ada and Spark project last year that was the main reason why I started to learn this language and get into it. It's a block encryptor. Unfortunately a block encryption is a little bit complex so it's not ready yet. I'd like to show it maybe next year, I don't know. But what we had during the design phase of this block encryptor was an in-depth discussion about how to find a good design, how C++ and Ada and Spark can work together because the native genome environment is in C++ and we don't want to change this in the first step, of course. And so we came up with this design for every Spark package that shall interact with C++ or that shall be called from C++ battle. There is C++ class that has only the public interface declarations so you can do the public calls on it and it is bloated to the size of a record in Spark that this record, this is the object that contains the object layout. It's like a tech type if you want to. Then you can leave all the allocation things out of Spark and Ada. You can allocate your C++ class here in the C++ world and call your functions and what they do is they go through some kind of intermediate package that is prefixed with CXX, for instance. And this package does all the conversion between the arguments that are still in C++ without any restrictions. They are all translated to a Spark compliant way to fulfill this type safety and then the same function is called at the real Spark package. So what this makes is you can have in your C++ world this class that is interchangeable. You can have in C++ implementation or a Spark implementation. It doesn't matter for the C++ code. It doesn't see this even. And on the other side it's the same. With the Spark package I can do all my cool stuff with contracts and stuff without getting annoyed by the fact that it's actually allocated and called by the C++ side. So I wanted to use this approach also for BaseHW because I wanted to take the BaseHW design but I don't want to reimplement it all in one step because I wouldn't have any intermediate steps where I can test it and see if my approach is really successful. So this let me translate the single modules, pick out single modules of the BaseHW corner and replace them with other implementations. Actually it's not Spark. I will come to this later. So how far did I get? First of all I had to move all the other runtime into the kernel. This was a little bit of work. But fortunately I had a lot of preparation work done already by the guys from Componentlet, by Johannes Tiemann and Alexander Sinier. And they helped us a lot with this. They had always an open ear if we had any problems with the other runtime on Gnode. And there were some quite difficult problems that I couldn't understand with my knowledge. Once this was done I started with the data structures on the right side. It's pretty simple. It's only a list essentially and a Q, a double link list and a Q in BaseHW. But there I had one reason why I wouldn't go for Spark directly. I wanted but the problem is that BaseHW is dependent on pointers and it uses it a lot. And it's a little bit hard to get rid of it in the first step. So I decided to use access types and unfortunately we don't have borrowing supported yet in the other runtime on Gnode. So it should be fine with adder. We can't go to Spark directly. Then the second step was signaling in the RPC. And my experience with this was once I had translated the modules and I had managed a huge amount of compiler errors that I had to face. This really made me almost crazy. Like hours of compiler warnings. But the cool thing about it is once they were implemented they worked out of the box. And I could not only do some single little tests or something like that but I could directly put a huge system on it and run it and it worked. And that's really cool. That's something you're not very accustomed to if you're developing in C or C++ I guess. And the third thing that I started this winter was the scheduler. And it was essentially the same. The scheduler is pretty complex compared to the other modules in the base HW kernel because it is the only kernel that applies the quota-based CPU scheduling system that Gnode has. So you can trade CPU time between components. And this makes it a little bit hard. So it's a little bit complex but anyways it worked out of the box and that's really cool. So that's a nice thing. And between them what you may have figured out is all the other modules that are yet not implemented in EDA are, I take them directly from base HW and they work together with the EDA modules without any modification. Okay, so what are the plans? This year I very definitely want to put all Spanky and EDA. That's the first thing. I want to get rid of the residual base HW code and all the C++ stuff. Then we want to publish a blog in Krypton maybe next year I can show it here hopefully. And until the end of 2020 I want to do a second step. Once I get rid of all the base HW stuff in Spanky I'm free to redesign it. So essentially I can try some strategies that I have for getting rid of pointers. That's the main thing I think. And to convert all Spanky and Spark. And then of course I'd really really like to prove some basic assumptions about the code. Yeah, and in 2021 I'm looking for Newland. I'm very deliberate about porting the base lib of Gnode so to say the native Gnode environment. So you can have pure EDA components in Gnode. And this would also allow me to do another project namely converting all core, the whole core component of Gnode into EDA. And this would be really cool because the core component is like the kernel itself, something that everything on Gnode depends on. And it would be a nice experiment for me to learn new stuff with EDA and Spark. So yeah, that's it from my side. You can try it out if you want because actually I wanted to show this. I forgot this. If you want to watch system is this, what I'm running on it's Spanky itself. And you can see here that it's already pretty productive I would say. You can see here, okay, I wanted to start a window manager for instance. And then I have to grant it the rights to access the services it needs because the system doesn't decide this on its own. I will give it a GUI and pointer shape service then some clipboard stuff. And I add this component, it starts here. And now that I have a VM, I could lend out a presentation. Now that I have a VM, I could start for instance a top view that was programmed by Alexander Bertscher that is also working in, who is also working in our office. And now I give it the VM that I just started and font file system. I forgot to start the font file system, sorry. Where is the system font configuration? I start this font server and then now to its top view. So I can try it again, whoop. And where is it here? Okay, so it should start and we can go out of the control panel and see here some thing whoop. And now we could start this and actually whoop. This is a bit fast. So yeah, you see it's working pretty snappy and it's already running all the communication power and the RPC and the signaling and the scheduling with all in it. That's really cool. I like it. So thank you for listening and try out these things. Okay, any questions? For you said that you have converted some parts from C++ to EDA and then you said that you were a little bit happy because it worked out of the box. In your opinion, experience, what has helped to reach this in the language or what are the things that helped to achieve this? I think that's only for me. The question was what has helped that my implementation worked out of the box with EDA and Spark. What do I think helped a lot? And I think at least in my case it's that the language disciplined me to find ways to clearly, to find a clear solution to the problem. Not to try to find some shortbacks if I get into troubles or into problems but the language doesn't allow for this. It says no stop, this is the wrong way and then I have to turn back and go again and find another design or something like that and that helps me at least a lot. The other thing is that I felt that I get a certain way of programming while doing this for a long time. I get another kind of thinking about problems and that's really cool. It encourages you to break things down into simple solutions and not to just use the tooling that is very complex and fancy. I think that's it. Excuse me. With EDA at the beginning of last year I started at the beginning of last year. I mean I had a lot of support. I had some books. I had Johannes Liemann and Alexander Sainier who already know a lot about Spark and EDA and you have seen eventually the presentation of Johannes Liemann. They are not doing the high abstract, no say simple stuff, but yeah. And yeah. That's it. These are actually not my questions. They come from Reddit. Okay. That's nice. Some of them might have been answered already. The first question was if the effort goes well, will we consider having the Spark EDA version replace the original C++ one and as opposed if not, what would convince them to you enough to make such a move? What was the beginning? Convert what? If the effort goes well, will we consider having the Spark EDA version replace the original C++ kernel? Ah, yeah, yeah, okay. No, I don't think that this will happen because the first thing is we always leveraged from the benefits of having multiple kernels underneath G-node. So what you have normally is that it's very broad testing basis. One kernel behaves one way, the other, the other way, especially the scheduling for instance, the timing, it's all different. So for us, I had a lot of benefits regarding development and testing. So I don't see the point why to remove the base HW kernel. It's a nice approach and has its benefits. And I think, I think especially the other thing is that when I start to redesign the Spark E kernel, it will end up with an approach I think that is quite different from the base HW approach because all the memory layout has to change. I have to rethink this and therefore I don't think that this is a replacement for base HW. It's just another way to emerge. Okay. Yeah. When there was a question, what hardware are you using? Excuse me? What hardware are you using? It's x86 with 64 bit only. I specialized on this platform for the first step of course. And unfortunately, yeah, I don't have the time to do it all at once. But yeah, I'm planning to go on ARM also if this is possible. And the base HW kernel already supports several ARM platforms like x86 and RISC-5 and stuff. We'll see with time. But for me, the most important thing is x86 because I'm using it on my laptop. So in your particular case with the Spark E kernel would basically be a question of the runtime level from ADAR? Sorry. So from your side from the Spark E kernel it would basically be the question of support of ADAR runtime? Yeah, yeah. Yeah. The question was why if I specialize on a certain architecture and if it from my view was only the decision because of the support of the other runtime. And yeah, I mean I haven't thought about it a lot. The thing is that this project that we had is developed for x86 now and so it was natural for me to keep this also because it has the most beneficial the biggest benefit for me. Okay, next question. Yeah, sorry. Are there any other questions here in the room? Sorry, yeah. I intermix them, yeah? Okay. Yeah, yeah. There might be maybe you've missed it. I don't know. There is this borrowing support for proving contracts with Spark but the problem is that this borrowing is not yet supported in the ADAR runtime of Gnode. So this would be a thing, yeah, I don't know. It's a little bit more work. This is another thing I want to go into that I missed it in the plans that would broaden the support of the ADAR runtime on Gnode because there are several things missing. Yeah. Okay, yeah. So what are some of the significant challenges when converting to ADAR? Okay, the question is what are the significant what were the significant challenges when converting to ADAR? I must say it wasn't a lot because I restricted myself a lot in ADAR because I wanted to make it very well fit to Spark later. For instance, I wanted to have pure packages only I wanted to don't have inheritance yet because I don't know a lot about inheritance now more. But yeah, I changed a little bit the base HW design for instance to not use inheritance that heavily and yeah, these preparation works or for instance I don't want procedures with any functions without parameters. For that I had to change the C++ code a little bit. But I think the main thing were a little detail in the devil that generics didn't work out of the box because we had no finalization not generics in general but generics with how is it called with incomplete types. If you have an incomplete type and want to put it in a generic there you need finalization by default and this isn't supported yet so Johannes helped me with this a lot again he knew then after some research that there was a pragma for no finalization. Thanks. Johannes, you had to... I just blended it out for the first time actually. Okay. No problem. Is conversion to Ada helping to identify issues that weren't apparent before? Not real issues. I must admit because we had already productive systems running on base HW before and it was tested very well. But what I found definitely were some I don't know like gray areas where I was lucky that we didn't have problems with the C++ code before because it was programmed a little bit dirty. When I started to fix all the compile errors I had with Ada and Spark I had to clean up these gray areas but there were no real issues with the base HW. Last question for normal Ada codes but basically from what I understood the gluing code between C++ and Spark are you using any static analyzers and if so which one? For the glue code between them? No. I didn't analyze it in general you mean with a proof or something like that? Yeah well I just verbited a couple of questions already. This will be a future task. I want to get rid of the glue code and the C++ code anyways so I didn't see a point analyzing it. Thanks. Any other questions? Okay Thanks.