 Thank you very much. Welcome to the community dev room or welcome back to the community dev room. We are now pleased to introduce David Moreno who will be talking to us about the analysis of developers in the network of developers in the community. So thank you very much for being here today. Okay. Thank you. So thank you for coming. Thank you to Laura and Leslie for organizing this house on dev room. And well, let's start. I'm David Moreno. I'm front-end developer at Vitergia and I'm going to present you how to analyze the developers network in a community. So the first step is to get the data. How we can get our data of our community. So I'm going to introduce you Grimoire Lab. Grimoire Lab is an open source platform, free open source platform for software development analytics. Grimoire Lab is a platform for data gathering for these data sources like Git, GitHub, Jira, Slack and so on. For data enrichment like affiliations, merging identities, you know that one person can have an account of Google and an account of Microsoft, but this is the same person. So we can merge these two identities in one. And finally, the data visualization. So we work with Elastic Sets and Kibiter that is a soft fork of Kibana. And we are going to focus on data visualization. So as I said, we work with Elastic Sets and Kibiter that is a soft fork of Kibana. Okay. Okay. Okay. Sorry. So we are focusing on Kibiter. Again, it's a soft fork of Kibana. Well, how many of you knows Kibana? Okay. That's good. Well, if you know Kibana, you know that this is the typical dashboard where you can have bar charts, pie charts, tables, line charts, but what is this? Well, it's a network inside of Kibana, a network visualization. Well, how can we get these cool networks? Well, there is a plugin of Kibana that is called Network Plugin that allows to visualize the data in a social network way or a graph like the other dashboard. And this network plugin is an open source project that I started when I was finishing my degree thesis, you know. And what is the plugin? The plugin has a page, a website, and of course, it's allocated in GitHub. And inside the GitHub, you have the installation step. I mean, if you have a standard Kibana, you can install it following the installation steps that are in the rhythm of the repository. But if you use Kibana, the plugin is completely integrated and installed by default. So, the plugin is available also in Kibana 6.1.0 or upper. And, well, we can build networks like this. So, we have our Kibana, we have our plugin. Let's build some networks. The data that I'm going to show is data that belongs to our project, Grimoire Lab. So, it's data from Git and I'm going to build networks, develop networks relating authors with repositories and so on. I'm going to show you. So, we have our Kibana, our Kibiter. So, the steps are click on visualize. Click on visualize again if you have visualization open. Let's click on create new visualization. Go down to the plugin here in the top order network. Let's click. Let's select the index pattern that is the data. So, we are going to select Git in order to build the developers network, you know, authors and repositories. Let's click on Git and now I'm going to here. And that's it. Well, what is the first step? We are going to define the nodes. So, let's click on node. Let's click on file. For instance, the first nodes will be authors. Author name and why not 500. Let's click on the play button and now we have our nodes but without relation. Each node is an author. Well, we have our authors. Let's make more nodes that are the repositories. So, click on add some buckets. Click again on node. And now in the field we have to select repository. That is called repo name. Maybe 50 repositories for each author. Let's click on play. And now we can see a cool network. And if you increase the zoom, you can see that the circles are authors and the boxes are repositories. And it has a relation if the author contributed to the repository. So, why this repository has this amount of contributors? Because this repository is Kibiter. And Kibiter is a fork of Kibana. So, Kibana has a lot of contributors. Well, we have our network and we can see useful information like who is the person like... Is the bridge between two groups like this? For example, this person is a bridge between these two groups. So, we can know how to manage this kind of information. And maybe if you click on a node with a lot of relationships, you can move it. And you know that this person works a lot or maybe is the biggest contributor of the community. So, we have our network. Let's customize it. What can we do? Let's change the size of the nodes by a metric. This is our developers network. So, let's change the sizes by the number of commits of each author. So, let's click on nodes size. Let's add the aggregation count that is the number of commits. Let's click on play. Now we have different sizes and you can see that who is the biggest contributor of the community. You can see that big node is the biggest node and also has contributed in all the repositories, I think. So, maybe he is a little bit stressed. So, we have changed the nodes size. So, let's change the size of the edge. So, let's click on the metric again and change the size. The same, the number of commits of each author in each repository. Let's click on count and let's click on play. Now we have different sizes for the nodes and for the edge. And well, this is a good network. I like it. You can now have the distribution of your grid community of your project. Well, but I want to customize more. So, let's change the color of the nodes. For instance, let's change the color by their organization. Okay. Let's click on a sub bucket. Let's click on the fill node color, node color. And let's select the fill organization that is org, author, org name. And let's select one organization per author. Let's click on play. Okay. Don't worry. And let's try again. Offer a name. One. Okay. I can't. Maybe it's the memory of the docker instance. So, let's try again. Okay. I think that's, yeah. Now we have different colors in the nodes. Which colors are defined? Well, we have the legend of colors. You have the different organization and the color of each organization. So, you can see that these nodes have the same color because this is my team and it's bitter, yeah. So, we have the same color. And, well, we have our cool network. So, I think it's interesting. So, I have put in the slides a user guide in order to, if you want to try it at home or in order to play, in order to broke my plugin or whatever you want. So, you can follow the steps or steps or later if you want. And, there is more options in the plugin in order to customize more the network. And, you can customize it like this, for instance. A little bit of structure of the plugin. This is the structure of the plugin. The plugin is developed in Angular. So, if you know Angular, there is a controller, there is a template, but it's more technical. So, I'm going to pass it. And, well, I'm going to show some use cases for this network. And, well, the first use case is Git network. Oh, I closed it. Okay, the Git network. That is the same network that I've just built. So, you have an entire dashboard with information of tables, of bars, pipes, but you also have the network. That is useful because it's easy to know how is the distribution of your community, I think. It's very clear. So, if you want to filter in one field, for instance, Peter Jia, the plugin will reload and now just show information about the field. But that's not all. So, we can show information about, for instance, a Slack community. So, this is funny because with this kind of network, you can see who is the most talkative person in the community. So, you know, did you see the biggest node? So, he probably is the most talkative person in the community. That is funny because you have different sizes, you have different channels, the boxes are channels and the circles are users. And, well, if you put a task cloud with the most typical words that we use, you know, about morning, something. That's words. Yeah. These are emojis. So, the reactions. And, well, but that's not all again. We can analyze it, Slack, but we also can analyze it half, it half, it bucket, Jenkins, Jira, and so on. Maybe, why not? Marvel. Marvel comic, why not? Well, this is a network that relates authors of Marvel comics to the comics. So, you can see all the networks with the task cloud, with the most, you know, the most important author of Marvel and, well, it's useful information. And, you can, if you have data on elastic sets and you have a Givana with the plug-in, you can build with this network whatever you want. And, there is a user guide. There is a repo. If you have any issue, any pull request, any question, whatever you want, please send me an email. Send me an email, open me a pull request, whatever you want. I really appreciate it. And, well, I think I'm done. So, do you have any questions? Yeah. Yeah, the comic? Yeah. You have to have an elastic set with data because Givana runs with elastic sets. So, this is a plug-in for elastic, but you can use Grimoire LAV, any data, yeah. But you can use Grimoire LAV tools and you can upload your data. Okay. Okay. Any other question? Okay. The knowledge of the graphs. Okay, what's the question? Uh-huh. What actually, no? They produce the graphs. Sorry? Well, it depends on the data, you know. If you have, for instance, I built a network with authors and repositories. You can now, who is the biggest contributor, but if you use Slack, the most alternative, you use a ticket tool, who is the ticket, who are still open. So, it depends on the data. Did you have any question? Please send me an email and... Yeah. Yeah, yeah, of course. Yeah. Yeah. Yeah, yeah, of course. Yeah, of course, but... Yeah, but I don't understand how is the meaning of... What is the meaning of... I don't think it probably will influence the development and the contributions of your projects. Yeah, but... It's not making too much people. It might be made to improve the community. Yeah, yeah, of course. Yeah, this is the aim. This is the goal. Yeah, yeah. Yeah, but it's funny to know, to see the biggest note. Maybe, you know, maybe the biggest note of the developer's network is the CTO of the company that has to manage all the repositories, you know. So, it's more like an overview of your community in terms of the key data or slack data or whatever you want. So... Is it that there is a pattern for researchers because this kind of information can be useful to maybe find new patterns in networks... Yeah. Okay, sorry. Yeah. You mean to find patterns in the graph without different communities, no? Yeah, of course. Okay, I'm going to ask where... So, you can build... You can save different project data in one index of elastic sets. This is more technical because it's related to elastic sets. And now, in Kibana, you can take this index with all the data and build a network like this. So, I think it's more easy to see a pattern with managing all the data in one index. Like, if you know elastic sets, like aliases, you know, maybe things like this, but if you got any question or more technical question, send an email. We are in the H building. We have an standard more lab, so if you want more information, please come with me. You're welcome. Yeah, of course, yeah. But in Kibana, you have a time picker in the top right corner that you can select the data from last five years, last 20 days. You can manage it. So, okay, look. Look, I'm going to show you here. We are looking last two years, but you can change it for the last 90 days. So, the last board will be refreshed and now we have the last 90 days of the data. You're welcome. Okay. Thank you.