 Good afternoon everyone. It's the the last block of sessions before the end of the day here at Kiwi Picon and Up first we have a talk about how to be nice to people in open source and our presenter today is Katie McLaughlin. If you could make a welcome Thank you very much Good day Hi, I'm Katie. I wear a lot of different hats Sometimes I do software development. Sometimes I do operations and sometimes I like to hack on open source projects Everyone knows who these guys are right? Who doesn't know who these people are? Okay for the one person up the back who's brave enough to put up their hand the one on the left is open stack the one on The right is Docker open stack if you want to know about open stack there's a whole lot of people here that get paid to do that and Docker is containerization. That's really cool. And they have a really cool logo that makes for a really good sticker I've been fortunate enough to be able to contribute to both these projects The Docker people have actually paid me money to fix their stuff It was a whole cryptocurrency of some amount that translated to four cents For the open stack stuff, however, they have this really nice incentive scheme where if you get one commit Accepted upstream you get to call yourself an active tech technical contributor. It doesn't have to be a big commit It just has to get upstream. Would anyone like to know what my commit was? that Removing a delete and putting in a get in documentation because for four years that method to get something said it would delete something Yeah Documentation is important. However, because I'm an active technical contributor. I get to go to stuff like this for free If you get one commit upstream before cutoff dates, I'm not sure when it is you can get to go to Tokyo And I'll give you a free ticket Four days Oh Well, you could have but the next one's probably going to be awesome. Anyway, because I don't know nothing better than Tokyo Never mind. So if you commit to open stack, you call yourself an active technical contributor This is a very nice thing to put on your resume or your LinkedIn and It's a nice thing to do because you get incentives for it This is all code. This is all stuff that people can do if you're a coder How do you track all this code that you do? If you're using github, there are graphs, there are statistics. There's all this stuff Doesn't really work exactly as you expect. We'll get to that later But you can actually track what you're doing In the open stack land, you've got stack analytics, which will do a whole lot of nice metrics for you Before github changed all their APIs, you had to think all the open source report card Which would show you nice pretty graphs about The percentages of different languages that you coded in and that was very nice as well The problem is This is all code What about everything else? What about the code reviews? What about documentation? What about testing? What about design everything else in the old waterfall structure? What about promotion? What about going to user groups? What about giving presentations? So audience participation time who here has ever developed anything that they've published as open source Okay, how many people have used somebody else's open source code? How many people have taught their colleagues about some open source stuff that they've been working on? How many people have volunteered at an event about teaching people about open source stuff? How many people have spoken at one of these events and How many people have attended of an event and everyone's hands should be up right now because you are at an event You're all awesome. I want everyone to give themselves a clap We'll be doing that a lot These are all contributions that you're doing just by being here by experiencing this there's probably a chance you're going to tell someone that you are at this thing and from there that idea is going to spread and You are going to tell other people and people will learn and people will get interested in Python or whatever it is that you do and That is a contribution that cannot easily be tracked But in open source, this is the stuff that ideas are made of I don't know how many people afterwards are going to be trying out Wagtail, I don't know how many people are going to be trying rock learning But just by being here and hearing about this stuff these projects are going to get a Injection of new fire and new ideas. It's just going to make them even more awesome than they already were so This is fine. I can come up and say oh you guys are awesome, but If you're not here with someone who's saying nice things about you, how can you actually say hey? I'm doing a nice thing Who here knows who this lady is This is Leslie Hawthorn. She is an absolutely amazing human being She started this thing called let's all build a hat rack I'm going to leave this slide up for a couple of minutes while I riff on how awesome she is so you can write it down Because we'll be using this later The blog post up the sorry the short link up there is to her original blog post that she wrote in february about acknowledging the stuff that we do in open source that isn't code And what I've been doing is I thought this was a really good idea So I have been giving a couple of lightning talks on it And that kind of escalated into full-blown talks. So I get to riff on this for a little bit longer So what I've been doing is I've been going around to different communities And giving them a really easy user manual on how to be nice And I've been calling it by this name which is An IKEA manual and if anyone knows Swedish it actually means bad pun Apparently Python people like puns Anyway, the story goes that just up the road or across the island or geography up in Auckland in january Leslie Hawthorn and a lady called Deb Nicholson were meeting over coffee at Linux Conf Australia Leslie is absolutely amazing. She does a whole lot of work with community outreach and developer advocacy Deb is part of the open innovation network which deals with the sharing of open source patents and non-compete agreements between different open source companies They now work together in a foundation called the Sahana Software Foundation They were meeting over coffee at the conference and Deb says this is really great. They're a part of this thing It's one of those places where I can hang my hat It's something I can put on linkedin to show that I'm actually passionate about what I'm doing here And it's something that I can share with other people And Leslie being the amazing person she is picked up on that hat rack idea And turned it into a blog post and a hashtag and trying to be has tried to spread around this idea of thanking people So she's put it into five easy steps in this blog post So step one on how to be nice Write a list of what this person does for you and step two send it to them That's it The other stuff is gravy on top because if you put it on twitter and say hi, this person is really nice Then they get a little bit of praise outside of just a personal communication If you're really really nice You could give them a recommendation on linkedin Which is something that they can actually show and take with them As they go around to other employment opportunities and that can actually really be beneficial The final step is do it for someone that's not like you If you're a developer do it for someone who does your testing If you're a project manager do it for your designer all this other The mishmash of different Specializations that we have in open source Means that we have all these people that aren't like us that we can cross these boundaries and build a community Of people that are nice to each other and it makes connections and everyone's happy and everyone's Everyone's awesome Because everyone is awesome in their own little ways the problem Is that this has got to be The eighth time that i've done this talk I've done it for python communities for php communities for devops for apple communities. I've done it in such Wonderful locations as sydney melbourne brisman wellington. You know the big ones and I don't get a lot of people afterwards that actually Use this hashtag or continue being nice in a way that I can actually track The only exception to this was pycon au where I refused to get off stage until the amount of tweets were hit I'm not going to do that again today because you people are going to hit that before I even ask whether it's being done, right You did copy down the hashtag earlier. Yes So This is where the live demo comes in and this is going to be really fun because I'm not actually going to be touching my computer I'm going to be talking to chris Hi chris Does everyone know chris Who doesn't know chris? Okay, how about you stand up so people can see you So this is christopher noigabao. He is our Internationally renowned lightning talk za he is a very nice individual He's done so much work with the different python communities helping behind the scenes running conferences He's running a small conference called linux confiner year in a bit's time And he's a really nice person and I think everyone should give him a little bit of a clap Second live demo christopher Someone was just nice to you. What do you say? For the recording he has no idea what to say see You remember what happened last time this happened. Yes. Thank you. Katie. Thank you. Oh goodness Okay, you're learning because last time you yelled about this on twitter And the last time I said you laughed you yelled at me about this on twitter you then yelled about it on twitter again In a self-referential way that I just thought was amazing. I had to share that Thing is This kind of thing on twitter just kind of ends up snowballing where people think that they can do the thing that someone else has done Because last time I gave this talk I also thanked tom over in the corner and he decided to yell about the fact that he was being thanked as well And it took a third party to actually calm these people down to actually say no, you're actually pretty awesome Why why can't we take a compliment? Minimisation is pretty much the antinom of exaggeration It's the old are now she'll be right mate. It's a bad Australian accent. I am Australian by the way We understate all the things that we do pretty much because we're scared Of this bad boy here because anytime that we're put under the spotlight We think that we're being singled out and something bad's going to happen to us You've also got this one Which is really not a thing that anyone here should ever think that this applies to them because everyone is awesome And it's not just me saying that it's the people who have been thanking you One way that we can get over this is by acknowledging our own achievements Because if we can acknowledge things that we do that are good ourselves Then we can start seeing that in other people and thanking them and then accepting those thanks when they come to us So here's a picture of a doughnut This doughnut is a doughnut that was consumed by one Lara Hogan on the event of finishing her book If you saw this on instagram you'd think it's a picture of a doughnut But the message accompanying this about the fact that she just completed a book Is her way of saying I did something good. I deserve a doughnut I got to have my own doughnut the other day Because I happened to be in a place In melbourne for a conference called dev world Where a speaker had to pull out of the last minute and someone asked hey, you're a speaker Could you fill in this slot? So I did this talk there and I gave myself a doughnut and it was a very delicious doughnut Not all contributions are doughnuts But we can still have our own sort of I did a good thing Just for the little tiny things And if you want to see what difference a whole lot of little tiny things can make Stack overflow there's a whole lot of swag that was out on the tables. It's probably all gone now But can anyone have a guess as to The statistics of stack overflow by now say how many questions have been asked Someone's been reading the internet 10 million questions have been asked on stack overflow in the last couple of years And 16 million solutions have been given it's the equivalent of over 50,000 times the size of wikipedia in people helping other people and That's how many times the developer has found a solution Because all these individual people Asking questions answering questions developing a community within this system Have helped so many people Nearly two billion hours have been saved according to their data 8 million developers go there every day to help Or to be helped And it's all these little things that just add up into this amazing community and If you're a person that's involved in a project that has their own tag on this system The people who are answering your questions about your system Other you're They're your free support. They're your free q&a people. These are the people Who from the generosity of their own hearts want to help your project succeed by answering questions These are the people that you should be thanking but Why Why would you thank these people? Because it's nice It's nice to be thanked There might be a little blush sometimes, but it's nice to feel that oh, I did a good thing And if we encourage that Then we can end up building continued engagement because I know that I'm a very Encourageable person and I often get this happen a lot Where somebody thinks that hey, you're good at a thing You're going to go do this other thing now. It's called being volunt told And it's pretty much how I started public speaking in the first place um Because there was this small conference in Auckland again. Why is it always Auckland? There was this awesome talk about siphon and generating md5 collisions because reasons It was a click-and-point adventure game in a paced bucket. It's a really interesting talk. It's all online Um, I was discussing that I saw this awesome talk with a person I know it if they were and I said That talk was really nice. I think I have a project that people might be interested in. Maybe I should do a talk on that next year I was talking to ben dekara who started the entire conference 10 years before And he retweeted the little thing that said oh, this sounds like a good idea. I know help run this conference It kind of snowballed just a little bit But if you find those people in your community that are accepting of hey, this is a challenge This is something that I can totally do then you can nurture that seed and you can bring in these people into your communities that are going to help you and Make your project awesome One way that I see a lot is people saying in say release notes. Oh, thank you to such and such for doing this thing That's nice. The problem is who's actually going to read your release notes The communication within your project is awesome, but trying to get The communication outside of your little niche is how you spread And it improves the quality of your software because you have more people seeing it and all the other nice fun things about open source Speaking of nice things, this is not one of them. This is the LinkedIn logo. So I don't like LinkedIn It's marketing. It's But The one thing that it does well is it serves as a digital version of a resume where you can say I have done these things. This is me. You can choose to put as much or as little in there as you want The social media aspect of LinkedIn allows you to have recommendations and endorsements So for those of you who don't know you've got the two separate things in LinkedIn where you can say Make a plus one against someone's attributes or you can write them a nice message about something nice that they did And you can put that against some of their experience These are the recommendations and these are the really nice ones When you're filling your LinkedIn profile, you can use one of these 10 categories The problem with LinkedIn for one of the problems with LinkedIn is that you can only have A attribute of someone saying something nice to you against experience or education All this other stuff about your volunteering your awards your skills It's just those two So this is all you have to play with but if you were say doing a whole lot of work say Moderating your project's Wikipedia page Then that's experience put that as experience and then someone can recommend you for that experience Because it is experience It's something that you're doing you may not be being paid for it But it's something that is commendable The flip side of this is endorsements which Aren't particularly helpful because when you end up with something like this and if you know the bottom one i'm apparently uh endorsed in table flipping Yeah But then there's Christopher's endorsement list Teeth Potatoes brochures jigsaw c++. Why would anyone recommend you in these things? Why would anyone why would anyone put russian history in there? Um The table flip one for mine. I actually had to put in myself but some of these do appear in the Moderated list of things so There's maybe there's dentists on linkedin. Of course they know about teeth Chris maybe not so much You have teeth, but are you good at them? That's the question So most people in this room do python. So let's bring it back to something that we know and love Well, we know github User contributions on github This is my profile page I This is not an accurate representation of what I do It says in here if I can read it properly um, I have Things on there that I didn't even know that I had a fork at the 2048 game apparently I did And that green thing at the bottom this thing That is not an accurate representation of how much code I do This is because I have a whole lot of private stuff that I've been doing for various companies that doesn't show in public The problem with this graph Is that there's a gamification side of it that Has a whole lot of issues with it as well How this graph actually works is documented in the little tiny link at the bottom there What actually counts on this graph? It's commits right you do a thing and it gets you get a little green box you do that every day Something happens well nothing you just get a green box Problem is it's not all commits It's only commits against master or the documentation side of your project page, which is gh pages So it's only two branches that count But it's okay because issues and pull requests also count Except they only have to be opened in the last year And they only count if you own the repo or you're a collaborator or you're an owner or you've forked it But commits don't count on forks and there's so many Different things that just limits what's on there So what actually counts Only some of it you could be working for weeks on a branch and then merge it into master and that's just one layer of green This is all just too hard right It's okay Because we're python people we can just pip install rockstar Run it Give it 400 days as an input. This will take your Git configs locally create a hello world Backdate the commit for the last 400 days and fill your graph for you By default this will do a hello world and c++ Because c++ is a thing However, if you say wanted to give yourself five years of swift experience This app allows you to do that and it's totally okay, right? This guy invented swift This may not be an accurate representation, but it's on the rockstar documentation. So it's right. Yeah But if you don't want to have to actually break your github graph What you can do is go to different sites that allow you to Uh, write whatever you want And it's not like github ever actually made money off the fact that they think that the gamification of their graph is a good thing Because they used to sell this t-shirt That's you as a user though. So for the project side Any project you can totally tell exactly who's working on your code, right? because This is reveal. This is reveals home pages of a couple of days ago There's a nice little 142 contributors number up there If I click on that I can see all the contributors. There's nice graphs Except it only shows the top 100 people by lines of code committed to the project This is only some of the contributions and only some of the people that have actually committed things that github say are contributions But what about everything else that goes on in this project? What about the issues that are logged against it? The unmerged pull requests that are going through code review the actual people doing the code review What about feature discussions? What about voting on features? What if there's a way that as a project owner You could commend someone for the work that they do on your project What if instead of having this weird mess of I don't know what I have no control over what's displayed over there You could edit it What if you could change your popular repositories to my repositories? What if you could highlight the code that you were actually proud of? And not just that You could add stuff that wouldn't normally appear on there because it doesn't have enough stars normally And what if you could edit the repositories that you contributed to? What if you could remove ones? That you didn't want to be associated with and add ones that you'd actually committed code to according to github's existing rules And what if you could actually have things on there that you hadn't committed code to? But you had contributed so much in the discussions in the feature voting That the project owner gave you props for that And what if you could remove the green graph altogether? Because that green graph has been attributed to more than one case of burnout Because people want to gamify getting a green graph What if you could do all that what if as a project person you could see who's helping out? There's an app for that. I made it in python. It's called octo hat Because the logo for github is an octo cat and this is a talk about hats so octo hat And you can pip install it because python and packaging is fun Packaging was really fun because I had to get a c python core Developer to actually help me with the packaging So if we were to run octo hat across reveal.js You would see the 142 contributors You would also see a list of every single one of the 435 people within the community on github itself If you were to do it for requests You would see the 350 people who did code And the more than 1200 people that were contributing in other ways to that community And if you wanted to get a little bit better You could actually run it on the community behind rockstar the thing that was gamifying the Graph in the first place and you could see that there are 30 people Committing different versions of the gamification so you could actually make yourself a bash expert or a java expert Etc But you could also see the 38 other people who were putting cat pitches on issues But if you wanted to get really meta you could see that octo hat itself now actually has a community around it A little one But they're totally there because I now have four contributors There's myself Someone who's helped me migrated to python 3 python 3 And someone else who was helping me with some of the dependency chain that was broken And I've also got two people that are requesting features I actually had three as of this morning But one of them moved up to the code contributors because I merged his patch because it worked so This is the thing that we can do to try to be nice to people Because there's really nothing wrong with being nice And because i'm going to get really meta here's a list of all the non-code contributions that i've had to my non-code contribution talk Some of the people who are actually here in this room including chris and or and tom who are amazing people um That's about all I had i'm not sure how i'm going for time We can go through to about 20 past on questions so okay um I will say though The non-code contributors to this talk list is actually a moderated list because I have had other help from people that did not want to be acknowledged And in the question time I would appreciate it if you wanted to say be nice to someone if you'd actually gotten their prior consent because we are recording So if we can keep it just to the technical questions about the app or the get hubs and stuff that would be really appreciated Um Yeah, so are there any questions or katie? Can you talk a little bit about how your octahat works? Okay, so what octahat does is github has an api that it exposes it's got a Big data aggregation, but it's also has a raw api. So what octahat does is for a given repo and repo name so the username and the repo it'll go through every single issue every single pull request and check the person that started it all the comments all the code reviews so the inline ones as well and all the pull requests The interface only displays those issues and pull requests There's actually three different types there So I make sure I get everything out and then it compares that to a list of the actual contributors and works out who's Not put code but actually has commented So you end up getting say the people but a reviewed code but never actually pushed anything in there So you end up doing this nice little dip all the way down There is a feature request in there to make sure that The entire list of code contributors is also printed out because of the 100 capping issue as well So it's pretty much just a api walker However, there are issues with the rate limiting on github because you only get 5 000 requests in an hour So sometimes my travis ci Breaks because i'm trying to check projects are just too big Yeah, so it's just an api walker, but the information's there. It's just not being displayed properly by default Damn you making me walk all the way up the staircase somebody from this side of the room should ask the next question Sorry, that's me not being nice. I apologize um Questions so you know like how a lot of the times you not get Like shown as a contributor to the project even if you answer so many questions I think a lot of the issues like this comes up with not effective github rights management So you have only two right two management as such as You know, you're the owner or you're the contributor or you know, no one else So so like on the github if you closes the issue You it's getting marked on your you know on your green diagram The fact that you closed the issue and so if github would have way more flexible rights management system like github has and also like i'm as one of the major contributors of the countries Would be able to it's a it's a jason project Um, I have over 30 issues closed there by me, but you know, I answered all the questions Oh, there was there was the thing so there was the question So um, I think that probably why a lot of the types You don't get assigned as a contributor and all the cool thing github would have that Okay, so github does have a couple of different levels of Association to a project you can either be part of the organization or for individual users projects You can actually be marked as a contributor However, the popular repositories thing on your user Does not take any of those into account the ones that were on mine. We're from my previous employers I'm no longer involved in those organizations yet. It's still attributed And yet I've gotten commits into rails and it's not coming up there If it was based on stars rails would be up there because they have 50 000 or something the rights management issue If the api for the event stuff was easier to use you could actually see the events for closing At the moment my app will attribute a close affairs and associated comment But There's a whole lot of things because there's just so much data in github They do have the big data aggregation suite, which is all up on Google big data or whatever they call it that stuff is not readily grokable unless you want to cap out even faster So what i'm doing is trying to make it a more sustainable higher end view of the project But if you're using something like gitlab, then you'd have to use their own systems because all mine does for now is just github Because that's what I use Okay, I think we've got time for one more question and I think I saw one over here Um, so do you think it's deliberate that github takes such a limited like approach to to quantifying contributions? And do you think there's a possibility they'll they'll change it? I think there's definitely a possibility that they will change it um with my research in this I have uh Created a few support tickets and contacted a few different people that I know from github I do know that there may be some change coming However, given this is github. There's going to be a whole lot of other political issues as well given the um State of play with a certain project where they attempted to make a code of conduct a thing and other such issues They are a private company they can do what they want, but they're not going to do something that's going to damage their branding So I can't tell you if it's going to change But there are people that are concerned and want change Okay, and with that that is all the time we have if everybody could please thank katie mclochland for a fantastic talk