Good morning everybody. Hey Bobby, good morning. Good morning Bobby. Give everybody time to get in. Let me share my screen. I only have one screen today because it's kind of like a holiday weekend here. So bear with me while I try to figure this out. My laptop screens are in my way. So hold on just a second. Oh, this is going to be challenging. So does everybody see my screen? Yes. Okay, good. That's the antitrust policy. This is a Linux Foundation sponsored call. It is being recorded and we have a code of conduct and an antitrust policy. They're displayed on the screen. Please take a moment to review them. Again, everybody who's on the call has seen all this before, so we're just going to get right into it. So the TOC meeting was canceled this week, so I'm not specifically on the schedule. So whatever this group conscious comes up with for the presentation, if you want it to be this Thursday or next Thursday, I would shoot for next Thursday since we're not even on the agenda, but they would take us this Thursday for the presentation. Again, the presentation is going to be a slide for every one of the initiatives we're working on this summer. We will speak to, or you guys are going to speak to, what the goals are for each one of those initiatives, what our plans are to get us there, and then we'll be off on our summer journey to accomplish those things that we said, and along the way we're going to do other presentations and help out the mentees. So with that said, I'm going to have everybody introduce it. Now again, I'm working on only one screen, usually I have like five. So if it takes me a little longer today to move from screen to screen, that's because I'm only on one. So let me see if I can edit this. Now everybody's basically been on the call and know what's going on and we're kind of familiar with each other. So if you just want to introduce yourself and just say what you want to work on today, that would be great. And I'm going to start with Arunama. Yeah, sure. So hello everyone. I'm Arunama Chaudhary. I will be, I'm Aleph Kusmenti for this summer with Hyperledger and I'm also meeting the Hyperledger documentation task force and helping out everyone as much as I can. And as of now, I think we will have a presentation on sexualized. So I've prepared a basic template and uploaded it right in the top of the page. So maybe you can have a look at it and I will also give you, give the right access so that everyone can start editing and perform the task on their respective pages. Awesome. Thank you, y'all. Well, that as soon as I finish typing everybody's name in. And then Ankasha, you want to go next? Let me update this. Sure, Leah. Am I audible enough? Yes. Okay, cool. So hi everyone. My name is Ankasha and I am Aleph Kusmenti for Unboarding Project this year. And I'm also working on documentation as the onboarding lead. I am like handling onboarding on the documentation project as well. So right now, talking with regard to onboarding, we have, you know, we have discussed certain things with old contributors and like my mentor is here, Nico is here. So we had a meet last week. We had a meet with old contributor like Arun and we had discussed a lot of things and he gave feedback on the onboarding thing like how can we proceed with the project this year. And then like a lot of things happened. I made a project plan for the onboarding one and you can even check that what exactly the, how the flow of onboarding will be going on. It's a rough project plan for now, but like it gives the idea of what exactly we'll be working on. I can even share the link if you guys want to check how the onboarding will go on. That's what we did last week. And we have scheduled one more meet for the onboarding one separately because onboarding means a lot of things, you know, we need to work on it. So on Wednesdays, we have another call for that. But right now, talking about onboarding, if there is any more update, I'll definitely update in the documentation project. And yeah, that's all the everything about this. That's great. Thank you. And yeah, we will go to that and open that project plan up when we get to onboarding. We're going to do the introductions and then just go through this slide that's on the screen for everyone to speak to their part on it. So thank you so much for all the work and for, you know, coordinating with us. It's really, really, really appreciated. John Luca. Yes. Hi, for everyone. I'm John Luca. Capuzzi from Italy. I'm a software engineer. And I'd like to contribute to GitHub and template subtopics as chair is if it's possible. And also, and to the other topics as a mentee. And also I joined to a call in the past about the climate change. And I'm waiting for some some condition from them. And I'm here so I can participate to the next meeting and also to to the presentation. So I can thank you. I have a couple of questions off topic real quick, just because you said you were in the climate call. What part of the climate call, because I know they have like different subsections, one's working on standards, one's working on this. What call did you go on and what are they working on? Okay, SIG is the name of the team. And I written an email to, sorry, one second. The name is Sherwood. Oh, yeah, Sherwood. He's great. Sherwood Moore. Yes, he does a lot of good work for the country, for the world actually. Yeah, he basically asked if we have a list of people who want to contribute to that project. And also with the skills, they can send us information about how can we contribute to the project. I would like to use them as the guinea pig to try out our new templates when we're finished. So I know they've always been for the past two years asking for help with documentation, whether it's creating a presentation, people can give out to like meetups and other hyperledger groups so that this word about this special interest group can get out there. So thank you for going to that meeting. And I find them, when I can finally attend them, I find them so compelling that I wind up volunteering. So I try to stay away from them because I have too much on my plate right now. Anyway, but thank you for that. Thank you too. Kajal. Hello, everyone. I'm Kajal and I'm the subcommittee chair of our templates. So like I have mentioned earlier that I wanted to help the bevel mentee. So I didn't hear from him any time soon like I texted him. I guess he's busy in contributing. He didn't see my discord message. And also about the kektai, I joined their pair programming session like it's the where the mentees share what they have done. So the maintainer asked me to join the next meet which is today only to discuss about the project and what help they need in the documentation side. Excellent. Thank you. And I also let me just go back real quick. When I come across information in the community that I find relevant for this task force, I just jot it down on our page. So the other day I got this information. So I put it this just in. So the special interest groups, all of them whether it's the climate SIG or the telecom SIG, they have a quarterly call obviously once a quarter to discuss topics relevant to the special interest groups overall. And Ben Thomas is giving up that presentation. Now he did give it to us a long time ago, but I think they fine tuned it since then. So he's giving that presentation, but just for you could offer the templates. The new logo is out. So let me see if I can again, I'm multitasking on this little computer here. I don't know how long it's going to work, but so this is a template for that presentation, which gives you access to the rebranding. So where is it? It's right there. So these are the new colors, the new looks, the new feel for hyper ledger. So if you're working on templates and you're getting any of them out there, that's don't use the old one, use the new one. And I guess this is the new color scheme. Hello. Okay. Where it's more instead of the different shades of the blues, it's the greens. But before you use that for any template, you're really going to have to get the exact color numbers for the colors so that they're exact. But again, this presentation is, if you want to sit in on it, let me see if I can get back there. Oh, good is July 10th at 10am. So that is just information for you. So if that helps you out, I hope it does. Niku, go next. So, hi everyone. I'm Nikusli from India. I'm currently a mentor for, I'm going to mentor my team program.  And we discussed about the derivatives for the projects. And we were supposed to meet Ben. I had a meeting with Ben regarding the branding and other stuff so that we can proceed with the designs and other stuff. But haven't really heard from him. So we're hoping that he will be responding to this. And so that we can move forward with the designs and other parts and start working on those. We'll really start here in a second. That's it. That's awesome. Thank you. Again, I know that the onboarding has the different places that folks can come on and you have the different people that can come on. But please, as soon as you know a user guide need or a possible something that this team can help write through our new templates, please let us know and we'll be glad to get on that. Okay, Tripur. Hi, Bobby. Hi, everyone. So I am working on right now on the Solang documentation, as mentioned before. And I'm also making a standard report so that we can tell you when we are looking at other documentation. And we can see if something is missing and we can add into it. And I'm going deep into the Solang documentation. So that's why it's taking so long right now. And I will share both the standard report that we can use for other projects and if anyone else wants to take up any other documentation and they can use that and see if something is missing or not in the user documentation so that we can improve the existing documentation first and then move to other tutorials and all that stuff for the starting. That's awesome. Next week, do you want to do a little presentation at this call to show us what you've done? Yeah, sure. That would be great. Yeah. That would be wonderful. Thank you so much for doing that. And so do you like the Solang project? Is it fun? I know it's one of the newer ones. I know really nothing about it. It's really fun and actually I'm very interested in Solana. Like I always started, like when I was starting with blockchain, I got into by Solana and then I started to discover everything about what is blockchain, how we work with it. So yeah, I'm really interested in that thing. That's awesome. That's great. Thank you. And Victoria? Hi Bobby. Hi everyone. Okay, so I was appointed the best practices lead. So lately I've been trying to get like to understand what is expected of the sub-commitcy and I would love to get more resources and insight on like everything expected because I had to use the search button to set best practices and I saw about five links to different equipages but I think quite gets the whole. It was a lot of different things. I would love to get more like insights, resources on how to really get the whole what's expected of us. Thank you. I'm still trying to for there it is. Okay, hold on. Let me see if I can get to where I need to be here. Okay, so I know the I didn't know this was for automated pipelines. I just thought it was best practices for other things. So this is a different task force. Like I said, that other one closed. So let me just see if I can I'll stop sharing and find it in a minute. Let me just go here for a second though. No, I'm not having any luck. I will find that I think it might have moved into task force badging life cycle but I will get information for you Victoria on exactly what the best practices task force concluded every project should use as a best practice and I'll get you a copy of that documentation piece for that because that's basically tells you everything but I'll look for that in a moment. So thank you everybody for coming to the call. We're going to work on the presentation again. I don't know if we should get on the calendar for this week. A lot of people are on vacation and I don't think that we would it's up to it's again all up to Arunama if she wants to do it this week or next week. Just let me know and I'll shoot Tracy an email and get on the schedule for this week or we could do it next week it completely depends you know they canceled the call last week so we're a week off so I'm going to mute myself and turn it over to Arunama who hopefully will be working on with the committee heads to committee chairs to figure out what's going on each one of the slides and I just wanted to mention that in this presentation it really doesn't speak at all to our relationship with the other mentees and how we're going to help them so as the leader Arunama if you want to just say that or add a slide for that that's up to you but I noticed that that we don't tell the TOC that we're helping the mentees with their project so it's all you now and I'll stop sharing so you can. Okay so I think then we can add a slide describing how we as a team helping the mentees right yeah or if you just want to mention that when you're you know doing your introduction yeah sure you know say all these different initiatives we have we're all going to introduce these to the mentees to support their efforts okay sure should I share my screen and show the presentation yes whatever however you want to go go ahead yeah sure okay so sorry for this yeah so this is the slide and this is how the slide starts so first we will be introducing ourselves and the subcommittees and in the slide only I will add or I will talk about how we are going to support the mentees and their efforts in various parts of the documentation next we have the Git and then we are describing each of the subgroups one by one so this is one of the templates that I prepared for describing each of the subgroups the first comes GitHub templates and the committee chair for that is Jan Lukas so he will maybe you know mention his contact email and a brief intro about him and here we will have a brief introduction about the GitHub templates subgroup and its goals and that's how I have prepared presentations for each of each of them is it not funny yeah so this is this is where you know Kajal will be writing a brief about herself and a small brief about how the templates of what are the goals of the templates subgroup and how it is supposed to like help the other mentees and similarly we have one for the best practices subgroups which is led by Victoria then we have for the onboarding which is led by Akanksha and then we have for the user guides which is led by Agnes yeah so that's that's about the presentation and the six subgroups that that we will be talking about and let me just share the link to this presentation and I have enabled edit access for for everyone so each of you can just go to the respective pages and edit this part so instead of like here just remove the about user user guides and write a few points about the goal of the user guide subgroup and so so each of you can edit it in that way just maybe two to three lines about the goals of the subgroups and here you can mention your contact email and about you you can mention you know what what are the project like what projects are you interested in and a brief about yourself why you are here and what are you looking for here so that's how let me share the link to the presentation with that and I think it's also on the document taskforce page yeah yeah I shared it on the documentation taskforce page as well so yeah here it is so from here also you can access the link link and I have enabled edit access for everyone so each of you can go to the respective pages and edit them like as as as you think as per the goals of the group and write a brief about yourself so that was about the presentation and about the date I don't have problem if it is held on this week or the next week so whatever works best for the I think community and I think that would work for me so if everyone is present in the next week we can have it in the next week or if it works better this week we can have it this week only what do you think about it Bobby I have a question sorry could you give us an example I don't know if you if you do one slide for you Arunima and Philly you you can have an example to how to how to do our slides I don't know if it's possible yeah yeah sure I'm doing that thank you thank you it took me that long to find my mute button so yeah that's great Arunima it looks it looks awesome I think that maybe we should meet next week and just practice it one time and then go on the schedule for next Thursday again because I don't think there's going to be a lot of people at the call this week but the template looks great what great work I do unfortunately have to leave at the half hour so I'm going to let you guys continue to to work on this I did want to mention to Victoria that I did put some links to the best practices information again I never found the github repository that they they came up with but I'm sure if you start following the links on the documentation um wiki page that I put there and I added one for John Luca um because it also has speaks to what's the best practices for the github repository so there's some links on that page um so if like we can show if anyone is objecting to having the presentation not this week but next next week um please raise your hand right now if not we'll all let Tracy know that we're going to be doing it on the that's the exact date of that 13th is that right 13th yes the 13th um so again um thank you Arunama for all your hard work and Niku and Kancha I'm glad that we're moving forward with the onboarding and um again next week hopefully we'll be able to hear a little bit about what Victoria and Trupor is working on and um John Luca and everyone else um when we do the presentation uh run through does anybody have any questions for me before I have to hop off uh yeah I just had to ask one thing like uh we need to work with Ben for this but like uh John John has tried you know he has nailed twice but we haven't received any response because until we get in contact with him uh if we don't discuss like what exactly they're planning and it does not align with what Ben is designing so it would be you know not really good for the project so I was thinking yeah I was thinking about that I always have a problem getting in touch with with Ben and getting him to respond quickly to to to our needs I would more focus the onboarding forget the website for now I would more I would more focus on the places that you have ability to change which is the um the wiki page the LinkedIn page that kind of stuff um and then once you define the personas through those entry points it'll just follow through to the website yeah I would use to steal the color schemes and the logo from the new presentation okay yeah you are right actually yes even the feedbacks they said like we can start like we and uh John Nico and Peter were also there in the last meet and we had like a really good discussion so we come up with a lot of points like John suggested about the start guide thing on the wiki page then we had this uh uh then we had this feedback from Aaron who is also in TOC I guess that will be including YouTube videos and some tutorials type of thing so that would be really beneficial uh and it would really attract a lot of it's like we have two different aspects of onboarding right now one is the like the pages you mentioned the wiki page the discord channels and everything and the second one is website so like as soon as Ben responds we'll start with the website and right now yeah as you said we'll continue with you know the things that we can change yeah yeah definitely I know like on the um even if you don't have control over the website I know there um I would um to get my head around it space it from the personas so you're gonna have four personas no matter where they're coming on and he gave us I had five he had four so I would start getting on my head around no matter where they come in what are they gonna need what buttons are they gonna need because it's gotta be like no more writing no more reading everybody just wants to click on a button so what button will get them to the video they need the user guide they need the wiki page they need so that I would more focus on um not so much the end product um um on onboarding you know to the different wiki discord linkedin whatever more when they get there what do they need yeah okay and also just wanted to tell you one more thing like what I did last week is um because you know it would be really good uh and even uh john said that we should expand our hyper ledger community and you should try including a good team so I like invited people who are interested in joining the onboarding team and I got pretty good responses of nine people who are really uh interested in joining our hyper the hyper ledger onboarding team and I will I will be today contacting all of them since I um got it got um in talk with john and nico regarding it like if we can have a good team so uh we I have people and once like project everything is decided and since the plan is also there so now I'll be also you know guiding all of them and that's also one more thing that we did in onboarding that's awesome yeah the more people and again um especially new people in the community because they're the ones who have the fresh eyes can look at all these landing pages and see you know that's confusing I don't know what you what they meant where I'm supposed to go for that so that's excellent thank you that's all right okay anybody else have any more questions I do have to run and I'm going to leave the meeting open for you to talk about the slides and hopefully next week you guys are going to do a great slide uh run through the slideshow so and again onboarding um task force for the TOC I'm chair of both of those so the onboarding if they want if you guys want to add a couple more slides to speak to what you're working on for this um I would like the same thing nico to happen with onboarding that's happening with documentation meaning that I'm not going to be presenting to the TOC every third week what you guys are working on we're gonna say you know we're gonna work through the summer and at the end of the summer we're gonna have results for you if that is okay with you guys we'll just do it together victoria you have your hand up okay I wanted to ask you said you dropped into some resources I can't find them on the page um I put it on the documentation page hold on let me again I'm only working on one screen so it's really hard for me to do anything today uh let me just make sure I did it and saved it okay so just a little history um the TOC had created these task force six months ago one was um onboarding and one was documentation and I was the lead on both of them then when the mentorship program happened and each one got a mentee I did not put onboarding up for a mentee john did so then he's kind of in charge of that mentee and that project running forward um I put up a mentee ship for documentation and obviously that's this group here and the onboarding group as well um as the task force lead I have to report back to the TOC like every third week on what's going on and um I'd like to stop doing that for the summer and work and then go back at the end of the summer and show them what we've done as a team and as you know both our groups um so I want to end my constant presentations on these two task forces next Thursday with one good really knock the bull out of the park presentation to the TOC that shows them what we're going to be working on this summer and then at the end of the summer another presentation to the TOC saying that we met our goals did that answer your question so next week yeah next week we're going to run through the presentation that um you guys are going to work on and then we'll present it to the TOC that Thursday the 13th absolutely yeah I would love John to be you know there for that and and do the you know speak to the onboarding part and make sure it's what he has in mind I do have that link if I can only find the zoom room window now oh I found it so let me get it in the chat so I put it on the documentation task force page I put it um Arunama could you go to the document task force page just so that I could show everybody where it is I just put the link in the chat thank you scroll down a little I'm almost done so right there in that presentation for seven six it's going to be seven thirteen now I put those links right there do you see them Victoria yes Bobe I can see thank you perfect all right you guys have a good rest of your meeting and I will talk to you next Monday if anybody has any questions please email me thank you Bobe okay thank you okay so now coming to the presentation and talking about the part that you have to edit so there is no need to edit this part this is just the name of the subgroup and who is the who is reading the subgroup and here also we have the name of the subgroup what you have to edit is this part so here you can just add your contact in here so you can write your contact name and here in two to three three points what you can do is that a brief introduction about your background what you are doing and whatever it is and then you can talk about the projects that you're interested in it's coming like this so we have to make it left the line okay interested in interested in and if you if you if you have joined any of the meetings like then you can give details about that as well it's joined so this is what this part will consist of and maybe even we will line plan so that it fits me so here you will be mentioning your email address here a brief introduction about your background what you have been doing about your studies or if you're working or you're doing anything like that then you can talk about the projects you're interested in and then you can tell a brief about the meetings you have joined the kind of documentation gaps that you have figured out and you're going to work on so we're going to talk about that and this another part that you have to edit is this part so here also like what you can do is here you can write the polls of the subgroup so in points you can write that what are the polls of the subgroup just write two to three points about the polls and how as a group we are planning to assist the mentees or mentees so what the pick-up templates is doing and what the sub what hard the polls of the subgroup and how will it assist the mentees mentees this summer so try to cover a brief description of the subgroup its goals and how it's planning to assist the mentees this summer in two to three points so these are the two parts that you have to edit in this presentation and each of you for each of you have get this separate slide like this is for Jan Luka and the next slide is for Sripur and same way we have for Kajal then we have for Victoria and then for Akansha and for Agnes so this way we have six slides for each of the subgroups and in the first slide I will be briefly introduce the subcommittees and tell about what what are the like how are you planning to assist and support the mentees and fill out the gaps in in in subgroups so in fill out the gap from each of the projects by having five different six different subgroups here I will be doing a brief introduction and in these slides you each of you will be talking about the respective committees so is that clear for everyone you said you know hello I'm coming to me yeah yeah I can hear you okay so it's clear but I don't quite understand how we can impute the second point about the subgroup like the one you mentioned for um how you so assist immense is this summer like okay so for how are we planning to assist the mentee so that is the thing that even I didn't know that in this new journey like probably man said us that you know if possible we can write that how we support the mentee so uh as a goal what are we supposed to do so let's say someone is working someone is working on a project and our goal is to like fill up the gaps in the documentation in the project so when you are filling up the gaps and making the documentation more readable more understandable move to the point clear and concise so we are helping the mentees in that way right so that if anyone who is new coming to the project and the documentation is pure concise and understandable in a way we are assisting the mentee in getting a better understanding of the project right so I think in that way we have to spend each of the subjects and you can just write in that way and if we have like any like we will be doing the walkthrough of the presentation next Monday so if Bobby man says us to make any of the things to make any changes any smaller changes then we can do it there is it clear Victoria yes it is thank you yeah so uh just sorry to interrupt Perunima just yeah I just wanted to tell like right now is there anything in online there is nothing like I can tell you for an boarding thing so I really need to leave right now so is it okay no problem just edit the slides I have made the slides editable for everyone so just go to irrespective pages and do the editing just two to three points about yourself and two to three points about the group you are leaving right okay cool cool I will come do that by next fall it will be done definitely yeah sure you have a lot of time for the next Monday so we have a lot of time but it's nothing to take much stress about it surely surely thank you thank you thank you also any of you have any questions Hi Perunima hi so yeah a few questions like Bobby mentioned earlier that we will be getting some credits about that we can transfer to our college and like our schools could you talk to her about that part and what are the updation on like about the chair thing and how can we show it so there is one program I think doing one which is like an unpaid portion of this but you will get an LFX badge for like LFX mentorship badge for that I think she was talking about that only I'm not very clear about this program okay okay but I think you have to like just like the normal LFX mentorship program we apply for it you have to just apply it for that and something like that I'm not very sure about it it's better you ask you know Bobby about it okay yeah sure I really don't know much about that thank you thank you maybe you can email her that's the best way to get in contact the big one right okay thank you or you can join the meet on the upcoming Thursday so and ask it right there she is present in the Thursday of the yeah okay thank you oh hi so like could you please tell me what I have to do in the templates like I guess someone is working on the github template and someone is working on the user doc so is it not similar to like we have to create a template so that the new user or the existing user can interact best with the documentation or our website right so I'm confused like what we have to provide there are many template option on the hyper ledger website I saw it and like I was confused so what you can do is that you can like get an idea of what the various template requirements and how can you do that so you can just get an idea and if you're not able to understand the goal of the group and what to see in the meeting let me know then I will do a research on your part and help you out with that okay okay sure sure first of all what you can do is just you can go to the library and see all the existing templates and what are the like very very description of the templates for something like that you cannot do it on your part then by to your model you can just ping me on LinkedIn or you can shoot me an email I will I will I will like see that what are the tools that the templates to fully work on and fill up the slide and then you can have a look on it and then we can collaborate and decide what you can see on the presentation on that right yeah so so here a template as in the document template right okay so like you're working on the templates part right yes so what are you not clear about yeah so like there is a GitHub template and there is a normal template so how is this different like GitHub template is the read me section of GitHub like that okay and the other template is like the documentation template or like what I'm confused in that because I am solving so on the website there is a plain text template also and like many types of there are images and graphics and all so I guess this is for documentation one okay so okay so I would say that again like if you are confused about that part I would say that you can just if any of you have any confusion regarding the subgroups that you're working with I am doing I'm doing a research trying to you know figure things out and read more about the hyper ledger from the existing wiki pages but if you could not figure out I would say you know join the Thursdays meet when Bobby also joins and ask her what are the you know goals and goals and what exactly you have to do in the respective subgroups because I feel she is the best person who can give you the best information about it right okay okay so join the Thursdays call and get your doubts cleared there okay because even I am confused about that part okay cool Victoria do we have any questions okay so you mentioned your call is it this Thursday okay so let me share the calendar I think it should be there this Thursday yeah so the 6th July the TOC weekly meeting hyper ledger TOC weekly meeting which is that a 2 pm GMT let me share the calendar link so you can go to this spot and you can find that in 6th July we have every Thursday we have a TOC hyper ledger TOC weekly meeting starting from 2 pm GMT so this is a call you can join and Bobby ma'am also joins that call so you can get your doubts cleared there okay no problem thank you yeah Victoria welcome any more doubts no okay so then I think we can end this meeting here and you all can you know start knowing more of the subgroups that you will be leading and start working on the slides we have one week to do that but the sooner you complete the list pressure you will have on the towards the end so make sure that you complete them as soon as you can yeah so that's about it have a great day everyone bye bye bye bye bye bye bye


So my name is Chris my username on social media is program max The way this talk works is kind of more comfortable if you feel free to ask questions So you don't have to wait till the end if you have a question on a particular slide Just go ahead and raise your hand or sing and dance. Whatever you want to do Okay, so let's get started So this is the roadmap. I want to talk to or talk about today. I Doubt will have time to cover everything But that's actually okay because those last two points raw pointers and templates You don't super need to know them right now and I go into like really ugly details about them Just to try to make them less scary But you know if we don't get to those slides is no big deal Just be aware that what I'm going to show you in those slides You probably don't want to write in your day-to-day work So, you know if you go back later and look at the slides don't use that as an example All right, so let's start with free functions So I'm going to pick on Java a little bit and that's not because Java is bad it's just easiest for everybody to read and I want to use Java as examples that are clear, you know Whether you're coming from Python or Java or JavaScript whatever so here's Two cases of pure object orientation that happened in Java that don't really make a lot of sense So the first one is your entry points the static void main That doesn't actually have to be part of a class, which is why it's static in the first place Here it's related to class hello world app, but it could have been in any class So that really proves that it's not actually connected to a class at all and further We never had a chance to create a new instance of this class So it couldn't have possibly been related to the class like there's no way at all So that was just we had to do it because Java is pure object oriented Same with this the max function to get two integers Yeah, that doesn't have to be a class at all You know you pass in two integers it returns the max of the two this has nothing to do with the class So really here the class is just a namespace So this is an example of where pure object orientation isn't really perfect for all situations And if we translate those exact same things into C++ we wouldn't have done object orientation We would have just made them free functions so that they're free here means not like free as in speech or Free as in it's no cost to performance. It just means it's not related to class Okay, include and linkage so Java Python you're kind of used to these import things and the idea is some other file has it Let's go fetch it from that other file It's the same concept in C++. You'll notice I kind of did pairs here So the top one is sort of like getting a system library sort of thing And the bottom one is here is some of our code and then C++ You typically do those a little differently if it's like a library. You're probably going to be using those Angles and if it's your own thing you'll probably be using quotes This is roughly how C++ is built So I'll have two code files a dot CPP and B dot CPP each of them are individually set to or sent to an instance of a compiler and Compiler completely independent of each other So each of these is called a translation unit and then the result of that compile is an object file All the object files are then gathered up together and sent to the linker the linker combines them and makes the program for you So that kind of results in there being a compile phase and a link phase And I'm saying kind of here because the lines get a little bit blurred There are times when you do link time Optimization where it'll actually the compiler passes extra info over to the linker and then the linker can start rearranging functions How it wants But this is roughly how you'd want to think about it So by default because we had sort of separate translation units, and they don't know anything about each other by default there's no way for the Functions or classes or whatever in your files to actually interact and we probably want to interact with them We'll get to that in a second But remember the linker is going to combine all these things and maybe some of the functions I'm writing. I don't want to expose to the other Translation units when they get combined. Maybe this one was supposed to stay just within this file so there's two ways of Hiding it from other translation units one is to put your function in an anonymous namespace like this and The other is just to put static in the front static is kind of the old way. We prefer the Anonymous namespace in Chrome So I mentioned that if you have two separate code files You probably want to you know use functions from the other one or the class from the other one So the way that works is you'll have for example compute harmony dot CPP You pair it with compute harmony dot H. That's the header file for the actual translation unit And in the header file you're going to be doing forward declares of what you want to expose So for example, if I have some function compute harmony I'll say in the dot H file. Hey, I promise there's a function called compute harmony And you just have to trust me on it and at link time The linker will know where the function is and it'll finish the call But in your code if you try to call this function You can just trust me that the function will exist eventually at link phase so So here's what that would look like We have our dot H file all it does is forward declare there will be a function. This is what the signature looks like And we have the CPP file it includes the dot H file just to make sure the forward declare and the actual function link up And then that's where you put the actual function body and then in the other CPP file you also include that same dot H file So when we're compiling it doesn't know what functions going to call It just knows what the function should look like But at link time it'll know what the actual function is going to be any questions so far Great. Okay. So back to our little picture. This is kind of what it'll look like now We used to have a dot CPP and B dot CPP. Well now we're going to pair a and a dot H Sorry not compare Combine whatever Okay, so then we mentioned There's the two ways of including there's with quotes if it's our own file and then there's the angles if it's like a system file That happens at a pre-processor step before the actual like meat of C++ happens So what this ends up doing is effectively copying and pasting So it'll go open that file copy the whole contents of the file and then paste it on the line That was including it It's not 100% true, but that's like 99% true Okay, so we're going to run into a little problem with this copy paste thing And I need to set up a scenario to show you what this problem is going to be So previously we were just doing a forward declare of a function You're allowed to forward declare the same function 20 times if you want that's okay But a define is different from a declaration a define is saying this is the actual thing and you can't redefine something So if I have my header file and I put this class music type in it This is now a definition of that class. It's not just a declaration that there will be a class So now I have jazz dot H and it includes music type dot H And I also have classical that H and it also includes music type dot H And then I have play music dot CPP if that includes both jazz and classical We kind of created a diamond where we've included this music type dot H twice in this file And then that means this class has been defined twice So the compiler will yell at us and say whoa, whoa, you're not allowed to redefine classes Even if they're the exact same, I don't know. They're the same yet. So it'll yell at us So we need some way to protect from this So what we do is oh actually Already described a lot. So what we do is this a forward excuse me What's it called? protects Inclusion guards, that's what it's called So if the file name is music type h you just do this if not defined music type h define music type h Which means the very first time it'll enter this but the second and third time it'll hit that Oh, wait, it has been defined. We don't want to do this whole thing in the second time So that's kind of the standard c++ thing you see this in all of the header files and it protects from that multiple inclusion Okay, destructors and scope So imagine we're in Java land and we have a class that represents some sort of resource like a network connection or database connection file something like that We don't have deterministic destruction in Java, which means If I am currently using this file and then I'm done with it and I get rid of my reference The reference is still in memory until garbage collection happens I don't know when garbage collection is going to happen. It might never happen And so I don't actually know when the destructor is going to get called So it may never actually release the resource So that's kind of a problem Java offers us this finalize Oh, and by the way, that's you know, I could have called dot close on it But what if I forget you would rather have this automatic protection that as soon as I'm done using it it automatically cleans it up So we could add this, you know finalize overload But that kind of runs into the same situation. I don't know when it's going to be finalized I don't know when the garbage collector collector is going to come So that's not really solving the problem C sharp added the using keyword and then Java 7 added automatic resource management And that gives you a way to say like within this range of code I'm going to use this resource and when I'm done. I want you to garbage collect just that resource So it kind of solves this problem Kind of but now we have a separate problem and it's actually kind of similar The responsibility is on me to use this using keyword and if I forget I've fallen back into the same issue It's the exact same as if I had forgotten to call dot close So we didn't really solve the problem here So that's where C++ destructors coming. These are deterministic So this is an example of a destructor You can put whatever code you want in there to clean up your resource and as soon as that object is Destroyed if it goes out of scope or anything like that this destructor is going to be called so for example if I have a function and then You know, that's my class that I have as soon as we hit the closing Bracket here or brace. This is going to call all the destructors for all the objects in that function And you can actually just insert these wherever you want to like force like local destruction So that way it gets cleaned up between the first part and the second part. So The idea here is anytime you want to represent a resource you now have the ability to do that You know, I gave examples network connection file GPU is the one I'm going to use because that is less likely to throw an exception and in Chrome code We don't use exceptions. So it kind of fits the slides better For this next topic our AI I So I just showed you that destruction lets us represent a resource deterministic destruction does if we construct an object While taking that resource now the entire object is an actual representation of that resource So our AII means resource acquisition is Initialization the idea being that if we have constructed this object. It is initialized. It's ready to go So this is old code that you may have seen. This is the opposite of our AII So we have a GPU instance and we call dot open to get this GPU and that dot open call may have failed And then we have to call well if it fails, you know, do some error handling this is the opposite of our AII because We tried to acquire the resource, but we failed it, you know, the initialization isn't Acquisition or acquiring So this is the opposite of what we want Better way would be to have like a function that always succeeds and it just returns an instance of our GPU class and Now we don't have to track. Did it fail? Did it not in this function? It will always succeed the class itself doesn't need to know if it could have failed and If we didn't have the option for it to always succeed like maybe it could have failed Let's not store it in the class. Let's use something like base optional Base optional will either be the class you wanted it to be or nothing And so that way our GPU class doesn't have to track. Did I fail to initialize? Okay passed by reference and value. This one's a little weird because a lot of other languages They try to with garbage collection all that they try to manage this for you. You don't really get a clear View of what is a reference and what isn't a reference So i'm going to continue picking on java. I love it, but you know, it's really good for examples We have this function add to dictionary and we pass in a word Makes sense, right? In if this was c++ that would be passed by value And what would happen is when we call this function It would make a copy of the word that you passed in And then inside our function. We'd be operating on that copy Not the original value Which means we can make changes and all that and remember I told you about Destructors are called when the scope is closed As soon as we leave that function our copy is destroyed That's how it would work if we had written it that way The alternative to that the exact same thing except we put a little ampersand after our type You know add to dictionary word ampersand That is saying i'm not actually taking a word. I'm taking a reference to a word So in this case if you call this function and you pass in some word We are getting the reference to the original thing and any changes we make will actually be reflected in the original object This is actually pretty close to how java works Um in java even though we would have typed the other thing behind the scenes. It's passing references around So when we want to use this, um Imagine our word class is really heavy. It's really expensive to make copies You don't want to make hundreds of copies as you make hundreds of function calls And so you might be passing references around um The opposite of that idea is if it's really cheap to copy The reference actually is an indirection. It says here's the location in memory Jump to that location in memory and then get the actual thing you wanted So that extra indirection that's not free So if it was cheap to copy like say an integer or something like that, you might as well have just copied Oh another thing I really want to point out just because it's a reference that does not make it memory safe This is not garbage collected. It's just a pointer. That's it Okay, so in the last slide, it was a word reference. I'm going to change that now. It's a const word reference What that means is The thing that I'm referencing I don't want to actually change because remember it had the option to alter the outside value We probably don't want that if we're just adding it to a dictionary So we can just throw the const keyword in there That's pretty typical of old style c plus plus and this actually started changing in c plus 11 I don't remember if these slides get to that or not Okay, so here are those three examples that I gave before And I want to give a general guideline of when to use which So the first one const reference if you don't plan to ever change it and if it's kind of heavy to copy go with that um A better way to say that is if you're just going to observe the value that's when you use it Uh, if you're doing a normal reference non const That is if you want to modify the thing that they are passing it. So if you want to say like Initialize all of these values or something Uh, and then the last one when you don't pass the conference at all is either it's really cheap to copy the object or In new style c plus plus if you're potentially taking ownership of that object So for example, if somebody says I'm totally done with this. I'm not going to use it anymore I'm handing it off to you. It's now your responsibility If I'm the function who's taking that thing handed off to me I'm potentially taking ownership and that's when I might do this Okay, the standard library. We're almost to our ugly section. We're getting there So most languages I've been picking on java java has a fantastic standard library. It gives you so much functionality. There's Sockets, there's everything In c plus plus we have almost nothing in the standard library. It is itty bitty And that's actually kind of c plus plus is Weak point and it's getting better, but you know, we're still decades behind So Traditionally the solution to this is we use separate libraries something else if we need to socket we go find a socket library The standard library is huge despite me just saying how tiny it is It's tiny compared to java, which is astronomical But despite it being huge, I only want to focus on three things for now because I don't have a ton of time So I wanted to talk about string vector and smart corners string. You're familiar with that You know, I would say std for standard string dog name equals phyto Vector is just a way to have some contiguous memory and it's kind of like Uh, I don't want to use the word list, but it's just an array It's closer to an array, but it can dynamically grow and shrink as needed So here I have a standard vector of integers and I just initialize it one two three four And then I could also kind of combine these I have a standard vector of strings So now I'm containing the names amy and trick So although I'm only showing you these three things There's another piece of the standard that is actually not widely used, but we should all be using it a lot more I think this is because If we took c++ class in college or something We were all asked write this function that's going to loop over this stuff and do these operations And so we got used to writing the thing that's actually already written. For example, there's a standard sort People don't use it for some reason. I don't know why same with standard copy if so you can pass in a delegate You're sorry a predicate and say Uh, if the value passes my predicate my test if I wanted to be like values less than 10 or something If it passes the predicate then copy otherwise don't So, you know, there's a whole bunch of things in the standard algorithms not just these standard containers But people don't use them often So I encourage you if you want to look like a really smart c++ programmer start using standard algorithms People will be impressed All right smart pointers So you've maybe heard about pointer question Yes, uh, there is a website cppreference.com It is fantastic. It goes over everything including like This function was added in c++ 11, but before it you had this other function instead Um, so that website contains everything about the language the Standard and it's broken down into chunks where you can sort of navigate to where you want Great question Okay show of hands who here has heard of pointers in c++ and heard like horror stories or like battle scars or something Everybody okay. I wasn't expecting it to be that much. Okay, so you get the idea. They're terrifying. Um So smart pointers aren't those those are raw pointers and we'll get the that section later Smart pointers are sort of like let's stop terrifying each other So in a garbage collected language, you're familiar with you know If I have a reference the thing stays alive and I can have multiple references And it's still going to be alive until the very last reference goes away Then the garbage collector has a chance to come and clean that up In c++ that would be a standard shared pointer And you get that from include memory so This represents like if the object lifetime should actually be managed by multiple things This is where I need to sort of tell you to be different from what you're used to If you're used to a garbage collected language, you don't worry about who owns the lifetime It's just whoever has a reference But in c++ you really want it to be like this object should only live between here and there And then it should have that deterministic destruction and so Uh a shared pointer a shared lifetime is actually a really uncommon situation Even though that's the default in garbage collected languages That's weird typically like my car has wheels. It's not like well if my car goes away. I still have wheels That doesn't make sense So we have this but we don't really use it that often you try to avoid it if you can In fact, if you have to use it you start questioning like did I do something wrong? And although i'm showing you standard shared pointer, we actually don't use that in chrome We use uh base shared ref. It's basically the same thing though Okay, yeah, and I told you that most of the time we don't actually want to use a standard shared pointer So the alternative to shared pointer is unique pointer makes sense. There's only one owner. It is unique And you can't make copies of a unique pointer obviously because then you would have multiples and duplicates and shared ownership So what you can do is move it and remember earlier when I said If i'm taking ownership of something Somebody could call my function and pass me ownership of this pointer And that would still be unique if they no longer have this ownership So it's it's all sort of tying together Um, and then yeah when the only reference is destroyed the actual object is destroyed So it's kind of like a garbage collected language where you can only have one reference at a time. That's kind of how it would work Okay, and I mentioned, you know, you can't actually make a copy But you can't pass ownership the way you pass ownership is with Standard move as to be moved up there. That is a way to say i'm completely done with this. I'm going to pass it off to somebody else And if you want to learn more about this standard move and the whole like passing ownership Uh, here at google we have a class for c++ 11 where we cover this Or later today, I'll be giving a talk called c++ memory, but if you look at your um badges I changed the title late and on your badge it'll actually say c++ 201 move semantics So you can learn more about it then


You have something very rare. You have wonder. You have mystique. We lost. All of us. We lost friends. We lost family. We lost a part of ourselves. We lost both. Space Invasion. Big car chase. Troopy Tove. I was ready. I was ready. I was ready. I was ready to hang it up. Till I miss you today. You will believe. To this fair. Disney Nature invites you to join an extraordinary couple. Fighting to raise a family in one of the most unforgiving and stunning places on earth. Arendelle. It's completely frozen. Cold, cold, cold, cold, cold, cold. The land is covered in eternal snow.


Andy Mendoza alongside Stevenson head coach Dominic Dawes and coach Dawes a tough loss today against a conference opponent First off, how's Liam doing? I don't know. He's in there with the trainers. We'll see what see what they say after they assess them And obviously, you know a little bit of a struggle in the offensive end today. What do you say to your guys and moving forward? How do you guys pick it up on the offensive end a little bit? I mean, that was the best we've probably played For the most part. I think we made three glaring mistakes. I don't think the often We have 50 shots on goal offense wasn't the issue. It was a little bit of a finish and being strong a little bit stronger on the puck But I mean we made three mistakes in the first period. You know, you can't have your best player in the box for ten minutes Can't turn a puck over on the PK and Caffery's got to stop the first one and that's that's really what it what it came down to We've got to be we've got to play 60 minutes. We played probably 55 and we just couldn't finish and obviously the next four games for you guys are on the road What do you say to your guys to kind of keep their heads in it keep their heads up and not let this game turn into another loss and another loss Well, I mean we just got a huge game next Friday going into Utica I mean, it'll be a great atmosphere great crowd and just take it one game at a time We don't worry about after break or anything like that. It's Friday in Utica and we go from there Thanks so much for the time coach really appreciate it Any Mendoza here alongside coach Dawes for more on Mustang sports go to Mustang sports comm


from computer science and engineering department, Walsh and Institute of Technology, Sholapur. Today, we will go for infix notation from the subject-descript mathematical structures. We will also see how to convert infix notation into completely parenthesized form and prefix notation. The learning outcome of today's session student will be able to express precedence of operator, then he will be able to convert the infix notation into fully parenthesized infix notation. The content of today's videos are first of all we will see what is the priority of or the precedence of operator, then how infix notations or expressions are evaluated, then how to convert the given infix expression into fully parenthesized form, then we will also see what are the different rules for evaluating prefix expression or notation. Following is the precedence of operator. Now we have different operators like AND or conditional, BIConditional, NAND, NOR and so on. So, this is the precedence of operator. Now if you look at this operator, first of all negation, then conjunction, distinction, conditional, biconditional, conditional and or negation and or conditional, biconditional. The priority is that first of all the negation will be evaluated first then conditional, biconditional, then AND or conditional and biconditional, this is the precedence. Negation has got the highest precedence followed by AND or conditional and biconditional. If statement formula has parenthesis, then the innermost parenthesis will be evaluated first followed by the outer and the outermost parenthesis. Inside parenthesis statement formula will have the same precedence as I told earlier that is negation AND or conditional and biconditional. Now let us consider one example. This is example P or Q and R or S and T. Here we see that there are two operators they are used that is one is OR, second one is AND, OR and AND means two operators OR and AND are used. How the evaluation will take place? What is the precedence of operator? Now negation is not there so after that condition AND will be evaluated. So first of all Q and R will be evaluated then S and T will be evaluated that is step number two after that this OR will be evaluated P or this expression result of Q and R will be evaluated. Finally the result of P or Q and R and the result of S and T they are in a distinction that will be evaluated at the step number four. In the above expression has highest precedence and one has the highest precedence and four has the least precedence. The expression will be evaluated according to the precedence of operator. Now let us see the conversion of infix foundation into fully parenthesis form. Now P or Q and R or S and T. Let us know if I write in this way and if I put the brackets. So that will be if I put the brackets what will happen? I will come to know that the innermost bracket will be evaluated first then the outer and the outer most bracket will be evaluated. So for a human being it will be easier to understand which operator will be evaluated first. So let us see just how to convert infix to fully parenthesis form. Now in this expression as this AND that is Q and R will be evaluated first then S and T will be evaluated second then P or this result of Q and R. So the highest precedence Q and R so let us write the bracket like Q and R then say in second step S and T will be evaluated so put a bracket for S and T then finally in the third step P or the result of Q or R will be placed one more bracket over there that is innermost bracket P or into bracket Q and R and in the finally S and T will be descended with this result of the third step that is so finally the formula will look like a innermost bracket P or Q and R bracket close or S and T. So is the final parenthesis expression after fourth precedence. Now consider this example or expression and convert it into fully precedence expression according to operator precedence fully parenthesis form rather P conditional Q or R or S take a pause for a minute and try to write down the answer. The solution the parenthesis according to the precedence is first of all Q or R one bracket then Q or R with oring with S one more bracket and finally one more bracket including P with a conditional operator. So this is the solution this is called as a fully parenthesis form for the expression which has no brackets that is infix expression. Now the rules for evaluating prefix expression the first tool says that now if I give the expression if I give the expression consider this expression P conditional Q or R or S this is infix expression. Now prefix expression will be or AB or A or B is an infix expression and prefix will be as we know that in prefix will be first of all operator followed by the two operands. So first of all operators will be scanned followed by the operands prefix. So the rules for evaluating prefix expression find the right most operator in the expression then they select the two operands immediately to the right of the operator form perform the indicated operation and replace the operator and operands with the result. If I write an expression over here let us consider this expression A or B or C this is expression let us convert this into prefix expression. So first of all the priority for A or B or C or A or B will be evaluated first. In the second step the result of A or B will be connected with C. So first of all convert A or B into prefix. So A or B will be converted into A or B is equal to first of all operator followed by the two operands since it is a binary operator we write two operands. So let us some give some name say as a result T1. So this is step number two now substitute this T1 in the equation number given one. So this equation number one will become now T1 or C. So let us convert this T1 or C into prefix so that will be or T1 C. So this is step number three. Now substitute T1 in the expression in the equation number three the T1 is nothing but or A, B. So this or then or A, B, C so this is a final prefix expression. So this is a final prefix expression. So if you look at if you look at so this is a conversion of infix to prefix. Now the reference is a discrete mathematical structure book is used. I hope you understood how to convert infix to completely parenthesized form and infix to prefix form. Thank you.