 All right. Awesome. Welcome everybody to the April edition of the wikimedia tech talk This month's edition will be sharing global opportunities for new developers in the Wikipedia community the presenter is the Shristi Sethi and She's a developer developer advocate the technical engagement team at the at the foundation This will be stream 5 over YouTube and you'll be able to put questions in the YouTube chat box as well as ask questions in the IRC channel for this month's talk, we're going to go ahead and collect the questions and then Do written answers and post them to the wikimedia monthly tech talk page In the area that is for this talk So as always we have these talks monthly. They're open to you all members of the wikimedia technical community We invite you to reach out if you have an idea for a talk We'd love to hear it and there's a link here at the bottom Without further ado Here is Shristi Do you see my slides? Yes, we do Hello everyone and welcome to this tech talk. I'm Shristi and as Sarah mentioned I am a developer advocate at the wikimedia foundation Through my work, I get to work a lot with new developers mostly through wikimedia's participation in mentoring programs like Google summer of code and Today I will be sharing with you some opportunities. We have for new developers in the wikipedia community So this is a bit about today's talk agenda. I will talk about wikimedia ecosystem first and highlight a bit about our technical community and Then I will share with you some share with you some technical areas and projects. We have four new developers So before I dive into wikimedia ecosystem, I want to confuse you for a few seconds here Some of you might be familiar with all of these logos on this slide and if so, that's great And it's really wonderful for those of you who don't know or Folks who are external to the organization. I want to share that all of these They are different but in a way also connected So wikipedia needs no introduction and then media wiki. It's the software behind wikipedia and Also, it's sister sites Then wikimedia foundation it's the nonprofit which is based out of San Francisco and it supports and promotes wikipedia And it's and it's just a project that I will share. I will share with you shortly and Then we can lend it to you because it's also a quick collaborative editing online so all the wiki sites are projects that you might have heard or projects that are associated with wikimedia they have all stemmed from the same concept and So what is wikimedia movement then wikimedia movement is interesting because it's everything it encompasses all these projects support structures and thousands and thousands of volunteers who help us do this work and Everybody is working towards this single vision of a world in which every single human being Can freely share in the sum of all knowledge One of our volunteer contributors They have made this visual representation to show how different PCs are connected together So if you look at it wikimedia foundation is really at the center. It's the key organization that owns the projects that you have heard and Then not only that it recognize recognizes the work of a lot of different organizations that are Helping us support the work of wikimedia in their own communities And all of this the work that we do on Projects and the work we do as part of different organizations is possible with support from volunteers We also have trademarks that anybody can use with permissions from wikimedia foundation if they're interested in Promoting wikimedia's work in their community but we are not wiki leaks and If you may have noticed then it's not even a wiki Lot of people ask us this question how we are related to them. So we are not and Then we also are not directly associated with other wikis that you might have heard There are over 30,000 wikis that use the media wiki software, but we are not really Connected with them in any way So this was a bit about the wikimedia movement Now I will highlight about our technical community a bit So you might be wondering who makes technical contributions to wikipedia community So last year we gathered these statistics So this is a geographic distribution of wikimedia volunteer developers And if you look at this map, you will see that a lot of people from Europe, Asia and North America They contribute to our projects We see less participation from Africa South America and Oceana But we really want to see more people from these regions as well and These are the statistics that I find very similar to what has come up in the stack Overflow developer survey as well in the past couple of years And this is a bit about our technical contributions overview also gathered last year so as for this we saw around 413 contributors who made 45,000 plus commits in thousand plus repositories and Out of these 413 contributors 60% were volunteers who contributed 18% of commits to wikimedia projects and this is a little bit about our new developers So every quarter we see somewhere between 40 to 60 developers who contribute to our projects So what really makes wikimedia volunteers contribute? So as in any free and open-source software project people motivate people contribute because they have different motivations Sometimes it's because they believe in the vision of the project sometimes It's because they want to grow their skill set and work on a side project outside their professional work We see a lot of people who say that they grew up reading wikipedia and now they want to give back to the community and help our editors Do their work more effectively? So lots of different motivations really that make people to contribute to our projects some people they stick for short time some stick for longer and Some never really leave and for them wikimedia is their home Now I want to share with you a short story So when I first joined the wikimedia foundation a lot of my friends they would ask that what really is remaining in wikipedia to be developed and This was also a question that I would ask myself that My team does a lot of work Around developer outreach, but but for what like what are some projects for which we need? volunteer contributors and for which we need help and It was only when I joined that I learned that there is a crazy world out here There is lot going on there are lots of interesting project projects and technical areas From early to thousands if you see wikipedia site today how it has evolved in all these years We have a lot of sister projects that have emerged and Now we are in 2019 About the future we are thinking about ways in which we prepare ourselves to serve billions of people who are going to come online and To do that work. We need help wikipedia needs your help and so now I want to share with you about contribution areas that we have for new developers and Also share with you a step-by-step process for you to make contribution to a wikipedia project So just like in any free and open source project Contributing is a four-step process So first you pick a task related to a wikipedia project or technical area Then you set up the development environment Once you have set up the development environment, you choose and solve a task and finally you submit your code changes So I want to start with step one first which is about a picking a task related to a wikipedia project or technical area and To me this step is the most daunting one because there are way too many options to choose from So once you have made that choice, I believe that things get a bit easier after that So now I want to talk about All the projects that we have and also give you an overview of our technical areas So first I'll talk about wikipedia projects Again wikipedia needs no introduction Then we have wikipedia commons and wikidata. These are two of our very popular projects these days You may have already heard about these projects But maybe you don't know that they are also connected with wikipedia So what is wikipedia commons? it is this repository of audio video and media files and wikidata, it's the central repository of data that is being used on all wikimedia sites and Then media wiki. I've already talked about it earlier It's the software that not only powers wikipedia, but all these projects that you see on this slide So all these are popular projects But then we have other projects which are not so well known But they are popular in their own communities For example, we have wiki versity, which is a collection of learning resources for educators and learners Then we have wiki voyage, which is a guide used a lot read and edited a lot by travelers Then dictionary, it's a free dictionary Then wiki code. It's a collection of codes. We have wiki books, which is a collection of open books Then there is wiki source, which is this digital library of textual sources wiki species is a free species directory and so on So this is a very high-level overview of all the wikimedia projects we have Now I want to share with you a little bit about our technical areas So these are all the areas we have at wikimedia Now some of them are maybe part of the projects that I just shared with you or some of them are Connected in one way or another with the projects So as there are a lot of these I'm not going to talk about each one of them But we'll share with you some of these areas which we think are newcomer friendly and are easy to start with Now if you're wondering why these blocks are laid out in the way they are laid out on the slide So I'll just highlight that quickly So if you look at for example all the blocks that are media wiki for example media wiki core Extensions and skins as they are similar and connected. They are stacked on top of each other and Then we have templates sketches and user scripts and bots which span across Multiple projects, so they are laid out in vertical fashion next to all things media wiki on this slide So now I will share with you about some of these areas and also give you one example of a wikimedia project that Relates to that area So the first one is media wiki extensions so extensions they help us extend the functionality of media wiki software and And Currently there are around two thousand extensions that are registered on media wiki.org This is a very newcomer friendly area You can help by either improving and an existing extension or help by developing a completely new one So an example of media wiki extension is this revision slider extension that lets you to browse history of a page interactively So if you go to English wikipedia and visit a history page of an article, you'll be able to see this extension in action So if you decide to contribute to anything that is Related to the media wiki software, then you need to be familiar with PHP and JavaScript So next I will talk about the desktop apps There aren't that many desktop apps we have but there are two well-known ones that I will talk about So the first one is huggle Which is this tool that is used a lot by our content moderators to quickly load the revisions of a page being able to make a comparison between the revisions and then also reward the edits that are problematic if You want to contribute to this you will need to be familiar with C++ and Qt which is a C++ GUI framework and Then we have another desktop app which is Keevix which is essentially this offline web browser for Wikipedia and This screenshot that you see is of Keevix running Wikipedia on a one laptop per child machine then moving on to Mobile apps we have quite a few mobile apps But I think that we have very few out of those that are official We have mobile apps for Wikipedia both for iOS and Android And then we have one mobile app which is for Wikimedia Commons It is a very newcomer friendly app and also purely run and maintained by our community members So this using this app you can upload photos to Wikimedia Commons from your smartphone And if you're interested in mobile development, then that's something you might want to look into and There is this vast area that you have for new contributors to explore which is tools and bots So a lot of volunteer contributors they write tools and bots to help make the work of editors easier So I will give you two examples for this So for bots an example is this citation bot that helps format and expand citation data and Then an example of tool is this programs and evens dashboard that is used by Educators to run courses and editathons on Wikipedia around Wikipedia And if you decide to write your tool and bot then you don't necessarily need to stick to a programming language You can pick your preferred programming language and the interesting thing about this area is that you can use dedicated cloud services that Wikimedia provide to Be able to host operate and maintain Both tools and bots So now I want to talk about analytics. This is a very fancy schmancy area. That's how I see it now in this space you can make cool visualizations and the process to To do that is that you make use of media wiki APIs which are open for anybody to use along with data that you get from Wikimedia sites To be able to make a visualization like you see on this slide not only just visualization But also help make data-informed decisions And so this visualization that you see here is generated using the same process And if you go to this resource, which is linked from the slide see also org You will see a bunch of different cool visualizations that have been made using the similar process machine learning is is the buzzword as you might know and That is probably why we also get asked this question a lot that what are some opportunities we have for new contributors in this area We don't have a lot of projects for new developers, but there is one very cool project that I want to share with you So there is this service called oris which is an acronym for Objective revision Evaluation service that helps evaluate whether an edit made to an article is a good quality edit or a bad quality edit So as you see on the slide, there is this picture that shows the edit quality flow So edits when first coming through the internet are are not filtered, but when they are passed through the oris service You start learning a little bit about their pattern whether the edits are good or they need review or they are damaging edits So if you're interested in contributing to this area or the service Then it's written in Python and that's what the language you need to be familiar with and then we have Gadgets so gadgets are similar to extensions that I Mentioned to you at the beginning of this this technical areas overview and They're similar because they also help you to extend the functionality of the software But they are different because the code for gadgets they live on Ricky So for example, if you want to have a personalized experience of the software and see for yourself What is the reading time of an article? Then you can just write a little script and then inject it from point side to media wiki And you will be able to see it in action and there is this example Which is on the slide which is of a gadget called hot cat that lets you to add Categories to pages on Wikipedia So if you want to see the nitty gritties of this gadget or what code is in there You will be able to see it easily. It's somewhere on Wikipedia the code for this gadget now although we don't have dedicated infrastructure for gadgets To allow contributions for new contribute from new contributors But the way I see it you can help either by improving existing user scripts or gadgets that are out there or if you are part of a wiki media chapter or a user group or You are a part of a language Community then maybe you can help address the technical needs of the community by writing user scripts and gadgets and One thing is that when a user script is considered to be beneficial for the rest of community Then a site administrator they promote it to a gadget and that's something I forgot to mention earlier But that's how these two user scripts and gadgets are connected So these were about all the technical areas for which I could share with you some concrete examples But we also have other major areas for you to look into But for all of these areas there aren't maybe concrete examples to share because they apply to all the projects So you can help apply wiki media design principles to other projects We have tons of docs that are outdated and need attention. So that's also an area to look into Or if you speak a language which is other than English then you can help translate our docs that are on media wiki.org and If you're interested in the quality assurance space, then you can Help write test cases or report bugs or help test features of our software projects so this was all about our Technical areas and projects a very high-level overview. You can explore them in debt later after this talk So once you have decided which project you want to contribute to the next step that follows is setting up the development environment Now there are different projects and they have different contribution guidelines some projects might recommend you to set up a specific IDE or Set up the development environment in certain ways But I'm not going to go into the detail This is just for you to know that that's what the step would follow and every every for every project There will be different guidelines But one thing I want to mention here is that Sometimes what happens is that Our new contributors that think that all the things we do is media wiki related So they start setting up the development environment of media wiki first Which in itself takes a few hours only later to realize that that's not something they wanted to contribute to So that's to keep in mind To first pick the project and then maybe start setting up the development environment So after this comes the step where you choose and solve a task so for task management we use fabricator and The task in assignment it works very similar to like it works in any free and open source software project if you're interested in working on a task you express your interest by commenting on it and maybe ask specific questions and Then you you can assign the task to yourself and that way communicate that you are working on it so that nobody else Works on it on the side Now the recommended way to To choose and solve a task is to first Take a look at the good first bugs that is Associated with the project you have decided to work on and That way you get comfortable with the project and after you have fixed a few good first bugs then you can move forward and maybe pick bigger and complex features to work on So after this step comes Submitting your code changes Now if you decide to work on anything which is related to media wiki then you will Then whenever you are done making your code changes It will first get uploaded to this tool that we use for code review called get it and then as You do that a few reviewers will be assigned to your patch They will take a look at your changes and maybe give you some feedback on your code which you can then incorporate and When all the reviewers are happy then one of them decides to merge your changes But this is for all the projects that we have Hosted in carrot We also have a lot of projects that are hosted on github So if you are working on any any such project then you skip this Process, but instead the code review happens on github so this was all about the process you would follow to make contribution to a project and Once you have contributed to one project you are bored of it and you want to Move to another project. That's totally possible. You just need to repeat step one to four For a different project. I want to now share with you this new developers guide that we have so all the technical areas and projects I shared with you in this talk are You might be able to explore them By going to this resource Here we are showcasing a list of newcomer friendly projects with With like mentioning what are some skill requires who the mentors are and what are some recommended tasks to work on There are also a bunch of Resources for newcomers that you can explore by going to this resource So this would be your go-to resource if you decide to make a contribution and you will find everything in this single resource And I also want to highlight a bit about our outreach programs and events So Wikimedia participates in three mentoring programs there is one which is a Google summer of code it is for university students and Outreachy which is open to everyone but the difference here is that you not only get to work on a coding project, but you can Work on anything which is related to translation outreach research, etc. And Then we have Google code in which is for high school students So the advantage to participate in Wikimedia's mentoring programs is that you get an opportunity to Work with a mentor on a three month long project Besides these mentoring programs We also have International hackathons that takes place to hackathons takes place in a year and we offer scholarships To new developers so that they are able to attend these events meet with community members and also be able to work with them for three days So this was all about our technical areas and projects and Wikimedia ecosystem All that I shared in in this talk the resources are linked from the slide that you can look into later and That is all thank you very much for listening if you are a new contributor who is watching this talk Then I look forward to your contributions to Wikimedia projects And if you have any questions, I would be more than happy to answer you can send me an email my email address is on this slide and Now Sarah will explain to you a little bit about where you can reach out for more questions right after this talk Thank you Thank you, Shristi. So again this talk. We're not going to have a live Q&A But I do invite you to go ahead and either leave your questions on the IRC channel or on the YouTube chat What we'll do after that is we'll collect the questions and Shristi will answer them You can also email her directly and then I will post the questions and answers to the Me that Wikimedia monthly tech talks page under her talk for the month so Thank you Shristi for speaking today was a really awesome talk and yeah, you look forward to having questions and Seeing you next month. Oh and one more thing too Everybody is welcome to propose talk so Please do do so whether you're a staff member a volunteer member of the technical community We really look forward to hearing About your projects and your knowledge as well. So feel free to reach out. All right. Thank you