Thanks, Todd. Sorry to interrupt. Hi, this is David Pinsky with Hitachi. I'm filling in for Ashima-san who's traveling today. Okay, welcome. So on the agenda today we have hackfest planning, another refresher on the internship program, which is accepting applications. We have a draft of the requirements working group charter to review. We've got a proposal to start a new project around the go SDK client for the fabric. We've got the fabric composer proposal, Sawtooth demo net from Dan, and then follow-up Q&A on GSL. Are there any other agenda items? It's a pretty packed agenda. If not, then I think we should get going, Todd, on the hackfest planning and then hopefully we'll achieve quorum before we have to build on stuff. All right, sounds good. I'll move quickly through these. For the April hackfest, we are still looking at the week of April 24th East Coast. We have been talking with a few companies that can potentially host. Unfortunately, those haven't panned out. If anyone on the line has venue space in their office that could potentially work, please get in touch with me ASAP. Otherwise, our events team is exploring paid space. We're hopeful to get something locked down by tomorrow, but it could be early next week. From there in June would be the next next hackfest. There's a couple things going on there that we're looking to tie together. LinuxCon China will be having its first year in Beijing June 19th and 20th. We will be having a hyperledger track there. Looking at likely having a hackfest run concurrent to that, as well as doing a hackathon over the weekend prior June 17th and 18th. Any questions there or initial feedback? I'm sorry, so you're looking for a location in China? The location we're just looking for in the week of April 24th on the East Coast. Could be New York, Boston or any of the surrounding areas. Okay. And that's during the week? During the week would be preferable, yeah. So we'd be looking for two days. I think we could even extend it to Chicago or Washington DC as well. Well, if no comments there, we'll continue exploring behind the scenes. Any questions? Please get in touch as soon as possible. Yeah, so I know there is another recent member who potentially has some space in Boston, but not the week of the 24th. Is there any possibility of changing the date? There is. Based on the feedback we got, it was pretty strong that people wanted to get together the week of April 24th. I think the week before was the second best for folks. Otherwise, we'd be looking at pushing a week later, which, you know, not ideal, but still possible. Right. Okay. I'll connect you and then we can, you know, if the dates could be fun to go, we might be able to do something in Boston. Okay. How many people do we have to host? It's typically around 75. I think the most we've seen is around 90. A fewest is around 50-55. Okay. Alright. Internship. Internship program. On the Hackfest and Acathon and Linux con in China, Brian, do you want to just sort of say a couple of words? I mean, I think we really do want to try and get a critical mass of the TSC in China. And maybe, you know, you want to talk a little bit about what we were thinking about for that. I know what you posted to the mail. Yeah, sure. So this was partly inspired by, you know, what was, well, by many accounts, a successful hackathon, but one that probably we felt could be more specifically about the core code on the projects or potentially building sample applications that would also be good additions to the repository. You know, in some ways it kind of became a business plan competition more than a hackathon, which I think is very normal for China. But what I would, Chris and I talked about was the potential of steering it very much back towards the idea of a competition between teams who would be brought up the learning curve on a given hyperledger platform and then tasked with tackling, you know, bite-size, you know, good beginner bugs in the issue tracker or small to-do items, things that are, you know, sharp edges that could be rounded off, the kinds of things that are good first-time developer activities. And then at the end of the weekend, basically the teams would be evaluated on kind of a subjective sense of, you know, who got the most done. There wouldn't be any obligation to upstream and accept patches during those two days, but the idea is during the next two days at the HackFest, we'd get developers together to actually evaluate what had been done by all the teams and see if we can mainstream them in. So very developer-focused, but it really only works if we have a nice critical mass of core developers on, you know, a number of the different projects. And so I don't have to hopefully make the pitch for China and just the way that it's growing there. And I think the strategic importance of us being there, I do know it's a bit of a haul, but I'm sure if there's questions about visas and other things, we could get that answered. But if we started planning now, my hope is that we could get a reasonable contingent out there for it. But I really want to hear from the rest of the TSC if that's something that they buy into as well. I think I'd like people to consider the ask and maybe ask your management chains about the travel and so forth near significant others. But I do think it would be worthwhile to get us all together in China for that event.  I'd also invite you all to submit talks for the track, the hyperledger-related track that'll happen at LinuxCon Asia, that'll happen concurrent to the HackFest, and hopefully we'll get a space just right next door for the HackFest to LinuxCon itself. But that could be another another pull to come out and participate. Okay. Next up is the internship program, Todd. Yeah, just a quick note there. So we will close the call for applications at the end of next week. So please share this out to your networks. And I'll include a link for how to apply in the minutes that go out. That's that. Okay. And Senator Bawa, you're saying that the internship program cannot be applied from China? Why is that? I'm not aware of that. I can answer that. Yeah, I can answer that. So, I'm sorry, Bawa. I'll go ahead. So there is a law that was passed that came into effect at the beginning of January that makes it complicated for US-based nonprofits, including consortia like us, to operate in China. We work with that law and deal with it wherever we can. Right now, we don't have a way to do the internship thing around that law, really. We are looking at some possibilities, but we just can't commit right now to having interns in China because of that. So it's not our choice, not about resources. And it may get addressed, but not in time for, likely not in time for us to be able to choose China-based students. There's a small chance that we'll keep trying. All right, that's fine. So, Todd, it's currently restricted just to China-based students. Is that correct? For the internship program? There may be another country or two randomly that we can't work with, you know, North Korea, for example, but it's pretty wide open. Okay, but we only have one project, isn't that? That we would need to source with students for China. Is it just one project? And I think there would be... What sort of response do we get into the applications? Have any been submitted for the China project yet? I'll need to go look. We have had a decent number of applications. We have no geographic barriers in that someone has to work in the same city or same country where the project mentor is. This is completely virtual, so that shouldn't be too much of a limiting factor for folks. Okay, that's good. Thanks. All right. Okay, that's unfortunate, but let's move on. So, next up is a requirements work with charter draft. It's only gone. Sorry, just one question on the internship. Yep, go ahead, Dan. So, I started routing people who have been querying me to that link that you provided, Todd. I'm not sure what the hiring process is going to look like or the selection process, so I assume that when people reach out to us, we're supposed to give them clarifications on the project proposal, but that it's the Linux Foundation's decision process for who is selected. Yeah, and we'll definitely involve the mentors in that. This is not something we're doing behind closed doors by any means, so we'll kick that off after this closes on the 24th. But yeah, any logistics questions, whatnot, please just direct them back to us. Okay, and so you set a date there for when decision processes start. So, the call for applications closes on March 24th, so Friday of next week, and then we will work through that all the following week. Okay, great. Thanks. Okay, so I don't see Olegon. Is Olegon the call? Anyone else from the requirements group that can defend, if you will, the charter draft? If not, we can bump it. We have tons of stuff on the agenda. Alright, I suggest we bump it, Todd. Let's move to the go proposal from Securekey. Alexander, you want? Hi there, Troy and Alex are here. So, alright, let's review the proposal, and this is the link, Todd, in the chat. Yes, and if either of you would like to be made presenter, let me know. Otherwise, please. Yeah, I don't have the go to meeting or what we're using open, so I guess if we just go through the dock could probably be the easiest. Okay. Alright, so how do you guys want to work this? Well, I think you don't have to go through line by line and point by point, but maybe just sort of outline what the proposal is, and in particular, I think, you know, focusing on, you know, the resources that are going to be working on that, and then we can have a discussion. Okay, perfect. So, there's two major points in this proposal. One of the points is to have a go-based client for hyperledger fabric, and the second point is about extensions to the specification also written in go. The purpose of the extensions is to, for example, allow the peer to actually create transactions itself, so to allow a peer to itself be a client. So, in the reference tickets, as examples of this, there are several features that would have to be part of a go-based SDK to enable that kind of functionality. So, this proposal is really about both enabling a proper go-based client and also these extensions to allow the peer to also act as a client. There's a couple other things in here as well that we referenced, which was we also put a proposal out there about other forms of certificates where the client could potentially make its own kind of T-shirts. So, we're trying to say here there's a proposal for the go SDK, there's a proposal for the peer to act as a client, and also a discussion on other potential features in fabric-based clients. Did that motivation make sense so far? Yep. Okay. Do you guys want to pause for discussion on that or keep going? Are there any comments, concerns, questions from the PNIP Gallery? Keep going. Sorry Chris, I was just going to struggle to come off mute. I just want to add I support the notion of a go SDK, especially if we can get everything refactored, the CLI and whatnot refactored. I would say one comment about the T-SERC changes, I would suggest that whatever is being proposed there be worked through the SDK working group because you would probably want unity on the other platforms as well. Yeah. So those particular things, particularly the T-SERC change, should go through the various groups. It was just making a comment in here that to actually support those kind of T-SERCs that you'd have to actually change the client SDKs. So it was just kind of a related point that we've been thinking about and working on. But certainly something like that, as it changes the peer itself, has a larger discussion to be had. Yep. Anything else? Okay. So in terms of the resources, typically one of the things that we look for is, and I should have taken time to look at this, but one of the requirements of a proposal is to identify who the maintainers would be of the new project. I know there was a little bit of discussion in the mailing list. I think Brian's suggesting that we should treat these SDKs as sort of independent projects. So I think that makes a certain degree of sense. So one of the things that we will want to do before we actually approve this is get the names of who would be the maintainers and who would be the contributors to the project going forward. Sure. So on that point, so as stated in the proposal, we'll contribute to our initial code base. The link to the current code base is at GitHub and in this document. SecureKey itself is continuing to work on this code. So certainly we would like some SecureKey people to be part of the maintainer list as we're continuing to put effort into this. Do we have a difference between sponsors and maintainers? I mean, I see on sponsors three from SecureKey and two from IBM. A third sponsor from a third company may be nice, but I consider this probably diverse enough to get started as long as we focus on growing that over time. Should we just adopt the sponsors as maintainers? So we're okay with that. All right. So I just put out a note shortly before the meeting, which I'm sure nobody had a chance to read yet, but what we had done historically with SDK projects or really generally any project that was uniquely feeding into an existing top-level project was to fold that work underneath the existing top-level. And I think some of the reasons for that were that that top-level community has kind of the best say in the merits of that sub-work and then also there's kind of the chance of a perfusion of projects that aren't necessarily independent because they all kind of ride on the success or not of that top-level one. So from my perspective, I think it makes more sense to have some kind of sub-project where an SDK like this would feed underneath. The examples pointed out in the mail as well were within Sawtooth, for example. We've got a few different SDKs, but those are kind of underneath the main project. Yeah, my take is that the granularity of projects is an important question, something definitely worth talking about. And we shouldn't overshoot. I mean, it'd be hard to stand on top of hundreds of modules, but we shouldn't undershoot as well. The risk of having too much activity buried inside one monolithic project is details might get lost, important code coverage might be lost. I think you'd end up with a situation where an SDK kind of gets maintained by one active person and then it becomes theirs and people kind of ignore it. Whereas if it's a separate project, it can become clear if that project becomes more abundant because the activity, you know, it's easier to track from a health and activity perspective. And the granularity should really match to a scope for a project that calls for, you know, something that can be kept up and maintained by six to a dozen developers. Any more than that and it just gets kind of too large, smaller, and you probably have too many. So there's the question of things that start out specific to one framework and maybe over time can generalize. So like Composer is likely something that starts out with fabric, but could generalize the way that Cello has. It could even be the case that these SDKs do, but I don't want to trap that in as a requirement just yet. So I think we just go with what seems right. This SDK probably is complex enough and having an independent set of maintainers probably useful enough to have it be independent. And we could talk about whether the SDKs for Sawtooth should be independently promoted or maybe as a group promoted as one project, you know, the Sawtooth SDKs project or see if there's a way to merge them into these SDKs. But I'd rather go forward and approve this than subclass it in. And then finally, we do already distinguish between framework-style projects and modules. And we could probably, you know, when we list the different projects at Hyperlenture, we could probably list them differently such that Sawtooth and Fabric and Aroha stand out distinctly from things like the SDK projects, just as layers of a layered cake, so to speak. There's the three things in the front of my mind, but I would recommend going ahead and approving this. Right. And Brian, I tend to agree with that. And I would note that also the current set of SDKs that we have, aside from the Node SDK, which was part of the original Fabric, are all independent projects in the sense that they have a different set of maintainers based on, you know, how they were added because of the contribution. And I think, you know, that the point of if we were to treat all these as sort of sub-projects and Fabric, and the Fabric maintainers then become the maintainers for the sub-projects, then that, I think, would be, I think it would serve to potentially discourage contributions such as this from Secure Key. So, because then, you know, in doing so, you're sort of seeding, you know, control of the project. Yeah, I was actually looking at it from the opposite perspective that that the, maybe not necessarily the exclusively the maintainers, but kind of more generally the community around Fabric is the one that's more knowledgeable to say the relative merits of a particular SDK. For example, I see there's a little bit of a chat that there might be an alternative Go SDK implementation. And so that's where it's maybe the having the DSC as the gatekeeper. Yeah, I tend to agree. This is Leonard. SDKs can be quite complex in their own merit. So as a separate project independent, but I think closely tied for collaboration with the parent project, the most informed set of people to be disappointed. Yes. Wasn't there, this is Vipin, wasn't there a SDK working group proposed and sort of fallen by the, I guess, it didn't really take off. So, right, so we, that's right Vipin, we had a an SDK working group and they came up with a specification. And then when we were going through and thinking about chartering, you know, putting together charters for all working groups, the SDK working group felt, well, our job is done here, right? We wrote this back and everybody's going off and implemented it. But they didn't write a spec. I'm sorry, let me just finish Vipin. And so I think, you know, the decision a couple of weeks ago was basically to move on, but sort of, if you will, disband the SDK working group. Now, with the Secure Key contribution here and the proposal that, you know, not only do we have a go SDK, but also we started thinking about how it might be extended down the road. Then I think that it might be the case that, you know, resurrecting the SDK working group to coordinate between Java, Node, Go, and Python SDK projects to, you know, coordinate on what the specification was for the SDK kind of makes sense again. So, I suspect, you know, and I'll talk with Jim and Morali and Troy to figure out, you know, is this something in Bawa to see if this is something that we probably want to, sort of, resurrect and move forward with a formal charter and so forth. But Dan's point was, I mean, basically it should be something spanning the different DLTs rather than specific to a certain one.  But at the same time, they also do not get any incentive to start supporting other SDKs like sort of like Go SDK or whatever else. So, there has to be a movement also to bring those together because otherwise we are going to have a proliferation. So, there has to be some kind of thought put into that, especially in the proposal for, you know, some kind of a future action. I'm not saying that they shouldn't be allowed to be a separate project. All I'm saying is these thought processes have to be part of, you know, the initial proposal because I've seen several of those projects which are supposed to be spanning other, you know, other DLTs. Right.  I mean, I'm not going to go into that. Well, so here's where I sort of, you know, plug for, you know, as Brian would call it, the duocracy. And, you know, my, my perspective is if you have an itch scratch it, right? I don't think that we should be necessarily in the business of trying to sort of force fit, if you will, some sort of homogenization of all the different under a lot, you know, top-level DLTs that Earl Ha saw tooth and fabric. I am fully supportive of efforts to try and, and have them, you know, sort of consolidate to a certain degree. But I don't think it should be forced. I think that if people are interested in driving for and striving towards some sort of a top-level SCK that can indeed satisfy, you know, that is consistent across all the different DLTs for hyperledger, that would be a good thing. But somebody's got to put some effort into doing that. There has to be some sort of motivation to actually do that work. And I don't think it's fair necessarily for somebody who's coming in saying, I have some additional capability that I'd like to bring to the table for, you know, like this go SDK for fabric to sort of force them into, well, now you have to do something for everybody. You know, I think when we get to the discussion on composer next, that indeed there is a strong potential for that to happen because of its architecture. And, but again, it's going to require somebody to actually do some work to make it real. Can't just sort of Well, this is coming from a user's perspective, right? This is coming from a user's perspective, which is proliferation of multiple things all over the place is very difficult to manage for us. In fact, that is a motivation behind working in all these working groups, architecture working group, identity working group. So I am proposing that the SDK working group be also resurrected and look at this at least, I mean, not say, okay, don't come into the, you know, into the incubation stage, but at least try to bring, you know, this kind of a breath, breath into the situation. And that was my message also to Roger Nestone about composer. And I'm glad that, you know, they're thinking about this. This is purely a user perspective. So, Chris, just there are two issues that feel like to me that are being conflated here. One is that the issue of do require projects to be cross-platform on that. And that just doesn't make any sense to me that we require lip service to being cross-platform. The second issue, which I think is the one that Dan's really bringing up, is the question of who has the insight to do an evaluation of the details of a particular project. So as more of these projects are becoming more and more specific to platforms, we're getting to the point where a subset of us is really the only group that has broad enough knowledge or deep, sorry, deep enough knowledge to actually make a reasonable evaluation of it. And going back to Brian's comment before about, you know, sort of layers of a cake or whatever, you know, it definitely feels like there's, there needs to be at some level a segmentation of these that would allow us to communicate clearly about the positioning of each of these projects, right? So someone's not going to go to the go SDK and say, you know, well, why can't I use this for a ROHA? They're going to understand that this is something extending the functionality out. So I completely agree with the distinguishing and separating the maintainers of the projects and the administrative structure on it. And I also believe we need to find some way of making sure that we're both evaluating and communicating the relationship of these projects to the platforms as well. And I don't see that right now. This is Leonard here and I think, yeah, I mean, definitely SDKs can be a separate project because there is inherent complexity and they have a tie dependence, as you say, with the upstream parent project for which that SDK will serve as a kit as a development kit. And that having been said from different points of view, the SDK working group is that body, which will do exactly what you just said to ensure that we can look at all the different SDK projects as we understand resources and the lessons learned from each SDK project and look at the best, look at best practices to see how we can standardize that new aspect of development. So I think, yeah, the SDK working group is important to have. It needs to be resourced and most likely it may be resourced from people working on the different projects contributing to the SDKs to start off. But I still think they're complex enough modules that should stand in their own rights as individual projects, but with tight dependency and collaboration with the parent project. Well, I think that that's sort of a given. So, thanks Leonard. So, Mick, just back to your point, because I was struggling a little bit with trying to understand where you were coming down. So I understood the first point and I think we're aligned on that. I think though that I guess I'm still not clear in terms of establishing this as a project, are you suggesting that it's not clear enough that this is a fabric specific project or were you just making a point of, well, I guess I'm not sure on that second point is what I'm saying. Okay, so part of this is that I'm trying to restate what I heard Vipin say, which is, as somebody, Vipin's comment, as I understood it, is that as somebody who is a user of this, the positioning of the projects and the relationship between them is not obvious. So that communication side of things, just sort of understanding and communicating the relationship between them just seems like a good thing. That's not a comment about the projects or the quality of the project, right? I'm perfectly happy with the proposal piece of it. My bigger issue is I don't really feel qualified to provide feedback on the details of this project because of the level of integration that it has with fabric. My biggest issue is that many of these smaller projects are becoming so specific that for me to really evaluate its usefulness and its intent, I need to be much more deeply involved in the fabric community at a level of engineering that I just don't, I'm sorry, I understand your stuff when I talk about it at a high level, but at the level of which I would be required to evaluate this, I just don't have that background right now. I mean, I could read to the document, the document looks fine, right? It looks like a valuable thing. Hey, this is Morali from DDCC. Go ahead, Morali. You're very faint though. Is it better? I think so, yes. Yeah, so I've heard Mick and Wip and sort of aligned with them in terms of I think these projects, it's good that we want to share these projects put forth in front of the TSC so that everybody knows that these things are being worked upon with collaboration with other companies, but at the same time, I don't think these need any approvals from a TSC members, right? So these should be shared and communicated, but not necessarily, these are not necessarily top-level projects which need approvals from TSC members, so which could be the balance that we can strive for. So let's do a couple things here because we're running short on time and we have another two, three things to go through and I'm not sure we'll get to all three unfortunately. Let's see if we can get a vote on the SDK and then what I would suggest we do is we tee up some discussion and some, you know, towards a resolution in the next week or two on how to deal with this sort of two levels of stuff if you will, right? Where you have a top-level organizing principle such as sawtooth or fabric or roja and potentially sub-projects underneath that that people might want to bring to the table and then we have the top level and do we need to sort of break out and have two levels of incubation if you will or two levels of review and so forth or maybe we can have a discussion about maybe the TSC sort of, you know, if somebody's bringing in a project that's specific to sawtooth or whatever that they go to the maintainer, the existing maintainers of those projects and ask their sort of advice and consent so to speak on the proposal. But for now let's just sort of go through and do the go SDK and if it doesn't pass and we need to have more discussion I'm happy with that I guess but I'd like to try and put it to a vote. I didn't hear anybody sort of saying that they had disagreement with the proposal or any fundamental concerns other than maybe not being, you know, as Mick and I think Dan were alluding maybe not deep enough to understand if the proposal is sound or not but I suggest we just sort of take it to a vote and see where we go from here. Yeah I agree Todd and just one quick question, do we have a project approval process in place? So if it's deemed a project it has to go through an approval process and that's where it's outlined in the the life cycle. So that's where a lot of the merits of whether it should be a project have it should be handled should be agreed on before it is approved that's a project. It's got the criteria and the criteria is outlined in Vippen's proposal template that this one followed. So Todd you want to call a roll on on the go SDK please? Okay sure thing. Ben? Yeah I think from the SDK point of view I'm fine with it I'm still looking at the set of items there that require the peers to be modified still hesitate to talk about that but you know in the spirit of the SDK itself I'm fine yes. Okay Chris? With the same caveat that Ben had I'm fine with the go SDK and obviously the other conversations would have to be had between the other projects. Okay Dan? So like I put in chat I think we had a very congenial group and it's it's uncommon for us to disagree on anything in this case though I think as a top-level project despite what looks like quality contributions from code and intent I don't think it really serves as a top-level project so I vote no. Okay Greg? So I understand all the points of view here I I think the SDK is useful I would want to have further review of some of the details like Ben and Chris have mentioned and and I can appreciate the perspective of Dan so I'm in favor of having the SDK I would be fine if it's a sub-project I don't know what the mechanism would be to to approve that or not so I'm just going to say yes but I'm fine if we want to make it a sub-project. Okay Hart? Yeah this this has been an interesting discussion I'm going to vote yes with the caveat that we have further discussion on uh dependent projects. Okay, Mick? Um and as I said before you know I can read the document the document looks fine I just I don't feel qualified to evaluate the nuances even if I mean even the comments that Chris and Ben just made or things I would not have gotten out of out of looking at the document in the in the description of it um so I guess I'm going to abstain on this one I don't feel qualified at this point to make a sound decision on it. Okay, Morali? Yeah so I'm yes for it but like Mick said I don't believe it's a top-level project that we need to vote on. All right, Shihan? Yes. All right so Chris that's a six yes one no one abstain. I think that passes so um okay and and whether we consider a top-level or sub-project I think we can um I like I said I'm going to suggest I I tee up a conversation around that so that we can actually have um you know an articulated policy because I I I definitely appreciate Dan and and Mick's position on this and I would feel similar you know if if somebody came in and said hey I want to start a top-level project for some you know Ruby SDK for for Sawtooth or something. Well yeah and and I and by the way I wouldn't be surprised if you start to see some things like you know especially with the architecture that Dan's doing you're going to see projects like we want to do the the GO based transaction family engine for Sawtooth and are you comfortable evaluating that that would be my question. Yeah I think exactly to your point and so you know again I think you know maybe it comes down to you know and again I you know I was I was I was going more for well I don't want to sort of just have the fabric team start up projects or sub projects and seems you know as if they're going around the process I didn't want that either and so again I think it's worthwhile that we as a TSE come to an agreement on what this process should be and how it should be managed consistently across the various top-level projects that that we add so I'll kick that conversation off after after the call here. So let's listen. No I'm just starting to say Leonard here that that supports Dippin's point in resurrecting the SDK working group because a lot of that might come under their domain so. Yes I agree. Okay so quickly because we're really running on the time here so Simon are you on. Hi I'm here Simon here. Simon great you want to go through the Composer Proposal and somebody. Sure. I'll put the link in the chat. There you go. Okay. Okay and so for those of you that haven't seen it Fabric Composer or Composer for sure is a layer of abstraction that we've been working on for a little while and it's a layer or a framework that sits on top of a blockchain or distributed ledger technology so we're not implementing another blockchain or DLC technology as part of this work. And we built it as a result of some work that we've done working with lots of clients around solutions built on top of Pat Brent and from that work we identified that there are a lot of common elements to all of these solutions or business networks as we saw it. We see a lot of work around modeling blockchain solutions using assets, participants, identities, transactions and registries. It's very difficult to take those business concepts from a real-world business problem and map them down into underlying blockchain code and it's quite a difficult transition to go through that work. So the motivation of the Composer project has been to accelerate that development process and by providing a layer of abstraction that allows business analysts and application developers to model their business networks and implement it at that level without having to worry about the underlying technology so much. And we're hoping that this will quickly expand the number of blockchain solutions that are out there. So any questions on that? So I'll continue. Oh, okay. And so if I start going through our sort of main components. So we built a custom modeling language that allows hopefully all kinds of different developers to model their business problems. We can model it at the business level so you can describe the structure of an asset or a participant and even model relationships between assets and participants and transactions as well. We have the ability to encode business logic that has transaction process functions and you can do that in standard JavaScript code. And we pick JavaScript because it's really quite a popular modern programming language that is used by many developers around the world. We've implemented declarative access control using Active Control List. And those rules allow a developer to decide what resources can be accessed by which participants and we automatically enforce those rules without the user having to write any access control code. We have some clients of administrative APIs in Node.js only at the moment, but we're not strictly tied for that. That's allowed developers to build applications around the business network running on fabric. We have a web-based playground tool. There's a bunch of links at the bottom to all of this, by the way, that allows new users to come along to Composer, start modeling a business network, learn the language, test it out for the safety of their web browser. And something we've done that we're quite proud of really is the ability to run all of the code in browser without having to connect it to a real fabric instance. So we can take our client code and our runtime code and run it in a JavaScript engine inside the browser. Because in a lot of cases when people are coming along to this and wanting to model their business problem, they don't really need that underlying technology until they're ready to go a bit further with it. We start rolling it out, we start doing a bit of testing. We're looking into REST API support using the Loopback framework so we can generate business-centric REST APIs from the model of a business network. And we have a Loopback connector that provides that. We're looking at ways to plug into editors. So we've got Atom and Visual Studio Code plugins that are very new. They just do syntax highlighting at the moment, but we have some ideas about how they could be expanded. And we're also looking at application generation using the Omen framework to sort of give a bit of a boost up and get them up and running so we can generate, we can take the model of a business network, generate a basic but functional Angular 2 application at any skilled UI developer could take and morph into a proper designed application. And so everything I just went through has been open source. We put that in at the end of January just before the Hackfest in San Francisco. It's on our fabric composer repository and part of this proposal is to move all of that code into the Hyperledger project. We're considering some big work at the moment. We're looking at first class support for events. So events outbound from a business network. So if something happens on the blockchain, an asset gets traded or created, then I want an event and I want to be able to hook that into my existing business processes. We're interested in links between different business networks. So having one business network running one fabric and another business network running on another fabric and allowing them to communicate with each other and share assets and participants across those networks. We're interested in complex query support as well. So being able to do both historical and complex queries over assets and participants that are recorded on a blockchain. And one of the other things we're interested in is if the community is investigating adding support for the other distributed ledger technologies under the Hyperledger project, so our Rohan and Sortie Flake. As I mentioned, we have support for running standalone in the web browser and to make that possible, we built an abstract and an adapter layer into Composer that makes it possible to switch out the bits of code that we always fabric or in that case, the web browser. So there is definitely a strong possibility that we could look at moving that to the other distributed ledgers. So in the how-to, we've got links to all our public documentation, our GitHub repos, our issue tracker as well. And we also do a lot of automatic builds and publishing to NPM and Dr. Huff, including a public instance of the playground on Bluemix. And we're holding a call next Thursday. It's on our wiki. I think I included it in the, or maybe I included it in the mail for the mailing list. It's next Thursday and it's sort of an introduction to Composer, so I appreciate it. Not everyone's seen it, so we've got an hour long call to go through in detail. So any questions? I have several. This looks really, really interesting. So let me just make sure that I understand sort of positioning how this fits in. So there are a number of kind of contracting languages that are coming out, Ivy, Damo, and some others like that. This feels like the beginnings of a platform-independent contract language. Would that be an appropriate positioning for it? I think so, yes. So we've only looked at fabric support, but yes, it could definitely be platform-independent. In fact, the code is, I would say, 90% platform-independent as it is today. And architecturally, you have the adapter that would allow you to map it down. I mean, okay, I wouldn't be surprised if semantics kind of bleed through because this is where we start from. But architecturally, your description looks, I mean, it looks like you've architected it in a way. It could be adapted down. So I guess my question is really the specification language that you have at the top. Yes, it is the modeling language. Yeah. Shall I show you? Can I share my screen? That's probably the easiest way. And I asked, I was looking earlier for some example. I was just looking earlier for some examples. The only one I could find was in the tutorial, which is really simplistic. Okay. So can you see my screen? Yep. Okay. So we do have some very basic examples, but we've been looking at working on creating very sample business networks that are stored on GitHub. If it's going to work, yep. It's getting there. Sorry. Slow network distance. And so this is a list of sample business networks that we built so far. So the one I showed at the Hackfest was the car auction business network. I don't know if you've seen that, but we've got one around financial bonds, one around digital property, which is the one from our Getting Started guide. We have our favorite models trading sample. And you went around perishable goods tracking. I'll just open up the perishable goods one. So Simon, this is Chris. We're running out of time and we're losing a couple of... Oh, sorry. Yes, the member is here. So what I would suggest is we pick this up next week. And you mentioned there was a call on Monday to go over this in more depth. Is that right? No, it's a Thursday call. So it's actually after next week's TSC meeting. Oh, after. Oh, that's kind of late. Okay. Well, that's fine. Well, we'll pick it up next week. And I think everybody, please do feel free to sort of follow up on the mailing list. Yeah. Any questions? Please give me a shout. Yeah. And I'm sure the team would be happy to respond and do take an opportunity to go and check it out and kick the tires if you have any specific questions. So I think an apology is to Dan and Mick on the Sawtooth demo, a net discussion and to Tommosh if he was on for the continued GSL discussion. But we're at end of job and a little bit over time actually. So thanks again, everyone. And we'll pick it up again next week. Thanks, everyone. Have a good day. Bye.


It's the most wonderful time of the year, in the galley of the U.S. Navy's only four deployed aircraft carrier, USS George Washington. It's really good. The CS has made really good food, and it made having duty on the ship a lot easier than it could have been. George Washington's supply department has prepared a special meal consisting of seven different meats, including roast pig, beef on the leg, stuffing, mashed potatoes, and desserts for the sailors who are working and away from their families during the holidays. Our two focus areas is the duty section and the single sailor. So why not have a duty section on Christmas? It could be challenging for married couples and families.  So all the CS's were excited, even the CS's that were off today came in today, and just to ensure the GW crew had a great feast. For USS George Washington, I'm Petty Officer Jacob Allison.


what's up everyone take down here welcome back to another video today i'm gonna be ranking every uncharted games i'm really excited and let's get right into this so over the past few months i ended up purchasing all of the uncharted games on the ps4 and ended up playing and beating all of the games and i absolutely had a blast i absolutely love the uncharted series because it includes things that are like parkour puzzle solving action shooting and also treasure hunting which i'm a huge fan of all these aspects and it brings them all together on one type of game so i'm a huge fan of that up first with uncharted drake's fortune it came out in 2007 and it is an action adventure game with parkour and puzzle solving you play as nathan drake a descendant of sir franches drake trying to find the lost treasure of eldorado with the help of alaina and sullivan this is the first look at the uncharted series and to get to know the character and see what is what and what you're capable of doing with all the parkour stuff and all the puzzle solving stuff it's pretty epic to see i absolutely loved this game it was a lot of fun i'm gonna rank it eight out of ten next uncharted two among thieves it came out in 2009 and in this game you're in search of a treasure in shambala drake partners with clloe and alaina while battling mercenary groups so this one here has a very interesting story it's a lot of fun i definitely recommend it it's very crazy to see different perspectives of things but i'm gonna rank it only a 7.5 out of 10 a little lower than the first game but i absolutely love this game as well next is going to be uncharted three drake's deception it came out in 2011 and drake and sullivan are in search of a legendary lost city the imran of the pillars while competing with a mercenary group led by one of silvan's former employers this game here it's a lot of fun a lot of things happen in this game and a lot of back and forth and some crazy events happen i highly recommend this game i'm gonna rank it eight out of ten and whenever i did my last play through whenever i played this game it was actually the first time i played uncharted three i did end up playing uncharted drake's fortune and uncharted two back on the playstation three but i recently played all of the games on the playstation four so i'm gonna rank uncharted three eight out of ten next is going to be the one i've been looking forward to for a long time and i recently played it and had a lot of fun and that is uncharted four at thief's end it came out in 2016 in this game here nathan drake is married to alaina from the first two games which i thought was awesome but he comes out of retirement because he is tricked by his older brother sam who nathan thought was dead with the help of sullivan and alaina they searched for henry avry's treasure henry avry was a pirate back in pirate days so basically they're searching for a pirate's lost treasure but everything that happens to that they end up finding the treasure they end up finding all the plot twists from back then of what happened so it's pretty epic to see i absolutely loved the story for uncharted four it was honestly my favorite uncharted game i absolutely loved it a huge fan of it some of the mechanics were upgraded there was the sliding down a hill parts at different parts where you had to jump and do parkour you could throw a rope and swing while doing parkour so a lot of things were advanced i'm going to rank it 9.5 out of 10 and the last game for the uncharted series is going to be uncharted lost legacy it came out in 2017 and it was supposed to be actually a dlc for uncharted 4 but they realized that it was too large to be just dlc for the game so they decided to release it as its solo game after uncharted 4 kind of like far cry did with far cry new dawn so in lost legacy it continues the story of uncharted 4 but it is the first game that does not include nathan drake you play as chloe in this game who searches for the tusk of ganish in india with the help of nadine who was a bad guy in uncharted 4 who was trying to kill sam and nathan drake and also you get the help of sam as well this game here because it was a shorter game it's not the traditional 20 plus levels that the previous uncharted games had because it was just supposed to be dlc but it was nine levels which some were really short but there were two i believe number level four and level eight that were really long there was a lot to do but the story was also amazing it was a lot of fun i highly recommend playing this but again if you're going to play any of the uncharted games i would honestly play them in order because you get all of the details all the backstory in an uncharted 4 you get a lot of the details from the past and you get to learn about what happened with sam with him with nathan thinking he was dead and it's revealed he actually wasn't everything is absolutely crazy so uncharted lost legacy just continues this outside of nathan drake's story it's a lot of fun i'm going to rank it an 8.5 out of 10 for uncharted lost legacy so this was me ranking all of the uncharted games i know there was two others one was one that was on the psp and there's also another one i can't remember what it was released on maybe a psp as well but it was basically a card game but those are not for the story of uncharted and nothing that in those games pertains to anything you see in the other uncharted games so i hope you guys enjoyed this video me ranking all the uncharted games i absolutely loved this game i absolutely loved all the games in the series and it is rumored right now that there may be an uncharted 5 maybe it has nathan drake's kids where you play as them and continue the story and maybe nathan drake is basically the sullivan in that game that would be very interesting or maybe you just have a older nathan drake and you're playing as him because i know an uncharted 4 it looks like he's mainly retired at the end of the game where he has an older teenage daughter and him and alaina who are married are basically living a happy life so i don't know if there will be another one but the guy that voices nathan drake for the whole franchise for the whole series says that he is very interested in making another game and thinks it's very possible so who knows in the future maybe later on the ps5 there will be an uncharted 5 i can't wait if there is i'm going to be a fan of it and i'd be on board with it but i'm going to leave this video here please take care peace


Yeah, so we are online now. So, welcome to the regular Q&A session for student centres in Jenkins Google Summer of Code. Today, I will be driving this session and we also have a number of students and mentors participating. So, it's a kind of unofficial meeting just for Q&A and we can just proceed with that. If you are interested about JSO plans, etc., we have another office hours for mentors and for JSOXA project tomorrow. Okay. So, yeah, I think we can just proceed with questions. So, yeah, if you have any questions, just ask them or just write them in the chat and then we will be able to answer them. Okay. Should I start, sir? Oh, why not? Okay. So, my name is Prasthik Gewali and I am interested in the JSOXA Artifacts Promotion Plugin Project. Okay. So, I have a couple of questions like, it was pretty tricky for me to understand the whole flow of the project, what is desired during the project. So, like, I just want to ask you that the promotion job that you are talking about, the promotion, new promotion plugin, that it should be represented as a promotion job, right? So, and that should, okay, and like, should it be created in such a way that it would encompass both the freestyle and pipeline projects or it should be a different job for pipeline only, like? Well, yeah, I'll try to quickly answer this question. So, probably I should just show you some code to explain why we are doing this project at all. So, yeah, we have, we did have a Jint and CI promoted builds plugin. So, this is a plugin which is widely used, but the main problem of this plugin is that it supports only freestyle projects, well, actually it supports all abstract project build types. So, please, maybe in the job days, et cetera, but it doesn't support pipeline and other similar jobs, just because it's architectural design, it was created long before the pipeline was created. The main problem of this project, what we have now is that there is promotion class and this class actually implements abstract build, though it's not a build itself. And promotion process is also not a job, but you may see that these classes hijack the existing APIs of Jenkins. So, you may see promotion process implements abstract project. And in addition to that, there is a promoted build property somewhere in the list, I believe. And the main problem here that it emulates a folder, although it doesn't represent the folder on its own. Yeah, here, job property implementation. So, you may see that it's item group in Jenkins. And it causes a lot of architectural concerns because, yeah, the class doesn't really implement how Jenkins architecture is designed. So, item group is supposed to be item itself in the most of the cases, but here it's a job property. So, many APIs don't work correctly. And this structure is also not really extensible if we talk about pipeline because, well, for starters, you may see that it includes abstract project right here. So, if you want to make it compatible with pipeline, you would have to rewrite almost the entire implementation to make it compatible with pipeline. And even with that, it would first break binary compatibility. And finally, the implementation is just not one would expect from promoting builds. So, the idea, instead of implementing this thing, is to actually have a separate job, which can be triggered from promotion. So, instead of emulating a kind of folder or item group for a particular job, we think that it might be better to just have another job, which would be a promotion. And then you could trigger this job from an existing promotion management. So, it was a proposal. A different promotion job would be created that will work for both freestyle and pipeline projects, right? Did you mean that? Yeah, it would be nice. So, when we talk about a new plugin, it would be great if it supports both job types. Okay, so for that, sir, the previously held promotion build plugin that we have inside the configure category, we need to copy that code into a new job, right? We need to refactor the entire process. If we need to make it compatible with both the freestyle and the pipeline project, a common job, I mean, a common job should be created so that it will work on both the sides. Yeah, okay, I understand. Okay. And sir, you mentioned something like triggering promotions as steps, like in pipelines. Yesterday, you mentioned triggering promotions as steps, which means like, as far as I can understand, it's like, after the completion of the pipeline, it will, a new stage would be included in the movie script, so that it will trigger the promotion. What would that mean, sir? What does it mean? Yes, it could be just a step. For example, you can trigger promotion of one job from another. So there are plugins like copy artifacts or release plugins Jenkins. And you could just implement the step which could trigger promotion of another project. And in such case, you could implement your pipeline which integrates with multiple jobs. It's one of the ways. Another way is that there is a step which triggers a promotion for the job itself. So for example, you build artifacts, you tested them, and then you trigger promotion which runs asynchronously, but you still trigger it from the pipeline so that you can trace the connection between projects. Okay. Okay, and sir, next question is like you said, defining promotion in properties yesterday, defining promotion in properties. What is its meaning? Like would it mean that inside the job section, there would be properties like environment that way it would be deployed later on? Yeah, right. So how common CICD systems approach, they have definitions, they try to implement configuration as code, and they try to put all the definitions inside one file. It may be a groovy file, it may be declarative pipeline definition, or it may be just whatever YAML file. But they still try to have everything in one place. And it will nest or have the same in Jenkins. Okay. So last question is like in pipeline will allow manual promotions also, right? Like we do in the free from projects will also allow manual promotions. And those things also be included in the promotion job. Yeah, right. So you can try promoted builds plugin. It effectively implements what we would like to see in pipeline. So yeah, you could add some enhancements, but yeah, promoted builds plugin already supports automatic and manual promotions. And yeah, I think if we could implement it in the new plugin, it would be really nice. And that the plugin that we have named promotion simple build plugin. So it's total function is just to trigger things manually, right? What is its main function? I couldn't get that the difference between promoted pipeline and promoted simple build pipeline plugin. Somebody tried to implement a simple promotion plugin. They started this project, they got some releases, but I would say that, well, they just implemented what they needed for the environment. So it's a subset of the promoted builds plugin. Yeah, if it connect as a source of inspiration for you, how it could be implemented, that's fine. But yeah, personally, I have never considered the simple promoted builds as a separate plugin. So the promoted build plugin also also has the manually triggering function. If I recall correctly, yes. Okay. Thank you, sir. Yeah. So we thanks to all others on the call. So my proposal would be to start from process questions. And then if we have time, we will be discussing project details, because yeah, I understand that many students here just they just want to discuss their projects. But yeah, the real goal of this meeting is to focus on the process. So does anyone have any questions about the process, about the applications, about the details, whatever? If no, we will just proceed with going through projects, if needed, and answering questions. Hi, Olin. So actually, I started working on my proposal yesterday. So I was thinking I was going through the past year proposals, they have like a concrete timeline about what they are doing. So we need to have a very hard and fast sort of time, timeline or a very brief timeline about what we are going to do. Because what they did was in the timeline, they particularly explained in each week what they are going to work on. So Just a second. Do you see my screen now? Yeah, I can see it. Yeah, so I will show what Nisar is talking about. Let's take whatever. Okay, so here you miss probably too many links here. Yeah, so there was the proposal, yeah, probably your reference, something like that. So here, if you scroll down, you want to find the loads, of course. If you scroll down, you may see that there is, sorry, I just moved the new laptop and it's really slow. Yeah, I just don't see anything on my screen so far. Yeah. Oh, yeah, we can. So yeah, you may see that there is some definition about the timeline. So the idea here that, well, you can define a detailed timeline, maybe on the daily on, if you want, but the problem that of course, you cannot match this timeline because there are so many details which we need to discuss. And what we have now in mind is that we usually expect students to submit a rough timeline as a part of the project proposal. So yeah, you can start from something like that to define main milestones. What we ask there are three coding phrases, plus community bonding. So there are four milestones. And for each milestone, you can start from defining deliverables. Because yeah, so there is a list of deliverables. She knew wanted to implement in this project. So what we ask you is to map deliverables to the timeline. It will help us to map the project once. So for example, here, let's say, in the end of June, you will have the trust coding please. And you can say that at this phase, you want to shift something like a couple of features, maybe plugin skeleton, maybe alpha release of your plugin, something like that. So this is what the granularity we expect from you. If you want to go forward and to detailize the things, it's perfectly fine. But we really plan to do some reality mapping as a part of community bonding. So you will be still guessing what you want to do because it's hard to estimate what would be the real time you will need for particular deliverables. So just take top level items from here and try mapping them to the timeline. It would be a good start for your project proposal. Hello. Hi. I wanted to ask a thing that I have made a sort of a proposal. I'm still working on it. Would it be fine to show it to you and the other mentors for the role strategy plugins? Yeah, it's perfectly fine. So what we usually suggest that once you have a proposal draft, you just post it and then mentors review it and provide feedback. That's why we recommend to start earlier. So if you already have a proposal just posted in the chat, for example, you've done it for the second. Yes, too many chats. Yeah, so here you may see that there is already a proposal somewhere in this chat. Yeah, that lasted lasted last last message which I oh, yeah, there. Yeah, I don't. Yeah, so you may see that has already started this proposal. And what we recommend you to do is that when you create a proposal, you make sure that it's actually shared with everyone. So that it's public that everybody can comment. Okay, so something like that. It helps other community members to be able to join the discussion to provide feedback. And the same as project ideas. Please make sure that this project proposal is public so that we can review them together and enhance them. Okay. And can I ask about some questions from the plugin? I propose to just finish the process questions. And then yeah, I believe you will have time and we can switch Okay, fine. So any questions? Just go to the details. Okay. So yeah, I think you can just ask the question. Just one second. I was asking about for the cash in validation, we have the item listener, right? Yeah, from the extension points provided in Jenkins core. And I saw the structure of the classes. So job extends item. I mean, job is an item. So can be like whenever any item is created, we could check that if it is an instance of job or not. And then we can modify the cash. Yeah, exactly. So, yeah, all the jobs in Jenkins instances of items. So actually item, there are two types. It's top level item. It's something you can see in the Jenkins web interface. And it's also sub items. For example, if you use multiple branch project, there are sub items as job in instances there. And yeah, but all jobs are items with some extension. What, yeah, if you were talking about promoted bills today, so here you may see that there are tricky things like this promotion. So you may see that promotion is actually abstract build. So it's an instance of run and promotion process is actually an instance of abstract project. So it's an instance of job. So it's an instance of item. But this item doesn't really exist within the three of items within Jenkins. So it's a kind of detached items out of three. So yeah, it's a bit tricky. But yeah, you get this edge case for now. So in your project, you can safely assume that all jobs actually items and they belong to the three. Okay, so there would be some cases which I need to work on. Well, here, as you said, you can just assume that you check whether I can use an instance of job and application. Okay. And another question I think that was unanswered was that having a database like embedding and database into the plugin. So there are two answers. If you want to have in memory database, it's perfectly fine. Yeah. If you want to have a database which persists the data on the disk, then I would rather advise against that for this particular plugin, because once you start persisting data on the disk, you may start getting to the various issues. For example, this backup management with restarts of the instances, etc. So memory thing, it's perfectly fine. So you will be able to recreate it on demand. Okay. So how it usually happens. And I think it may might be useful for other students as well. So when we start talking about static objects in Jenkins, there are two ways. Firstly, you can just implement static variable, which is okay, but static variable can actually persist across Jenkins restarts if they happen within the same JVM. And usually, the advice is to actually bind it to single tons. For example, if you take a whole base authorization strategy, you may see that there is an extension here. Just so yeah, extension. It's distributed implementation. But actually, if you scroll down, yeah, so this quote is a bit latest. Here, you may see that there is an object. So this object is actually a single ton for Jenkins. And here you can create, for example, transient, whatever cache so that it doesn't get persisted on the disk. And it still exists as a single ton object using your Jenkins instance. And when this object is recreated, the cache will be also recreated. So it would be my advice how to handle it. Another doubt that I had here was that whenever the plugin is initialized, let's say after Jenkins restarts or something. A lot of time would be taken to match the regular expressions, weren't it? You mean on the startup? Yeah, when if we consider creating a cache to populate the cache when Jenkins starts up, would it not take a lot of time? So that it might take a lot of time if cache is too really and if it's many items, but there are two ways. Firstly, you can implement the cache in the initializer logic. So it works Jenkins startup while the cache is created. Of course, it's not advised. But you can also initialize the caches in promising. So when Jenkins starts up, you can after all jobs are loaded, you can trigger a parallel thread which would be initializing the cache in the background. And in such case, the performance, the startup time will not be impacted. Okay, yeah, so in such case, you can prevent the performance impact on the startup, but still retain all benefits of caching. Yeah, that makes sense. Okay, yeah, so now I have now been advanced disk order, right? That yeah, so like now, after, you know, to discuss with the mentors and all that, we like I just came to the conclusion that finger printing should be used for the, you know, external workspace manager so that by using finger printing, I can get the workspace ID and from that, I can get the details of the path of workspace and all that and from that details, I can delete the workspace, right? So, yeah, so that's correct. But what I think is that now the builds which are created by the multi branch pipeline plugin or the multi branch pipeline project and like if someone adds multiple work spaces in the Jenkins file, then would the fingerprint work in this plugin also or else it is specific to the external workspace manager only? Well, fingerprints have been attached on the build level. So even if you take and talk about multi branch pipeline, so multi branch pipeline actually is organized relatively simply. So there is an item that there is an item called abstract folder or just Yeah, so and multi branch is actually a computed folder. So it's a folder which has been generated automatically by the background logic. But this folder still contains the common items and these items implement common builds. So it means that fingerprints and all other pipeline logic will behave pretty much similarly in multi branch pipeline. So if everything is implemented correctly, you won't need to implement specific hooks for multi branch pipeline. Okay, yeah, so like, can you just scroll down to page number eight of my proposal? Yeah, yeah, yeah, just a page up. Yeah, so here's the implementation of, you know, of multi branch pipeline. So like what first I what my idea is that first of all, obviously that run listener would be used for the communication between advanced builder and multi branch pipeline. Right. And, and like, now, there are two methods which I finalize, which can be used for trigger that is on finalize and on computer. Now that would be like, I discussed this one with the Martin sir, and he told that we will finalize one method in the community burning period. So like, he just suggested to write both of the method in my proposal. So so I have listed it both. And like, now, so these both the methods will be triggered. And now, for the Jenkins file, now what, like, now the filter methods will be given at the data bound constructor and that and the main class would be extended by the abstract step IMPL. So that methods can be used in Jenkins file. So like user can directly use that methods in the Jenkins file to call that a particular filter and the filter values needed to be specified in that that and after that, the delete method would be implemented, which will fetch the root of the workspace is a pipeline. And from that, by the layer of layer, layer of layer, the filters will be executed. And after that, the actions would be executed. Yeah, it can work. Yeah, I think that this level of details is fine for now. So what you need to do is maybe continue working with mentors to utilize the things. But yeah, from logic description, it looks to be okay. And yeah, we'll be able to define details during the community burning. Yeah, yeah, so like, I just want to confirm that like, this much detail is enough or like, I need to, you know, specify more, you know, a concrete detail which can be useful, like only that was my only doubt because Yeah, so this level of details to bonus this much more than enough. Okay, we expect students to submit something like maybe two to four pages of proposal. So it really depends. So we do not actually judge by pages, we judge by content. Yeah, yeah, I would say that this level of detail is more than enough. But probably, okay, for external review, you may even want to consider somehow breaking it down. So having details in appendix and have related the short description in the body, because it may help potential mentors and reviewers to better understand what is your plan. Does it make sense? Am I still online? Yeah, I guess so. So yeah, proposal is not about a number of pages. If you can write a good proposal with two pages, it's perfect. If you need 15 pages, it's also perfect. But we really recommend to have at least main sections to be short enough so that they can be reviewed really quickly. And then you can put all the details in the additions of your proposal. Okay, do we have any other questions? Pateci, you were pretty silent today. So if you have any questions, let us know. And yes, sorry if I pronounced the name incorrectly. It was correct. Actually, this isn't I don't know, like, it's not related to Jesus. I shared one thing regarding the blue ocean plugin generator. It wasn't working. So I raised an issue and as you suggested, I posted on the mailing list as well. But as such, I couldn't elicit a reply from any one of them. So should I follow up or like some no one is working on that presently? Yeah, I definitely know that the people are working. So they think that last week, almost everybody from the blue ocean team was traveling. So I suspect it just got missed. Unfortunately. So it's somewhere in the mailing list, right? Yeah, it's in the knowledge and kids developer group. It's on GSOC. Yeah, so if it's okay to answer the question, because not everybody from the Jenkins community is in JSOC. So yeah, sorry about that. Yeah, I should have noticed it. Okay. So yeah, if you have generic questions, even if you're a student, it's better to ask the developer mailing list because it has a much bigger exposure. Okay. So here, for example, let's see, the abortion. Generator for abortion pipeline development. Okay. Long game tutorial. Okay. Yes. So here, you should really overfeed the developer's mailing list. And if I recall correctly, there is also no there is no abortion developer mailing list. Yeah, thanks for bringing up this question. I'm sorry. It was me who missed that. Okay. Okay. So thanks should be good enough. And yeah, thanks again for submitting tissues and for working on this area. So from blows from JSOC team, there is Craig Rodriguez, who is one of the mentors. He's particularly interested. So yeah, I think that he might be able to answer. I'm not sure what is that about. Okay. So yeah, if there is no response, please think me I will help to get a process. But yeah, if you have development related questions, something like hardcore, etc. asking in the developer mailing list is probably the best recommendation. Okay. Are they any other questions? I guess no. So yeah, just all we will have two sessions tomorrow. One session is common mentor meeting. Another one is another corner session. And yeah, next week, the application's open. It doesn't change anything specifically for us because we will be still doing business as usual, always meetings. But if you need more feedback from mentors, please don't hesitate to ping them in the charts because everybody is busy, but it's our joint interest to provide feedback to you as a part of the application process so that you can create better proposals and we can, yeah, we can just provide some feedback initially so that when we get to community bonding, we are more ready and that everybody can understand what would be the scope. Okay. So thanks, everybody. And here, I think see you tomorrow. Also, the broadcast.


I haven't done a Caden live video in a little while and I still use this for my workflow. I have been determined not to use any other thing but an open source product and run it on Linux. I know that a lot of people sometimes give up on there and besides me and I believe the Linux gamer, I don't know a lot of people that are quite as determined to only use Caden live to edit our channel content. This is what edits probably 90% of my channel content. The only other tool I use maybe the other 10% was the earliest videos I used open shot. That's what I started using and I kind of I don't know if the word outgrew it or it just didn't have all the features I want. Once I learned Caden live I was really happy. Now for those of you going but it crashes all the time it has gotten substantially better over the years so for if you would try it a while ago yeah you dealt with a lot more quirkiness versus has become extremely stable. Well extreme is okay. Much more stable than it was. Extreme stable maybe would not be the right attitude to use for this but it has become substantially better and they are still as the popularity of this goes grows it has become better and better with each version so they're good at quashing bugs and the only way it's bug squash is report those bugs by the way so you can't just say it crashes and move on. If you really want to help an open source project sometimes you know creating the scenario documenting scenario and submitting a ticket to how that scenario came to be helps the developers understand what needs to be fixed that's been an important aspect to improving the product. Now that being said I am running this on Linux I am running this on currently I run Papa OS that also being said if you want to try it on Windows I've had a lot of problems on Windows with it maybe they've improved it it's been only a few months since I last tried it but I just found it to be very glitchy on Windows. I think they put it on Windows less as a use case more as a to gain popularity of the product but unfortunately I think it may be hurting their brand a little bit because I've I've just had trouble with Windows on it but then again I run Windows very little and I'm not the best at troubleshooting all the different things you have to do. It works great and if with Papa OS you can just install it directly and no problems like I just use their the the pop shop to install and it works so that being said let's get rolling into this. Now I'm going to get my head out of the way and for those of you wondering I'm still using OBS Studio to do the record on this so we're going to show you how I do a multi camera edit so it's not just editing it's the multi cameras a lot of people isn't just one thing they want to cut and put in here maybe they want to have something else in there and that may present a little bit of a challenge so I'm going to show you how I create these videos now I've turned on a little tool called screen key so you can actually see what I'm typing and that's going to be very helpful against you here so we're going to go ahead and first we'll just look at this project this is the edge switch video so this video is published already done and you can see like it has an overhead track it has the main track and I'm pulling audio from the main track this one's muted we're going to show you how I created this this was a really simple example of one of how I edited and shot this video so we're going to go ahead and start a new project my default is 1080 at 30 frames a second this does have an option of editing in higher resolutions like 4k I just don't my camera's not 4k but it does it does go up there and I believe the Linux gamers talked about this tool and he used he shaped some of the stuff in 4k so it does have further support just not what I'm doing so now we've got a blank project here now this is very slightly different than my normal workflow and I'll just cover that real quick load layout this is my one screen layout versus three monitor layout you can read changes around and normally I stretch the editing across multiple screens so I have more screen real estate but it doesn't present well on YouTube so functionally it's the same but layout is a little bit different it's a little bit tighter here so let's get the files dragged in so here's the project files it's the ones that recorded you should probably name them but when there's only three of them and I named one of them overhead they're not hard to figure out so the first one is the non overhead shot the second one is the combined shot where you want to jump back and forth between the two of them all we have to do is take these now that we have them here and drag them down now we're seeing at the bottom is what key presses I'm doing the x and s is choosing between the select tool and the razor tool so we're going to go ahead and hit x and I just know as I can watch the video here I have to hit record and walk over to my seat because I do a lot of these videos by myself I don't have a cameraman not that fancy yet so we hit x so we go into cut mode I know if I cut about right here then I hit s highlight this press delete key and it deletes it and then we just drag it over now we've set an easy beginning of the video so I can go here and I can see that the video is starting I have the audio turned down but normally this is where you listen to it and figure out you know what parts are there the other thing you do is you notice how you can see the sound wave sound here at the bottom if you hold the control key I wonder why it's not displaying the control key I guess isn't the screen keys isn't displayed a modifier it's only control key and rolling the mouse back and forth let's you zoom in and out of the timeline and once you zoom into the timeline you can then go here and see things and if you want to zoom all the way in it gives you a frame by frame basis nothing we're doing is so frame by frame technical but if you had something you want to remove you can then you know zoom in that far and remove things you know in those finite little details so this is the first part of the video where I unbox it I talk about it I'm talking to the camera and then I say at the end hey let's take a look inside so we go to the end of this part and I know I say it about right here like I said I normally listen to the audio but that's not relevant get to the select tool and just before I get up zoom in a little bit drag it over I know that's where I say hey let's look inside cut press s to change it from cut to select press delete to get rid of that extra little piece now something I do think is important I'm going to go ahead and save this real quick I don't know why I capitalize it doesn't but I do recommend saving it and that way you can just hit control s as you're editing and this goes for any editor I've seen people lose their minds with some of the other commercial editors the same way where it lost something if you're doing a lot of edits and cuts I just keep my fingers on the keyboard and I hit control s a lot to make sure I'm saving because that's important now here's comes the tricky part now I know this is my main camera and this is my overhead camera as I named it overhead and I just know this is the main one so we're going to drag it here and before we do the trimming and cutting I hit the record buttons approximately the same time but not exactly the same time so there's going to be a slight variation here but because the overhead camera does have audio on it it makes it easy to line up other tricks to making them line up would be like you know having both cameras looking at the same thing and like clapping your hands together and then timing the noise to be exactly like that because I'm asking you can't see my face in here to time it that way but even without that you can see the peaks starting now because the camera the main camera has the good audio track and this has a local quality audio tracks it's just the on camera mic we're going to go ahead and choose mute mute te and then you just drag that over to here and this is something that's really handy for when you're doing this being able to just go up here and drag now you can also the effects are all right here and there is a ton of different things you can do color corrections and stuff like that I did apply in the final video a color correction which I'll show you real quick but we're not going to leave it applied for the demo here but if you need to apply a color correction because for example you notice it looks a little bit dim you may want to just go here to color correction gamma and now you can see we're brightening it up so it's not hard to apply those but I will say you may want to wait till the end to apply them depending on this video your computer because if you apply the color correction effects prior to the editing it's it can be a little bit more taxing on the computer because it will show those in the preview now we've got these two things synced up as you notice we moved them around and we say okay this is where the audio syncs and we know it's the same now so we can see it together we'll actually zoom in a little bit closer and I feel that's pretty aligned and it doesn't need to be perfect unless you're trying to sync up someone's speech then you want to make sure if I was you could see someone's face because there's nothing more annoying than you're being out of sync it just it's unsettling to watch I think but now we want to group these together to make this easier so we just hold on the control and click on each one of them and by doing this control and pressing edit then we say group clips that kind of makes them for the moment act as one clip now we don't want this for all time but we want this because now I have to figure out where the talking part begins because this is obviously nothing going on here I'm just adjusting the cameras so we want them to start here and I'll do the control s because after I do something you like to click save so now zoom in a little bit and I'll say the talking part starts right here hit x so we have it in the cut mode and when they're grouped they cut together so then we'll delete this drag this over and I'm going to ungroup them because now I want to apply effects separately now if they are grouped one nice thing will happen is the effects will be applied simultaneously to the group that's why did the mute before grouping that's an important procedure and then for the other part here we want it to occur simultaneously for cutting but now we want to apply the effects individually I'm also going to make it easy on myself by taking these and dragging them both also it was a control and select both of them and dragging them up and we'll move them back a little bit and I probably should have done this before I cut but by having a slight overlap and then I go like this and now we've created a dissolve so now it will just dissolve into the next frame but you don't see it because this is on top this is the part where uh figuring out because I want to cut between the two cameras I want to make this easy and this is my editing trick for doing this so hit control s to save again before we start applying effects like I said I get in the habit of doing this and I think this is anyone who's worked on computers for a long time control s to save in a multitude of programs you want to make sure that you are doing this all the time so now we're going to go over here position pos position and zoom and I'm going to change the size here for the top video to just 50 for now and now it's moved over here now once you do 50 you can actually go ahead and just drag it and make it smaller now what I'm doing here now if you wanted if you wanted to show the two shots simultaneously you could do it this way now the first part I'm talking about what I'm holding so I want the main camera shot so I just leave this over here until I actually start looking down so I'm still talking to the main camera now I want to start talking about the components about right here now the easy way for me to do this I just know and you know if you listen to yourself sometimes I'll accuse myself by pausing leaving a gap and looking up so what you do here and a couple things we can do if I want I could cut this little pause out we're not going to do that here we're going to just go ahead and select the top layer and we select this now I don't need this little piece in the corner but by doing this now I can select it hit delete and now I just have me talking then I decide how much of the overhead do I want and I'm going to choose an arbitrary amount for the purposes of the demo I actually did most of this with the overhead but let's say I wanted to start talking to the camera again here I hit x again now I take this piece and I just hit delete on the position zoom now we start here I switch here and I switch back here and let's say there was a part here and we'll just pick an arbitrary point again you know let's say I wanted to cut back to the main camera and I just don't need this piece so then I select it out but by having them just small right there I'm able to without having to read drag it back in each time and we'll cut this piece in to be the full camera so we do this and we take this and we're going to remove the effect so now as it plays out it's here I switch overhead I switch here I switch overhead because I'm never changing alignments the audio would always stay in sync and this is how you can do very easily a multi-camera edit now the same rule applies I generally like a hard cut when I switch between cameras but if you want to do a soft cut it'll fade between there this is personal preference the default is a dissolve it does have swipes and all the other things and I see some people love and I you know and remember reminiscent of the 80s videos where we swipe to the left or to the right or up or down or dissolved in weird patterns like diamonds you can do all that if you want I I don't uh it's an editing style preference but you just click the corner and it automatically adds a dissolve and you can just drag this transition but then you can also and sorry my color layout changed so it's not showing you which one it is but then this is how you can change all the different interactions if you needed to for how the dissolve works but you know no big deal it is like I said sorry about the missing I was playing with my colors and I didn't fix them before the video I'm not sure what I changed I was customizing things but you can darken soft light value and then you can control the type of transition here so alpha add blend like I said these are all these little fine details if you care about those things and playing with it that's more advanced and I don't really use it much so I'm not an expert on that but by doing this you can now go back and forth it switches the overhead it fades back or in this one without putting that we hard cut back and forth and then in the end I just talked to the camera again so we'll just go ahead and eliminate this entire second track with just select it press the delete key and we're done and then I put the put the thing back together so we'll go ahead and trim this off wherever I think is right here where I stopped talking x whoops s for select and then hit delete I delete those extra tracks and that's it hit save I can go ahead and render this video and now I have the video for this now there's one actually if you watch the final video I also drag in and I can just show you real quick because I'm using OBS I just drag in the OBS video that was with it that saves to a different folder by default just the way my workflow was set up but it's pretty easy to get going on here and drop in a couple files and away you go now one other thing I'll comment on and I screwed this up the other day as as many of you pointed out is if you do have to obscure things that is common for there whoops I'm in the transitions you got to make sure I'm on effects a lot of people ask about obscuring stuff as well and if you want to blur something that is something absolutely can do now by default it blurs like this so you can see the little blur going on here we make it a little bit bigger and you can select where it is this little box here is lock aspect ratio in case you don't want to because you don't want it to be a rectangle a lot of I don't know why it's locked by default but now you can do this and you know obscure something that's on there now maybe I'll do another video on how it can do tracking with obscure but I will admit it's not wonderful there are most their ability to track and do object tracking to obscure it I've used it for things like I've obscured a license plate in a video that I uploaded once as the car moved the the pathing on it's a little bit tricky I'm not very good at it I could probably get better at it maybe I'll do a video but I just hardly ever use it most of my time if I'm obscuring something I'm obscuring like an IP address or a serial number or a windows license whatever it might be something I don't want shared so you just do that and drag that obscure on there now the nice thing you know we'll cover this because this overhead shot repeats of course here let's say I wanted to you know obscure the serial number of this you go to this and it's not on here you go here drag and now it's obscured on this one as well so once you create an effect the effect can be dragged over and we'll also add because I noticed that this is a little bit dark and in the end video I really did color corrected a little bit by going here and go color correction gamma and brightened it up and then of course now it looks faded so now we went here color correction and because I have a background photo editing and things like that I'm generally comfortable using curves the baser curves and understand how to use them so we're going to go ahead and make that a little bit more contrasty you know you fine tune it but now you're going okay how do you apply that well there's two options here because this is all in video three track there's two ways I can do it I can apply it to the track itself and now everything on that track gets it or control z so we didn't want to we'll undo that I can take this adjustment and drag it over to this one so this one was not adjusted and now it is but we didn't drag the gamma over so now we got to drag the gamma over to and now we've applied those same effects to this or you can drag them to the track once you've tuned it on one particular clip then you can either drag it to the track but everything on that track will get that effect and there and also someone has pointed out before in my editing like hey I drag the mute directly to this clip you can drag it to the track the only reason I don't usually drag things to track is because when you start getting to the more complicated edits with a whole lot of things in here you'll you may have forgotten and I've done this before I render like why is why is audio cutting out oh that's right I drag the mute to the one track but then later I move something up to this track that was had the audio track in it and you know it caused an issue that being said that's the video editing workflow for a two camera setup with Caden live I guess it pretty simple and when you're done you just go ahead and hit render oh and for some of you that may have noticed I've added a end roll so the way I add the end roll this is actually how we end it as I just go here and that and that'll get added to this video now that I'm editing and it fades into the end roll and away we go thanks for watching if you like this video go ahead and click the thumbs up leave us some feedback below to let us know any details what you like and didn't like as well because we love hearing the feedback or if you just want to say thanks leave a comment if you wanted to be notified of new videos as they come out go ahead and subscribe and the bell icon that lets YouTube know that you're interested in notifications hopefully they send them as we've learned with YouTube anyways if you want to contract us for consulting services you go ahead and hit launch systems dot com and you can reach out to us for all the projects that we can do and help you we work with a lot of small businesses it companies even some large companies and you can farm different work out to us or just hire us as a consultant to help design your network also if you want to help the channel in other ways we have a patreon we have affiliate links you'll find them in the description you'll also find recommendations to other affiliate links and things you can sign up for on laurance systems dot com once again thanks for watching and i'll see you in the next video