Hi, I'm Erin with Hypothesis and today we're going to talk about how you're going to add a Hypothesis-enabled reading to D2L Brightspace if D2L Brightspace is the LMS that you are using at your school. Let me go ahead and share my screen and we'll talk about the steps you need to take to make sure your Hypothesis-enabled reading gets into D2L. Now the first thing you need to note is that we have a help article that walks you through all of this. You can see the web address or the URL for this help article at the top. If you cannot find it, just go to hypothesis.is, search D2L and you'll easily find the article. You're going to need this article because there is a URL we're going to use in this article to add a Hypothesis-enabled reading to D2L. Let's go ahead and go over to our D2L account. Once you're in your D2L course, make sure you choose the model where you would like to add the Hypothesis-enabled reading. In this case, I chose annotated readings as my module. I'm going to select create new and then I'm going to choose external tool activity. This is crucial. You must choose external tool activity. Title your reading whatever you would like. In this case, I'm going to call it what I really want. Now this is the part where you're going to go back to that help article. You're going to scroll down to the part that says add title and hypothesis LTI URL. That would be number three. Select the URL, hit command C or control C if you're on a PC. Go back to your D2L instance, hit command V or control V and select create an insert. Now you have a choice. Are you going to add a web page or a PDF as the reading your students will use to annotate together? If you use a web page, it must be publicly available, which means it does not have a username, password, or paywall. If you choose a PDF, you must choose PDF from Google Drive.  That PDF does not have to start in Google Drive. In this case, my document lives in my Drive, so I'm going to go ahead and select the document I'd like to use, choose select, and now the document appears with ND2L. I will tell you that the best way to view any reading with hypothesis enabled is to open it in a new page or to make it larger using this option here. Go ahead and select full screen and your annotations should appear on the right. It's quite simple. Make sure you save that URL to add hypothesis as an external tool to your D2L instance. As always, let us know if you have any questions and we are happy to help.


Now that you have learned about sharing settings, let's see how we can use them to share our category options and data set with the correct users so that they can enter data. Continuing with the RMN-CAH example, let's say we want our personal user account to be able to capture and view the data and the DHS2 Academy administrators to be able to view the data only. To do this, we will need to set the sharing settings for each of our individual category options as well as for our data set. Let's see how we can do this by applying sharing settings to the category options and data set in the Maintenance app. In the Maintenance app, click on the Category section and then the Category Option tab to open up the Category Option Management page. To open the Sharing Settings dialog, find the Category Option you would like to update. In this example, let's update the Mail option first. Click on the Actions menu and select Sharing Settings. In the Sharing Settings dialog, we can see that no one currently has access to this category option. To share with a user or user group, enter the name of the user or group in the Add Users and User Groups field. Let's add ourselves to ensure we are able to capture and view data for this category option. Click on your name to add it to the Who Has Access list. Notice that it appears with a pencil icon next to the name. Click on the pencil to further configure the sharing options for your user. By default, metadata is shared with Can Edit and View, and data are shared with No Access. Update the Data Sharing setting to Can Capture and View. This means that we will be allowed to edit and modify the Category Option in the Maintenance app, capture data through the Data Entry app, and view the data in Analytics apps. Now let's assign the Category Option to the Academy Administrator's user group. Type the user group name in the Add Users and User Groups field, and click on it to add the group to the Who Has Access section. Update the default settings by clicking on the pencil icon, and giving the group metadata can view only access, and data can view only access. Since we have shared it with the user group, this means that all of the individual users within this specific user group will be able to view this Category Option in the Maintenance app, and also view the data in the Analysis apps, but will not be able to modify the Category Option or capture data for it. Note that the sharing setting is automatically saved and there is no need to click a Save button. You can simply close out of the sharing dialog by clicking on Close. We've already updated the sharing settings for the remaining Category Options. However, we also need to update the sharing settings on the RMN-CAH dataset. Click on the Dataset tab in the top bar menu, and then Dataset at the left to open the Dataset Management page. Find the RMN-CAH dataset, click on the Actions menu, and select Sharing Settings to open the Sharing Settings dialog. In the dialog, we can see that no one currently has access to this dataset. The sharing settings for the dataset can be updated the same way we have done with the Category Options. Type your name in the Add Users and User Groups field, and click on it to add it to the Who Has Access section. Do the same for the Academy Administrator User Group. The default sharing for datasets is the same as it is for the Category Options. Click on the pencil icon next to your name and edit the level of sharing. Keep metadata as can edit and view, and update data to can capture and view. This means that your user will be able to edit and modify the dataset in the Maintenance app, capture data through the Data Entry app, and view related data for the dataset in Analytics apps. For the Academy Administrator's User Group, update the metadata sharing to can view only, and the data sharing to can view only. For this User Group, this means that all of the users within the group will be able to view the related dataset information, such as reporting rate completeness and timeliness in the Analysis apps for the organization units assigned to them, and view the dataset itself in the Maintenance app. Note that users in this group will not be able to view the dataset in the Data Entry app because they do not have can capture access to the data for this dataset. Close the Sharing Settings dialog. The settings are automatically saved. Now that we have updated the sharing settings for the Category Options within the RMNCH dataset, along with the dataset itself, our user can access the dataset in the Data Entry form and enter data. Let's confirm that the sharing settings have been applied correctly. Before we do this, let's clear our cache so we can download the latest information from the Data Entry app when we access it. From the Apps menu, select the Browser Cache Cleaner app. And in this app, select All, then clear all selected items. With this done, open the Data Entry app from the Apps menu. Open the Organization Unit hierarchy at the left by clicking on the plus sign until you get down to the Facility Level Unit. Click on a facility to select it. Then, in the green selection box in the main screen, choose the dataset and select a period. The Data Entry form you configured will now appear. Try entering data into a cell within the form. If your sharing settings are configured correctly, you will be able to enter values for each category option. If we had not shared the category options with our account, as can capture in view, we would not have been able to capture values for those options. To address these issues, we would need to return to the maintenance app and update the sharing settings accordingly. In this video, we have learned how to update the sharing settings for both category options and a dataset for an individual user and a user group. This allows specific users and user groups to view, edit, and capture metadata and data for category options and datasets.


Yn ystod, rhai yw yn gyntaf o yma, mae ymlaen oedd yn yng Nghaerfod o'i Llanddur gyda'r gynllun iawn i gael yma. Mae'r gynllun iawn i'n gweithio'r proffes hanes ar y cyllidiau 2020, sy'n mynd i ddiflusio'r gynllun iawn i'r gynhyrchu i gael yng ngharfod cyffredinol gyda'r gynhyrchu. Rwyf yn goethol i gyffredinol iaithio a gwasanaeth ar y flwyddyn fideb yn cyfrinddoedd dyma o bach o'r ddweud o'r eich gweithiool yma o'r tofod i gael llaun eu llef ystyried eich dda'r gyffredinol yn y tofod i gael i fyddi.  Ond, y ddweud y riscu, yma'n amlwg i termsfaly settledyn, Signal à PHATLŷn Waty James. ensas protys. Be it shotleaved has seemed to have resonated with what we're seeing today, was the number of young people who are going out to get their PVCs, especially for those who seemingly are campaigning for the Labour Party presidential campaign, presidential candidate, I beg y pwn, Mr Peter Albi. But really, is there a connection of sorts? Do you agree with that? I can't see any connection between the ensas campaign and 2023 general elections since 2020. Remember we've had the election in a number, we just had the election in Niquiti State. We had an election in Lligos East, I think for Lligos East senatorial district. I hope I'm correct. And in all of these three elections, less than 30% of the registered voters have actually turned out on election day. So I'm not seeing any correlation between what happened during the ensas campaign and what we are seeing at the moment. Close to a million registered voters in Niquiti State and roughly 310,000 or 320,000 people voted during the last governorship election in Niquiti State. So we are wondering, it's not just about PVC collection really, it's about people wanting to come out to vote. Are you seeing that desire? Are you seeing that urge in them to come out? We've had shouts about people going to collect their PVC and all of that stuff, but they've not really translated into a vast majority or greater majority of people running out on election day. I'm here to see that correlation, at least not with the last three elections we've had in Nigeria or through state governorship election is next next month in July. Let's see whether there will probably be a better turnout of voters that we have seen in Anambra and what we have seen in Niquiti State. I hear many pundits, many analysts, many politicians in fact. Many young people say, oh well, this was not as what we expected, but let's see if the next one, we've been saying that for the last three election cycles. And so it makes me want to push you again to say, what is it about us that makes us so energetic before the elections, but then when the elections come, we're dead cold? I think one linkage I can say is that look, I think more than often political parties don't throw up people or candidates who connect with the people, who can connect with the youth. I think a lot of young Nigerians are still disenchanted with the way and manner political parties recruit their leadership. No, check the last primaries of the two major political parties and you could find out that look, they're wearing major surprises in many states across the federation. So I think the main thing linkage is because political parties don't throw up candidates that the youth can connect with, candidates that the vast, greater majority of Nigerians can connect with. So if the political parties, whose primary responsibility it is to recruit leaders, to recruit candidates, to recruit the best of the best for Nigerians to see, then we can continue to see that missing link between a greater number of people turning us to votes for elections and the kind of candidate political parties that throw up. What we have more than often are accidents of placement, people whose struggle to get into certain position, not necessarily because they are the best, but because Godfathers have thrown them up and more than often people don't connect with these candidates. OK. Barstah, where is that spirit of the ensars, the spirit behind the campaign, the spirit behind that protest, and I'm not talking about the violent ones who hijacked that protest, the hoodlums, the touts or the paid people. I'm talking about the young people who were sick and tired of the police wrongly convicting them, police officers taking advantage of them, those who were tired of bad governance, and those who said enough is enough. Where is that spirit? And just as I asked the fine gentleman, why do we think that this spirit might be behind the mass number of people who were coming out to get their PVCs? Again, what's the guarantee that when these PVCs are collected, they will not just become ID cards when Election Day comes? Thank you, Maria. I think your question flows from the assumption that those who are trying to collect their PVCs now are all in favour of Beta OV, or largely driven by that sentiment to go out and do for Beta OV. Well, just let me remind you also that among the large number of youths who are trying to get their PVCs, you have youths who also belong to the APC, who are preface for the APC, pay for the PDP and other political parties. So it is a full assumption to just think that oh, this drive is largely because of the diplomatic candidates. Now having said that, you also need to understand that yes, the youth can have all the drive and all the desire to go out and vote, but if you do not vote on Election Day, then you can as well kiss whatever ambitions, whatever desires you have, goodbye. It's very important that you get the youth to go out there on that day and vote. Now what you've seen over the years, and I've already mentioned earlier, is that these political parties that are established with PDP, the APC, they have structures on grounds, they have party members at one level who are ready to risk the action that the election process always throws up in Nigeria, stay on the queue for hours, sit down and stand by their votes, and ensure that the votes are counted. Now I'm not sure that when it comes to Election Day that you have as much youths really turn out and vote on Election Day. As is for many reasons, now there's a fear of poverty, there's a fear of violence that could happen on Election Day. So for that reason, many people would just sit back and try to avoid any conflict that would likely happen. And don't also forget that these particular work level politicians, they are grassy politicians, they know everybody in the area, they mobilise well ahead of time. If you recall, the OBC began a massive voter drive, I think it was three years ago, to register people all across the country. So you're hoping wrong to discount the presence that is established by the SCAP parties have, and to assume that the end-stage spirit is what is driving this middle-age movement. Although people have argued on social media that this will be the third force they want to put at the core of the Jagaban, but OBC is their preference. But like I always say, and many people who are very vast politics in Nigeria would say, but they don't believe you on social media. So no matter how much noise or how much discussions you have on social media, it must translate to actual voting on Election Day. It must translate to mobilising everybody, all and so on, to go up and vote for your candidates on that day. So that's why even for the experience, it seems as if all the youth are tired, they want to change. But you also need to ensure that children are put in place to have people at every level, one level, state level, the government level, to push the agenda of whichever candidate that the youth are supporting. But it will be wrong to assume that all the youth of OBC, they are also youth who are actively supporting the individual candidates. And if you see the comments that you have on social media, you will see that these views are largely divided along those lines. So those views are long those candidates. So it will be wrong to just assume that this massive drive is all above what that would be. I bet you disagree on that. Perfect. Let me take you to a kiddie state. It just happened over the weekend, the governorship elections, and I just spoke with somebody from the SDP campaign for Shagwonni. And not just the SDP, but even the ADP candidate complained about the some irregularities during that election. And I'd like to just say what the lady said. I'm just going to not exactly say in her words, but she accused the APC, the PDP and the SDP of vote buying both at the state and local levels. And when the SDP man was arguing that the ruling party was the one engaging in most of the vote buying, I asked the question, which I'm going to post to you now, should we be saying or should we be apprehending INEC for vote buying? Should we be accusing INEC of not doing their jobs if the people themselves who, as he said, have been impoverished, are tired of bad governance. The people who seemingly wanted a new lease of life ask the same people who have been induced and have taken these inducements and voted for the APC. Should they not be the ones that we should be targeting our energies at instead of the INEC, whose job is to conduct elections? Well, I think asking INEC to try to, INEC already has the law in place as relates to vote buying, so it's legal, right? But you cannot ask INEC with that duty of apprehending people who are engaging in vote buying on election day when they have to deal with the logistics of conducting the election. I would expect the election officer who was on duty to leave his as primary assignment and then go ahead and apprehend people who are engaging in vote buying. That's the job of the security agencies and you did see some videos of INCC officials arresting people who they felt were engaging in vote buying. So there's some problems there as well because also I'm not going to say, I did see some videos of people on the queue insisting that they will not sell their votes. They said in local parlance that I had the vote, I had the vote last year more, meaning that we are not going to collect our money to cook a pot of soup any longer. We are going to exercise our franchise and votes our conscience. But you cannot legislate for all individuals in that regard because it's a matter of conscience. If a person feels that he wants to collect money and still vote because if you, there are two ways to do it. There could be collection of money and not voting for the person who paid you the money. There could be go and vote for my person. Let me see what you, show me the ballot box on my distance and the ballot department distance and then I'll pay you eventually. And there could be those who collect the money and still go ahead and vote for their candidates. So, we can't really say exactly how much of an impact the vote by played out on the results because we don't know how everybody voted. Okay, so, but of course, those who were engaged in it were apprehended, at least largely on the views that we saw. And really, actually, there's only a limit to how much the laws you can make. The people themselves also must feel the pinch. They must naturally be fed up of the entire system to say we would not collect any money in return or in exchange for our votes. And so, we've got to enable everybody that is that enlightened. And the public that also have an education and enlightenment is that there are those who are also enlightened who also took money to accept their franchise. So, education really, you can argue that those who did that were illiterates. But we cannot say for a fact that all of them are illiterates. There are people who are also enlightened amongst them who still took the money because it was being offered and they took it and still would have voted one way or the other. So, when it comes to vote by it, it's something that we need to find a way around. We need to sit down together and look for how well to make the laws effective to prevent vote by it. Because even the policemen you put at the polling booth, you have gone on to policemen against maybe a barrage of talks who are there lying low. So, what is the security arrangement for the policemen at the polling booth? If we arrest and have created one person, what happens to him when he's going low? Is there any security apparatus in place to protect him if he goes down to the right thing? Or are you going to leave him to his fate when the ships are down? So, those are the issues that play out, you know, mathematically on election day, that it will be unfair to say or abuse the policemen who are not doing his job when he does what he likes on the line. Okay, back to you Olaleco. He's just made an interesting point about the voter education aspect of our electoral process, but I'd like to quote the ADP governorship candidates, the woman, who said, despite the voter education and sensitisation campaigns that had been done before the elections, these parties and, of course, the equity people still engaged in the issue of vote buying. So, does it mean that this sensitisation does not really work? Is it pouring water on the back of a chicken? Is it that we Nigerians in ourselves are not yet as tired as we think that we are? And so, or maybe we have also acclamatised, or could it be, that we have grown into becoming used to the inducements because you see is, let me use the local parlance, have bread is better than none. What exactly is the issue here? Because, again, this might, one way or the other, determine on the larger scale what will happen in 2023. If you have an idea, help us understand. But I think it's a mixture of a lot of things. You can talk of the general Malin in the system talking in terms of corruption. I'm sure you know that we have a serious question mark when it comes to corruption, where the issues about Nigeria be among the most corrupt nations in the world. So you could say, look, corruption is part and parcel of our lives as of today. They're not so added to the fact that look. One of the things that encourages impunity in any system is lack of quick dispensation of justice. So you could also blame our judicial system for part of the reasons why we still continue to have vote buying. Because if you appoint people and you are unable to prosecute them one year, two years, three years, four years, five years, six years, 10 years later, then you continue to encourage impunity because people now know that even if I'm arrested and taken to court, I may never get justice in 20 years. I may never get justice in 10 years. So you see part of what encourages impunity now. Part of your political parties may be encouraged to continue to do this because they know that if people are arrested on election day for vote buying, the case may not even get to court. If the case does arrive to court, when will justice be served? And remember like lawyers will always say, when justice is served, it's not just to the accused. What of the society, what of the court itself, what of the administration of justice in the country? So you begin to understand why we continue to have impunity in the system and why a lot of things continue to happen. So it's a mixture of a lot of things as to why we continue to have vote buying. And like my friend on the other side has said, look, it's not just about ignorance. We have people who are well educated. We have people who are everywhere enlightened, who are also willing to also start their vote. Some for 5000, some for little as 1000, some for 10,000. Of course, remember we also had the issue of a delegate election across political parties only recently. And you are aware of allegations of delegates being offered money in foreign currencies to vote for a particular candidate. So it's not just about doing an election, you are talking about vote buying. You are also talking about vote buying even during delegate convention of political parties. What if some of those selling their vote during the general election are also saying this is an opportunity for me to collect my own share after I was not a delegate to the convention of a particular political party. This is an opportunity for me to also get my own share. So you can see the way we are exporting some of this thing because even during a party's convention, you hear of allegations of people being offered money to vote for a particular candidate. You are aware that EFCC was also present at the national convention of the AFCC and at the national convention of the PTP. What was EFCC doing there? Even though there were allegations of people being put over in foreign currencies. So you begin to understand that, look, vote buying isn't just going to be down to voter education. We must also be able to successfully and quickly to prosecute those who have been arrested during elections for buying votes. I'll just give you a minute to respond to this. How optimistic are you, Deji, in terms of the youth and of course the average Nigerian who you and I think has been overly impoverished, always tired of what's happening in today's Nigeria and wants a better opportunity? How optimistic are you that we will come out in full force and cast our votes for the right person depending on who that right person is and who we think that right person is? Are you sure that we are going to see a renewed vigor come 2023 or is it just going to be business as usual in a minute? Well, I think that the concerns of the elections next year, I believe that the concerns of the APC and the PDP, I don't have a labour party, have a very large following. I believe that all countries will try to energise their base to come out and vote en masse. You did see the arrival of the Jagaban, Mashuwajewel army to Lagos and the number of people who were present were coming back. I believe that the former VP article will also come out with a kind of following as well and I believe that that would also command that kind of following. So the usual eventually would bow down to who is able to get as much people to the polling votes on election day, who is able to galvanise the base to come out and vote. So wherever is the election, where will be the person who has been able to successfully get those people to vote all over the country? And I don't think that the way it's going, that just the concerns of social media will be sufficient. You need to go to the grassroots level and this is where the PDP and the APC have their advantage because they have structures that have lasted in a very long time. Well, I want to say thank you Deji, our BDA is a legal practitioner and Ola Le Conyge is a public affairs analyst. Thank you so much gentlemen for being part of the conversation. Thank you for having us. All right. And thank you for staying with us. That's the show tonight. I'm Mary Anna Cohn. We will be back tomorrow talking about the biggest stories in our political scene. And of course, don't forget if you missed the show, you can watch live or you can watch a recorded version on our YouTube handles, which is Plus to be Africa and Plus to be Africa Lifestyle. I'm Mary Anna Cohn. Have a good evening.


Mi wajte nikiwa kơini yuk info na hwara za nya khoja pambu dan huwara mwena. Yuk wajte na jitwik, ëwad huwara Jan 13. volu kakumuntimu hwara jitwik, na hwara Jan 12. hwara sta Lynbuwech hwara hwara na Chacha. chapter 13 of the book of John verse number 10 to 11, but we will consider from verse number one, then I will lay emphasis on those two verses and so allow me to read quickly from verse number one, then we will lay emphasis on a few of the verses here. The Bible says now before the feast of the Passover, when Jesus knew that His hour had come, that He should depart from this world to the Father. Having loved His own who were in the world, He loved them to the end. Asapa being ended, the devil having already put in into the heart of Judas Carriot, Simon son to betray Him. Jesus knowing that the Father had given all things into His hands and that He had come from God and was going to God, rose from supper and laid aside His garments, took a towel and guarded Himself. After that He poured water into a basin and began to wash the disciples' feet and to wipe them with the towel with which He was guarded. Verse number six, then He came to Simon Peter and Peter said to him, Lord, are you washing my feet? Jesus answered and said to him, What I am doing, you do not understand now, but you will know after this, was a Peter sent to him, you shall never wash my feet. Jesus answered him, if I do not wash your feet, you have no part with me. Simon Peter sent to him verse number nine, Lord, not my feet only, but also my hands and my head. Jesus sent to him, he who is bathed needs only to wash his feet, but is completely clean. And you are clean, but not all of you. For he knew who would betray him. Therefore he said, you are not all clean. So when he had washed their feet, taken his garments and sat down again, he said to them, Do you know what I have done to you? You call me teacher and Lord. And you say well for so I am.  I have given you an example that you should do as I have done to you. The subject for this message is worst, but unclean. Worst, but unclean. Let's pray. Gracious Father in heaven, Allah be the name thy kingdom come. Thy will be done in this place and for this message as it is in heaven. For thine is the kingdom, the power and the glory.  Lord I pray that this morning may I not be seen, may I not be heard. But may you be seen and heard to speak to us all. My humble request Father is that you may put your words into my mouth and order my leaves and my thoughts to your will. I pray in Jesus name. Worst, but unclean. Now by this time you will appreciate that Jesus had had a very busy, very engaging, very challenging three years experience in his ministry. And just a day away Jesus will be on the cross. The Bible indicates that it was a time for Passover and of course now we can all connect and know this would be the last Passover that Jesus would share on earth. Now the Bible says Jesus then called his disciples the upper room and when he gathered them there the Bible says after they had eaten the supper Jesus rose from the supper. He lay aside his gamit. You see in the days of Jesus and in the tradition and custom of Jesus whenever they had such kind of high meetings it was the servant to attend to the master. So Jesus is sitting as inviting his disciples for a special Passover and I call it a special Passover because this was only with disciples. We are appreciate later that Jesus has hand not only this Passover in his lifetime but we all know that every year there was Passover. So even just looking at the Passover within the three and half years of Jesus we can conclude Jesus at least and other two Persevers he had participated before this. But of course having in mind that he is brought up in a Jews family especially in the family of Joseph and Mary there is no way Jesus who not have participated in all the Persevers in his lifetime. Now all this particular time Jesus chose to do it differently. He decided to do it only for his disciples. The Bible says he was with them in the upper room. And the Bible says when Jesus knew that his herwa had come he rose up, lay aside his gamit and he began the job of washing his disciples feet. Well you would want to have that picture in your mind even as I speak of this and see them sitting perhaps around the table. They are not so many because there is that teeny number. Not very sure of all the sitting arrangement looks like but the Bible seems to suggest kinda that Peter was on the other extreme end where Jesus was because he seemed to be the last one to be washed his feet. I was asking in my mind where was Judas seated and as I was checking through commentaries I discovered LNG where it actually says Judas sat next to Jesus on the right side and John the beloved disciple of Jesus was on the left side immediately after Jesus. Well I didn't say any other commentaries suggesting where others in the market were placed but I presume that now then Peter was on the rare end of the sitting arrangement. And so I wanted to see Jesus as beginning to wash his disciples feet and in the manner that Judas has positioned himself Jesus has to wash Judas the fast guy. I was wondering why did this happen so? Well John does not capture any other details of what happened I wish I was John I would have focused more on Judas but for some reason John chose not to mind about Judas he chose to mind about Peter somebody with me Peter when Jesus washes disciples feet and he comes to Peter Peter says Jesus thank you sir you can't do this to me I have been seated wondering what is happening with Judas what is happening with John what is happening with Matthew how can they allow themselves to be washed their feet by you? Jesus I know for sure I am your servant I am not supposed to wait that you may wash my feet but I want to know you need to sit that I may do the job of a servant can somebody say a man Jesus looked at Peter I write it on Peter Peter I understand what you are talking about I know through customary rights you are right Peter I know that by every measure and standard of traditions or this land you are within the doctrine yet Peter there is one thing I need you to know today I am not out of my mind to do the thing to see me doing today you need to understand and ask me Lord why have you chosen today to do things in this manner as you not afraid to turn against you for violating and breaking traditions breaking the policies you know many times as we relate with Jesus we have gathered as a people most of times we are carried away by policies and procedures and structures and we miss on the real issues of eternity Peter was a good guy who did not want to offend him the policy of the church Jesus is not with me but Jesus tells him listen to me Peter how I pray that you will wait on me because what I am doing you do not understand but I can assure you Peter before the end of this service you will understand can somebody say a man Jesus told him if you do not allow me to do this today then you have no part with me you do not share any part with me when Peter hand face Peter knew something is wrong and he said Jesus I didn't see it that way then Jesus here I am now not only my feet but also my hands and my head Peter is always a very smart guy you see when Peter hand Jesus saying you will love to allow me to do this so that you can understand what I am doing and when Jesus mentioned if I don't do this to you you have no fellowship or part with me Peter knew he stood on the way of his salvation Peter knew he was risking to miss out in eternal life and he told him now I remember something my monster now you see when priests were being inaugurated to begin the ministry to enter into the sanctuary and begin the ministry they were washed are you with me and the priests were washed they were brought to the sanctuary and the priests any new appointment and the priests to begin his ministry he was washed in the sanctuary and he was washed on his feet his hands and on his head can you say man Peter says no Jesus I remembered you value me so much you want to make me a priest then Jesus no just fit like Matthew no just fit like John or like Judas now for me mind is that for the priests do it on my head on my hands and on my feet Jesus looks at him and tells him you have gone overboard you are still missing the point it has nothing to do with your ministry it has nothing Peter I am not choosing you to be the priest of your other disciples that is not the point you see Ellen G. White says as they were walking into the upper room the disciples were engrossed in controversies of who is the greatest among us who should sit where in this table we have hand Jesus saying that he is in his bed last days then who shall he live in charge of the flock now this is going on in the minds of disciples Jesus is silent but because Jesus was also God he had the power to read their minds now Peter and no wonder by the way I agree with Ellen G. White why Judas because it was a controversy of who is important in the kingdom of Jesus no wonder Judas chose to position himself right at the right side of Jesus the controversy of supremacy the controversy of who gets what the controversy of who is superior and who is least was in the minds now maybe also as Jesus invited them for Passover they knew but you know every time when there were Passover's you know like today we are having here you have all come but I can tell you here we have hand a team of deacons when you were busy at your workplace and your homes they came here to prepare for you are you with me they came and made the hand blames they spend their time here so even in those days where the Passover was being made there were people who were chosen to serve and part of the people were chosen to serve were the lowest people the least people in the society they were picked that they may be servants and wash every other people's feet so in every Passover there were people assigned you know who you are in the society so there is a job so in all the Passover's the disciples have celebrated with Jesus I want to imagine that they had never seen in a Passover where there were no prior arrangement of who is going to wash their feet how comes that today Peter is resisting as complaining yet he had been with Jesus in all those other Passover's and simply means there were prior arrangement on to who is going to be the servant for the occasion are you with me but on this one they are alone in the room and as they walked in they looked from this side and from that side there was no servant there was no one who would be lower than each other they were just there and they sat and the controversy was becoming more and more so what is going to happen who has been to wash our feet today and I can imagine Peter thinking through am I going to wash the feet of Judas I want to imagine Matthew asking am I going to wash the feet of Mark this fearful fellow how can I do that rest I become lower than Mark the controversy is real Jesus is looking at them and the Bible says Jesus knowing the hour can somebody say amen Jesus knowing the hour he rose from the supper he lay aside his garment he walked where the basin was he poured the water into the basin and he guarded his waist with a towel their disciples are watching and they start washing their feet they are silent when it comes to Peter then Peter says this is not our tradition let me speak to somebody here this morning and I say there are times that you have to break your traditions can somebody say amen there are times in your Christian life you must allow yourself for the sake of eternity to break away from your culture from your traditions from your customs because some of the traditions are contrary to the spirit of eternity there are times when you need to lay aside those things that beset you and that stops you on your way and you must be willing to pay the penalty you see Simon Peter says you know Jesus for us to fit in the society we must observe the ritual in dictates but I hear Jesus saying Peter this is not a ritual this is not a ritual for a mayor service this is a ritual that cleanses the soul you see Peter this one is not that one for the law this one is for the upon this one is not the one that is reaching to the outer part of you but this what I'm doing today is the one that reaches to the inn most of you all these the Passover's should have been having it has been addressing the outer of you but Peter today this one is or targeted to minister to the inner being of you and for this reason the inn is important than outside if the inner cause for breaking tradition may be so I remember Jesus teaching somewhere and saying it is good for you then even though it will mean for you to go to heaven without some part of your body fine Jesus is not only today teaching again as the things that are a stumbling block in our journey with him but he is demonstrating as it is possible when you have come to me and so Jesus tells him you see those who are bathed in the morning they are clean so Peter there is no need for me to wash you the hands but let me just do this because today this is a special one and you've got to get the significance of it you see Peter you are asking me to wash your hands and your feet and washed in the morning have you not come here when you are clean I am here this morning or rather this evening to remove the dust that may have settled on your feet while you are on your way coming here can somebody say man I called you Peter I removed you from the world you left everything for me I remember one day you challenged me Jesus for us who have left everything our wives, our children, our business came to you what shall we get Peter I am doing this today because it has nothing to do with the outside it has nothing to do with physical it has nothing to do with afri ritual this is an heavenly ritual you see people and their lives can look really very good on the outside but they are well can be very well mannered they can go to church they can give generous offering they can sing and go out for missions they appear to be very clean and good yet on the inside they are filled some of those who are filled with extreme pride in how they appear some may hope our hateful thoughts about others some be holding on a grudge against someone else refusing to forgive yet they are on a daily basis on a weekly basis coming before the Lord and fellowshiping with the Lord they pray and God answers their prayer but from inside they are not clean and so like most of us today who are going to participate in the whole communion we have all been worst that the brother of Jesus can say man we accept him we were wet taken to the waters of baptism we were clenched we came on new beings but I won't let you know today even though that happened we are not clean Jesus says I know the day you were baptized you began your life with me you were never isolated from the chaos of this life you never went to live in heaven you are living in a sinful world and many things have come your way they are choking you you are contaminated as you come to me on their special ordinance I want to know I know inside of you you are not clean but I am here to clean you I am here to give you the touch that you desire that your heart and my heart can be in harmony I am here today recognizing that you bath in the morning that I may give you a bathing of the soul all Peter says Jesus tells Peter Peter look at this so Jesus has finished washing the disciples seat and I want you to behold here and see imagine how I wish I was there if Jesus washes your feet if Jesus washes just touching your feet Jesus the hands of God himself touching your feet and taking water and cleaning you and cleaning you and cleaning you with the creator's eye cleaning you who do you go out of that place with any trait of that I want to see the feet of the disciples Jesus has complete and washing their feet and I believe they were looking at each other and saying oh this was a good deal today we have never been clean like this before there is a special cleaning of the hands of the master today we look more handsome we look more beautiful we feel more fulfilled and Jesus could see their heart and the emotion and their feeling and you know he never reprimanded Judas for sitting next to him he was never bothered who sits where now Judas is spreading his legs there together with Matthew and John and Mark his feet has been washed but the Bible says before Jesus began to do self and job of washing their feet already satan and entered into Judas heart are you with me as Jesus is stooping down to start washing Judas feet Jesus is very clear I am not washing my friend I am washing my end Jesus he is very clear I am not washing a companion I am washing a traitor Jesus knew few minutes after these Judas will leave their company and go to look for the 10th man Jesus knew in the next few minutes coming Judas would come and kiss him and hand him over to his kid Jesus knew few hours after that the act of Judas will take him through the act throughout the night he would be persecuting Jesus knew after this act of Judas he would be put on the cross Jesus who you perceive what today in this church in deep of your heart you say this one even though we come to this church together I know this one is not my friend this one stops me on the back this one is my enemy over my dead body pastor I can't wash their feet Jesus says that's why I did not organize for the washers you see friends the reason why Jesus has behaved this way is very surprising to me and I am asking how can this be possible how could Jesus do such kind of a thing so I saw vast number one vast number one Bible says read with me how could Jesus and do a washing his enemy's feet the Bible says not before the peace of the Passover when Jesus knew that his horror and calm that he should depart when Jesus knew that his horror had come for him to depart when Jesus knew his horror and calm he had to do things differently when Jesus knew the horror is here when I am leaving the earth and go back to my father when Jesus knew that this is the time how people looked at life can somebody say man this morning do you know what horror is in your life as we came here today do you know what time we are living in today you see what makes Jesus today behave in this Passover the reason why Jesus in the first Passover when he is taken by his mother he did not behave this way the reason why when Jesus was chasing people is because he knew is how has not come but now he says having known that his horror has come how does the knowledge of what time is you living in today change you approach the things of eternity when he knew the Bible says he rose from the supper he rose from the feast he rose from the supper and laid a sign as garment when Jesus knew the time he rose from the feast and I am suggesting to somebody this morning it is time for you because I am very certain that we are living on the edge of eternity this is the time for you to rise from your supper rise from the feast rise from the comfort zone rise from the place where you are steamed rise from the place where you feel powerful rise from the place where you feel it is easy for you rise from the place where everyone is applauding you rise from the supper for this is not time for supper it is time to fix issues eternity there is no time to set a bread live and enjoy life there is a time to walk out to a salvation in fear and in trembling there is no time to lean the animal in the trivia of beings of this world talking about that and this and this we are wasting time for very precious time Jesus is teaching me this morning in such and however like this I should rise from a comfort zone I don't know what is a comfort zone but supper that dinner was indeed a comfort zone something to set a bread but Jesus said we are all disciples we are enjoying that moment eating and enjoying and eating Jesus rose from that seat let me speak to somebody this morning first I say it is time for you and me to rise from the status quo it is time for us today to rise from traditions and practices that have always drilled the mission of Jesus for he says stand at the door I am coming quickly it is time for us to lean the on earth ravings it is time that Paul speak in collision chapter 3 verse 1 and 4 set your heart on the things above we are crisis sitting on the right hand of God set your mind on the things above not on earth and however we are living in today you will have no time for the earth ravings although somebody would say man days is the time to ask Jesus how do I fix the issue of a maternity you see when we know that the hour that we have is the last hour to determine our destiny in the Lord then we will be more cabinet minded I will speak from Ellen she says the team was lost in the passage for the other game Jesus I thank God that all of the 12 they live and got it can somebody say man I think this is one of the most successful stories of the ministry of Jesus when out of 12 you only lost one so if out of ministry I lose 10 somebody with me I mean Jesus to me this was very successful ministry but you see what of the one who is Jesus you are clean but not oh and then ask myself how could be somebody who has been clean by Jesus still remain then I discovered that even as much as Jesus is working day and night to give us eternity Jesus died on the cross for our sin Jesus will never and never robbed your heart Jesus is always waiting for you to volunteer your heart to him the difference between Peter and Judas is that when Peter discovered what Jesus was doing he volunteered his heart to Jesus because he volunteered his heart to Jesus even when Peter behaved in all the ugly money behaved Peter remained a friend of Jesus because Judas never surrendered his heart to Jesus today Judas is still and clean even though Judas received the same service like Mark and John and Matthew even though all the disciples were clean by Jesus and they were left clean Judas was left unclean let me end this message by saying something here my friend you see the bible says Jesus he removed he rose and removed his garment hmm you see Judas always wore the garment of a thief Judas every time I was walking Jesus was struggling with and Judas said how can I do I already have a deal after this I'm going to receive I meant some connections I meant some phone because I know there's a deal in Naiva there's something quickly coming through how can I lose it for there's mayor washing off the feet just wash them I know where I'm going Judas for the interest of few coins he missed eternity is going to make you miss eternity I figured out today that it was not something so big that that is that Judas was giving honestly it was not too big for him I figured out that most people are going to perish and to miss out the kingdom of God no because of many great things they are permitted but because of small petty things they are living in and I'm speaking to somebody today I don't know who that person is you know that pettyness of your Christian journey you know those things that you trivialize every time you know that thing that you think is not a big thing I know a sister here who is messed up I am better than that sister I am better than that brother I am not as wicked as that have you ever heard of any story of me breaking somebody's home I am just doing some little things because I am a human that is where Judas was because of just little things of that coins of silver he missed eternity could you be washed but still and what do you want Jesus to do they are here today somebody saying like Peter Jesus not just the feet but also the hands somebody say Jesus not just the feet but also the hands in other ones Peter saying Jesus take my life and let it be somebody say take my life Jesus and let it be consecrated to the Jesus take my head take my hands, take my legs take my mouth, take my head it is thine oh Lord consecrated clean it for what is the word of me sharing with you their special oneness yet you know I am not unclean cleanse me oh father David says creating me a new heart David never meant remove this heart take me to hospital and do a heart transplant no David is saying Jesus I have surrendered to you can somebody say man I have subjected myself to your well let your well be done in my life and this morning this morning I want to pray would somebody who says I need to be washed and I am inventing choristers here because I want us to sing the song have you been to Jesus for the cleansing been washed in the blood of the Lord have you been washed have you experienced the washing that comes from the blood of Jesus I am informed very well that the blood of Jesus is able and powerful to remove every stain of sin can somebody say man this morning you may have walked out throughout the week into dirty corners of life you may have indulged yourself this morning my question is have you tried the washing of the blood of Jesus have you been washed in his blood he is right here with us and he want to wash you please do not resist him do not be a Judas be a Peter and say I have come to receive the washing of the blood choristers give us that song have you been washed in his blood


Hi there, and welcome back. I hope you enjoyed learning about GitFlow as a way to blend version control and documentation to help us to collaborate with ourselves in a more reproducible manner. I admit GitFlow is a bit of an advanced move, but if you feel like you've got Git pretty well under control, I really would encourage you to try to use GitFlow as part of your process. If nothing else, you could use it as a checklist to go through as you address comments that are made by collaborators or reviewers. I've also found that using it to outline the steps that I need to take to develop a project can also be pretty useful. I really like how we can use branches in the issue tracker to reflect the bush-like aspects of doing science. Too often we portray science as this linear process. We get to the end of a beautiful paper, but we don't see all the convoluted paths that we know happen along the way. At some point though, we'll want to move from collaborating with ourselves to collaborating with others. Today's lesson will discuss how we can use additional tools from our reproducible research toolbox to foster that collaboration with others. Baked into our discussion is an attempt to improve the reproducibility by improving the quality of our code. We'll discuss how we can use GitHub's collaborative tools to foster a view of our code by others and also solicit the contributions from others. Again, this is another advanced move that you may want to ease into. Join me now in opening the slides for today's tutorial, which you can find within the reproducible research tutorial series on the riffimonus.org website. So in the last lesson, we used GitFlow as a more systematic way for making changes to our project. Our first issue that we dealt with was simulating our PI noticing that our access labels on our NMDS ordination plot still had PCOA. Oh, later when we are looking at the output of our rendered main script document, we perhaps noticed that the figure legend said PCOA instead of NMDS. So as today's pop quiz, what I'd like you to do is use GitFlow to fix this typo. Go ahead and pause the video now and go work on it on your own. And then once you start the video again, I'll show you how I did it. I need to file an issue. So this is issue five. So we're going to go to our directory and we can do Git checkout dash B issue score 005 and we can open up our submission manuscript.RMD file. And I'm going to search for PCOA. So I'll do non-metric dimensional scaling ordination of Theta YC values relating the community structure, blah, blah, blah. Yep, that's great. And so we'll save back out, get status, add a change. We can do make.nwrite.paper. All right, make write.paper. And I'm going to go into FileZilla and log into my instance. And I just want to make sure that my PDF file looks right. And sure enough, if I see that non-metric dimensional scaling, blah, blah. Great. So that's all good. So I will go back to my terminal and I'll do get status, get add submission, manuscript.star, get status, get commit dash M. Correct. Figure legend closes number. Just want to double check that this is issue five. Yep, it's five. It closes number five. Get status. Great. Do get checkout master. Get merge master. Yep, sorry, get merge issue underscore zero five. That merges in. And I can get status. And I can now do get push. Very good. And I see that I've closed my issue and we're good to go. So hopefully that was a good review of what we did in the last tutorial. And again, as you see, we're slowly building to our toolbox, reusing a lot of what we've used previously, whether it's documentation, organization, version control. These are all great tools that we're building on to, again, improve the reproducibility of our projects. In today's tutorial, we're going to expand further. In today's tutorial, we're going to expand again to use GitFlow for working in a team. We're going to use ourselves, perhaps as our team for today, just to try things out or with an actual team. We're going to make a pull request. This is new jargon related to version control to incorporate new code. We're going to integrate an external review of our code into the GitFlow workflow. And then we're going to apply many of the principles that we've been working on throughout the series of these tutorials. We're going to continue to expand our skill set. So we have this annoying postdoc in the lab. And I think they have this great idea. Postdoc says, you're using ARS-based graphics. You should be using the tidyverse. You reply, eh, you know, I have a plot. It says what I want. It works. It's very functional. But it'd be really easy. You should totally change your code. You reply, make a pull request, and I'll think about it. So telling somebody to make a pull request is kind of a good way to get a conversation to end.  So what is a pull request? Pull requests are a mechanism that allow others to contribute to your project, but that give you or someone you designate the power to accept or reject the contribution. The pull request can then be discussed between you and the contributor and allow the contributor to make changes before you finally accept or reject the contribution. So how do we think about this with GitFlow? Well, as a project gets bigger or more public, more people might want to contribute. And so we can delegate issues to different contributors. So remember, one of those steps was to take ownership of the issue so that others aren't going to be working on top of what you're doing. We don't want all contributors to have the ability to merge to the master branch. And so a pull request then gives you the authority to designate who can make those merges to the master branch of the project. Also, even on a project with a single developer, you may not want to be able to merge your changes to master without someone seeing your code first. And so some of the concepts that we'll be discussing before we're done with this is the idea of a fork, an upstream repository, a pull request, and code review. And so again, thinking about this as an extension of GitFlow, what we would do is to fork a repository into our own GitHub account, claim the issue from the primary copy of the project's repository. Alternatively, we will file an issue and ask the developer whether they'd be interested in a pull request on this issue. And so again, if it's a big project and it's not somebody you know, you might want to file a pull request. You might want to ask the original lead developer first whether or not they would even accept a pull request before you go do a bunch of work. Within your own repository, your own copy of the repository, you'll create a branch. You'll make the changes. You'll commit those changes. You'll then merge the upstream copy back into your local copy to resolve the differences. And then we'll push our copy to our GitHub account and then file a pull request to the original version of the repository. And then we can repeat these steps four through seven until the developers accept or reject your pull request. So again, this workflow has a lot of jargon in it that we're not familiar with yet. And so as we go through today's tutorial, these will hopefully make a lot more sense. So if you don't already have an account for your lab, go ahead and create one. So my group already has one that we use to support each of our manuscripts. And so that way, we have this organization Schloss lab. And so any manuscript that's written and has a repository, the final repository is stored within the Schloss lab account. If you're at an academic institution, you can tell GitHub that you're an academic or at a nonprofit.  Just be sure you make them public when you finally submit your papers. So how do you sign up for a new organization? Well, let me go ahead and get out of the slides and go over to GitHub and show you how we do this. All right. So up here in the plus sign, there is an option for a new organization. Click on that. You can then click your organization name. And again, mine is Schloss lab. That's already taken because that's me. We can put our email address in here. So even if you're an academic and you're going to have a free account, you could put it in here. And so I could then say pschloss at blah, blah, blah, dot edu. And then we could choose our plan. So again, being an academic, click on the free option and then create your organization. So it's really that simple to create an organization. I would encourage you to talk with your PI, or if you're the PI, about setting up an organization and make sure that you have their go-ahead before you do this. But I would really encourage your lab to have its own organizational account. I always get nervous when I see manuscripts with repositories under the postdoc or student's name because that person may not stay in academia. And of course, the PI may not stay in academia either. But there's a greater chance the PI is going to persist in academia rather than a student or postdoc. So it's nice to have a kind of a corporate account to hold all of the projects from your research group. All right. So once you've done that, I'm going to go back to my Kozitch re-analysis repository. Find that. And I'm going to go to Settings. And what we're going to do is we're going to transfer the ownership of this repository to Schloss Lab or whatever lab you are in. And we're going to scroll down to the bottom to the Danger Zone. And we're going to transfer our ownership, click Transfer. And we need to type in the name of our repository, which is Kozitch re-analysis AEM-2013. And the username or organization that we want to transfer to Schloss Lab. So I understand transfer this repository. And I am going to click the green Transfer button to make that transfer happen. And so we're moving Schloss Lab, removing the repository to Schloss Lab Kozitch re-analysis AEM-2013. It might take a few minutes. So I'm going to go look for my Schloss Lab repository. You Schloss Lab. And so we see now that Kozitch re-analysis AEM-2013 is here. And I'm going to, similarly now, go back to my profile, look at my repositories, and now see that my Kozitch re-analysis is no longer here. So I'll go back, go back to my Schloss Lab version, and there we are. So what we've done is we've created an organization for our research group. Again, if you already had one, that's great. If not, well, now you do. We've transferred ownership from our personal account of this Kozitch re-analysis to ownership in Schloss Lab. And so it has been moved. It's no longer in our thing. And like I was saying before, I think it's a good idea to have the lab account hold on to the ownership of the repository. So this might seem like a bit much for projects, again, where you're the only researcher. But as I was saying earlier, it does create a structure where others in your group, that annoying post-election, the awesome PI, others can reinforce your code. And it also will help us to reinforce best practices for contributing to other projects. So what we're going to end up doing here is what's called a fork of this repository to make a new copy in our private account, our personal account. And so to make our own copy, we're going to do what's called a fork. And so you'll see this button in the upper right corner. We can click Fork. And I'm going to fork the repository to P Schloss. And so this takes a bit and it doesn't take too long. And eventually, it shows up. So now if we look in the upper left corner, we see we're in P Schloss, which is my personal account, in the repository Kozatree Analysis AM 2013. And it said that this is forked from Schloss Lab Kozatree Analysis AM 2013. So congratulations. You've forked your first repository. This is pretty cool. Again, what you have is a copy of the repository in the Schloss Lab project folder. And the copy now is in your own personal account. And so we're going to be able to make changes in our personal account. And we're going to hopefully then ask Schloss Lab to pull those changes into Schloss Lab. So we need to get a local copy onto AWS. So first, our local repository is already looking for the remote GitHub repository in our account. Because we had started this in P Schloss. We deleted it on GitHub. And then as we deleted it, we moved it to Schloss. But we still have that. And then we forked it back to P Schloss. But our AWS repository is still looking for it in P Schloss. So it doesn't know any of this has really happened. So that's cool. Alternatively, and probably the better way, would be to delete our Kozatree Analysis directory on AWS to clone it from P Schloss Kozats and then re-render the data. So we've done this a few times. We know it works. We know it takes probably about 45 minutes to an hour to run all this. I'm going to skip this for now. And for this project, we're going to use our local repository that's already looking for the remote. The remote is, again, GitHub. That we've got our local repository on AWS. Or on your laptop, perhaps. And our remote is what's being stored at GitHub. So what is the remote? As I said, we've been looking on our local version of the repository on AWS. The remote is what's on GitHub and is under your account now. We need a second remote, though, which we're going to call upstream that tells Git what the version upstream of the parent or the parent of our repository is. So we have a remote and then we kind of have a remote to the remote, if you will, that we'll call upstream. And the upstream repository, you can think of as like the official copy. And that's the copy in SchlossLab. We can look at the remotes by doing Git remote-v. We see that our remote is P Schloss Kozatree Analysis AM 2013. That's what we'd expect. And the name of that remote is Origin. So you might not remember this, but way back when, when we did our first push, we did Git push Origin. We were pushing to our Origin, which is our repository copy on GitHub under P Schloss. But we need to set our upstream remote. So to do that, we're going to do Git remote add. And we're going to say upstream as the name of our upstream remote. And we can go back to click on this link that we forked from. And we can get a copy, copy the address to this repository by clicking on the green clone or download button and then clicking on the copy button. Coming back to the terminal and pasting that in, hit Enter. And then we can do Git remote-v. And we see now that we have our Origins and our Upstreams. So one of these is to fetch, which is kind of to pull stuff down from GitHub. And the other is to push, which is to put things up. And we have a fetch and a push both for Origin as well as for Upstream. So you'll notice that we have a fetch and a push for our Origin and our Remote. And so we've talked about push already, where we take what's in our current repository and we push it up to GitHub. Fetch brings down the commits from the remote branch that are not in our current branch and stores them locally. Merge then will bring the stuff we've just fetched. And it merges it into the branch that we're on. So we can do that in one step with a pull. So when we do Git pull, we're both fetching and merging at the same time. And so that's why we see fetch rather than pull because it's breaking it down into those two steps. If you're not careful as you're doing your pulls, you might run into conflicts. And so that's why sometimes people prefer to do a Git fetch and then a Git merge rather than a Git pull. And so when we're working with our Upstream, we will do Git fetch, Git merge. So what does this look like in practice? We can do Git pull origin, which is already up to date. And then we can do Git fetch upstream. So Git pull origin is pulling it down from pschloss. Git fetch upstream is pulling it down from schloss lab. And so this now tells us that there are two branches, issue four and master, that it's brought down. And we can then do Git merge upstream forward slash master. So this is telling Git that we want to merge the master branch from upstream, which is right here, into the master branch that we're on in our thing. But before I do that, let me just make sure which branch I'm on because I don't know that I moved back. Yep, I did. So we are on master. So that's a good thing to always double check. So I'm going to do Git merge upstream forward slash master. And of course, it says we're already up to date. You could imagine, though, that if we had forked it and maybe sat on it for a day or two and someone else had pushed something into the schloss lab version, that our version on our repository might be different than the upstream version. And so it's good to always merge our origin version back into our local version to make sure that we're working on the most recent version of the code. So what we'd like to do now is to create an issue in GitHub in the schloss lab, the upstream version of the repository. So we'll go issues, new issue. And we will say convert NMDS plot to use tidyverse packages. And I'll leave a comment to say the postdoc thinks we should convert plot NMDS.R to from using base R functions to instead use functions from the tidyverse packages deplier and ggplot2. And so we might submit that issue. And we might let it sit. And we go away and we think about it some more. And we say, if we were to use deplier and ggplot, there's a lot of code in that plot NMDS that's just kind of doing funky things. If you look at that code, there's all sorts of little things in there that the more I think about it, I just don't like. And that it would be good to refactor that code to make it a bit more elegant, a bit easier to maintain. So I'm going to take on this issue. So I'm going to assign it to myself. And I'm going to add a comment. I'm going to say, the more I think about it, I agree with the postdoc. I agree because I think it will help to make the code easier to maintain. And so I'll comment here. And again, we can use assignees. We can use labels. We can add these to different things. We can add people on to the discussion to get their feedback. We can have a dialogue here. All right, so I have claimed this issue for myself. I'm now going to go back to AWS. And I'm going to create a branch in my local repository for the issue. I will do get status. Just to make sure I'm on the right branch. I'm on branch master. Can you get check out dash B? And I will then call it issue005. Double check that's the issue. Oh, nope, I'm sorry. It's issue6. Get status. We're on issue6. And now we want to edit our code. So we can then do nano code forward slash plot and mds.r. And this is our R file.  I apologize for that. Again, it's in the slide deck if you want to take a look at it in greater detail. But we're going to use dplyr and ggplot with our mutate commands and ggplot to build the plot. The inputs are the same. The output is still that ggsave. The function name is still plot nmds. So the dependencies and the output are the same. So I will save this and quit. Get status. Make dash n write dot paper. That looks right. So we'll do make write dot paper. And I will now go into filezilla. And I will look at my manuscript.pdf to make sure that all looks right. And we see our plot, our ordination for the ordination, using tidyverse, using the ggplot. And so we see that. And so that all looks good. Maybe our legend could be shifted over a bit. Maybe I'll go ahead and do that. Let's see. Where do I have that? So legend position 0.15, 0.15 is, I think that's right there. So maybe I'll put it to 0.5 on the x-axis. Make write dot paper, open this up again. I think what it's doing is it's putting it halfway across, not at the actual x-cordant. So I will edit that again to maybe make it 0.75. And make write dot paper one more time, and we should be good. Great. So our legend's out of the way now. So that looks great. I think we're ready to ship this back and commit it and make our pull request. Get status. I'm going to move this up. For some reason, it's made rplots.pdf. I don't want that, so I'm going to do rmrplots. This is not being tracked, so I don't need the get rm. So it's not tracked, so we can delete it. Get status. Get add code, plots, results, figures, mds, submission, manuscript PDF. Get status. Great. Get commit dash m, refactor code to use tidy versus addresses number six. Get status. Great. So we're on our branch issue six. We've made our change. We've made our commit. We now want to push our branch. And so we saw this yesterday that we can do get push. But before we push, we want to double check that nothing's changed on the upstream repository. So I'm going to do get fetch. Get merge upstream forward slash master. And we see we're already up to date. So good. So now we can push. So we do get push origin. So we're going to push to our version and our account under pshloss or under your version, wherever that is. Origin issue underscore 006. You may have to enter your credentials, I don't know. And so now we see that it's pushed it up. There's new branch. We come back to me and go to my profile and my repositories. And I see that I recently pushed up a branch issue six. And so I would like to compare and make a pull request. And so this creates a form to open a pull request that is going to use as our base fork. What we're comparing it to, what we're trying to, we're requesting that Schloss lab pull our version from pshloss. And so it says able to merge. These branches can be automatically merged. Because we did that get fetch, get merge upstream. And so I can now leave a message in here. And I can say, I've refactored the code to use dplyr and ggplot to functions. I feel better about the ability to maintain this code. I think I like this version a bit more than the original using the base graphics functions. So we've entered a comment to the maintainer of the Schloss lab version. I can then click create pull request. And thanks for a minute. It sees that there was a comment there that I added a commit that's here. And so it then says that this pull request could be merged. So I'm the owner of Schloss lab, which is why we see it gives me this nice green button. So don't push on that yet. So what we're going to do is we're going to ask someone to critique it. And so I'm going to again simulate this by saying, thanks for the contribution. This looks great. Before we accept the PR pull request, could you indicate in the readme file that the user needs to have dplyr and ggplot to packages, I'll say the installed before running the code? So we're going to push this back to pschloss. And I'll say comment. So we've gotten this feedback. And now what we want to do is we want to go back into our cosetree analysis. I'll do get status to make sure I'm still on issue 6 as a branch. And I will open up readme.md. And I will scroll down here where I had dependencies and locations. And I will add dplyr and ggplot2. And that's saved. And come back and do get status. It's been modified. Get add readme. Get commit-m. I'll say add dependencies to readme. Addresses number 6. And then I will, again, do my get fetch upstream. Get merge upstream forward slash master. It's all good. And so now we can do get push origin issue 006. It pushes that up. And now we come back to our pull request. And then we see added dependencies to readme addresses issue 6. And so we've got that commit is automatically added into our pull request. So then the developer, the owner of the repository, writes back, these changes look great. Thanks for your contribution. I'll do fireworks. Bam. And so then we will comment. We will then merge the pull request. And we will confirm the merge. And so our pull request has successfully been merged and closed.  The pshloss issue 6 branch can be safely deleted.  And we can then come back to our issue. And we can then say close issue. Great. And so it adds to the transcript of this issue that the issue was addressed by the merge pull request from pshloss issue 6. So we want to update our local repository. And we will get back to master. So we'll do get checkout master. And we can then do get fetch upstream, get merge upstream master. And that's been brought in. Again, if we do get status, we see that our branch is ahead of origin master by three commits. So our personal version of the repository is three commits behind of the upstream as well as our local. So we want to fix that by doing get push. And we can also, reminding our branches, get branch, we could do get branch dash d issue 0, 0, 6, or we could keep it or whatever. So I'm going to go ahead and log out now. And we'll do exit, exit. And I'm going to stop my instance. So GitHub allows us to set guidelines to potential contributors for how they make those contributions. So we can state explicitly our community and behavioral expectations that there's no name calling, no snark, no being jerks. We can provide links to external documentation, mailing lists, or a code of conduct in terms of how we set those expectations. We can also, beyond expectations of behavior, we can describe what our expectations are for creating good issues or pull requests. And so Mozilla at this link has a great checklist for you to think about. So for example, a pull request should really focus on one thing. And so our maximum submission should be a maximum length of perhaps 400 lines of code, maximum function lengths of about 50 lines. Our code must be able to be automatically merged in, as we saw. And we were able to achieve that by doing the get fetch, get merge. If there had been a problem with merging, we would have had to resolve those merges before we then push to our origin and then did the pull request to the upstream repository. If you have tests, kind of like our make write dot paper, they must all pass. Functions should be tested. Functions should be documented. They should respect a style guide and indicate what issue the contribution addresses. And then finally, in the pull request, to summarize and annotate the changes. So we can stipulate these requirements with these steps for making good issues and good pull requests. When we look at our issue tracker, we'll see a link either up here or down to the side for how to make good contributions to the repository. Again, if we go into GitHub and say I want to file a new issue, you may notice that down here in the lower right corner, there's a link for helpful resources. And so here you see all those things that I had just mentioned. And so where does this come from? Well, this is coming from our contributing.md file. Another good resource that I have in the slide notes, as you'll see, is a link to the software carpentry page for their contributing.md file for what they expect from people to make contributions to their repositories. A big part of making these pull requests is having someone else look at our code. Just like we simulated someone saying, hey, it'd be really nice if the read me included dplyr and ggplot2 as packages that need to be installed. We need others to look over our code and make sure that we've dotted all the i's and crossed all the t's. You need to get over the quality of your code. That's the purpose of having a review. If you don't want people to look at your code, that's a bigger problem. And so we need to get used to people looking at our code, making suggestions, and that's really the only way we're going to get better. I know that my writing of narrative has gotten better because of peer reviewers looking at manuscripts I've submitted. And I know having people look at my code will only make me a better programmer. Think about what you want to get out of your code review. What is your goal? Do you want to make sure that you're writing code that people understand, that works, that is readable, all of the above? So think about that. And think about that as you ask someone to review your code. You can solicit reviews from your PI, collaborators, colleagues, random strangers, people on Twitter, wherever. Do it early and often to prevent code backlog to get the best feedback. So really, there have been studies that have shown that you've got to keep it under 500 lines of code, or it just gets to be too much for somebody to look at. And if you have to give someone 1,000 lines of code, then that might indicate that there's probably a problem with your code, that it needs to be broken up into more modular segments. And also just the psychology of getting this reams of paper or reams of code is not going to get a lot of enthusiasm from potential reviewers. So your review can be live, like in a lab meeting. So in our lab meetings periodically, we'll have somebody put a few lines, maybe 150, maybe 50 lines of code on the projection, and we'll go through it line by line and comment on the code. It could also be asynchronous. So it's perhaps be more like peer review for a paper where you ask someone to look at your repository and perhaps a specific file in your repository and ask them to review that code for you. If you're reviewing someone else's contribution, Mozilla has a really nice guide for thinking about code review. And so these are some of the questions that were taken from that guide. And so they break it down into intrinsic examination as well as extrinsic examination. So are the functions as simple as possible? Is the code efficient? Is the usage of each function clear? Is there documentation on how you use that? Have edge cases been considered? So kind of like things where, you know, dividing by zero, I think we talked about that when calculating Shannon diversity when we were doing our coding. Have those edge cases been considered in the function? Extrinsic examination, does the new code reinvent any wheels? Are there packages that could have been used instead that are already pretty well developed and tested and robust? Does the new code successfully address the needs of the project? And does the new code respect the structure of the project? Right, these pull requests should not be totally revamping the whole code base of a project. That does not respect the structure of the project, but it should instead work within what the goals and the structure of the existing project. I'd like to leave you with a few questions to think about. So based on what you've learned in this series of tutorials, why should the quote final version of your repository be in your group's organization and not just your own private account? I think there's a few reasons for that. Look around the GitHub version of your lab's copy of the repository. How would you add someone from your lab to review your code? So noodle around on those pages and see if you can figure out how you would add someone to be an approved manager or somebody that can approve pull requests to your lab's code. And finally, ask yourself, who could provide a review of your code? Are there people within your local community, within your lab, or that you know through social media or through meeting people at conferences that would provide a review of your code? The final thing I want to leave you with is a opportunity to get a quote virtual badge for completing these tutorials. And so on the home page of the reproducible research tutorial series, you'll notice that there's an honor roll. So you and your picture and your information can be added to the honor roll as an indicator that you completed this training by filing a pull request. And so to do this, you need to fork of this repository that has all these slides for this tutorial series. You're gonna, like as we did in this tutorial, create a local copy of the repository. You're gonna add a file that's called, that has your GitHub ID, whatever it is, so minus pshloss.yml. There's a copy or a template of what you need to use in the directory honor roll that's called template.yml.   And that needs to be named, again, your GitHub ID.jpg. And this needs to be also added to the honor roll directory. You're then going to add the changes to your copy of the repository, create a pull request and then we might go through an iteration or two to make sure everything's in row and then we will then merge your pull request into the honor roll page and that will then get your image to show up on the honor roll and will allow you to say that you've completed this training in reproducible research practices. I really hope that you take me up on the offer of filing a pull request to receive a badge for completing the materials within this tutorial series. This activity really serves as a capstone for the entire series, but hang on for one more tutorial after today's to finish the series.  We were used to having our science reviewed in committee meetings, seminars, posters, papers and grant proposals were reviewed constantly but have you ever asked anyone to take a look at your code? Have you ever looked at someone else's code? My research group does this on a regular basis as part of our lab meetings. And while we still could do a lot more with it, it's really been helpful to get people to learn to code better and to identify potential problems. Some groups have varying policies on who can accept pull requests and what steps have to be taken to approve those pull requests. At the minimum, people will push directly to the master branch without code review. Others require that the contributor cannot accept the pull request themselves. Still others require one or two or more people review the code before accepting that pull request. These requirements can get kind of onerous if you're the only one working on your project or if no one else in your group is familiar with programming. If this level of rigor interests you though, I'd really encourage you to use social media or your network of friends to reach out and ask someone to review your code to help you out. Similarly, you can also make the same offer to review others people's code. I think you'll learn a lot by looking at others people's code and comparing it to your practices as well. I have to admit that I use the tools we've been talking about in this series long before I started thinking about code review and branches and pull requests. Now I think of a fork as a bit of a firewall between what seems like a good idea to me and what is truly a good idea for the project. You can think of it as an added level of security for ensuring the replicability of your work. In the next tutorial, we'll finish this series by discussing the value of openness and transparency and reproducibility. We'll talk to you soon.


Cheers, grunts, and the clash of weights filled the air with the sounds of a Captain's Cup powerlifting competition sponsored by Yacosca MWR Fitness. Sailors competed in a series of three lifts, the Squat, Bench Press, and Deadlift. The competition was part of Yacosca's annual Captain's Cup competition, in which commands compete to earn points and win the coveted Silver Cup. We have sailors from every rank coming in to compete, and it's a good chance to get out of the work environment that's something a little more recreational. Physical fitness is an important part of a Sailors' Day, and Captain's Cup events encourage sailors to push themselves to higher levels. A lot of motivation out here, we've got the bleachers, we're here in the basketball courts, so we've had a lot of spectators, a lot of cheering, the music going on. At the end of the day, it's all about encouraging fitness and friendly competition between commands. Petty Officer Jacob Allison, Yacosca Naval Base, Japan.