Hello and welcome everyone. I am Kiran Rajput.  This presentation is divided into five sections. Introduction to Confluence, National Virtual Library of India, Space on Confluence, Team Space for Each Individual Team, Daily Worksheet, Activity Sheet, Introduction to HipJack, and Question and Answers. These are the Confluence users worldwide, Microsoft, Essential, Facebook, these are the users of Confluence. Imagine a working environment where you send very less emails, attend very fewer meetings, and still create better results. With Confluence you can. Where every team gets a space to create, share, discover, and discuss contents in the forms of files, meetings, diagrams, projects. This brings everyone together at one place. Now what is Confluence? I hope everybody sitting here must be very curious to know what Confluence is, and how Confluence will be helpful in our day-to-day activities. Confluence is a collaboration tool which provides storing, sharing, and storing contents. Confluence also organizes contents in the forms of documents, meeting notes, meeting notes, diagrams, etc. Confluence is a collaboration tool which provides idea into pages and content be created, and where you discover your own content and accessible to your team, and where you take action on your own work which you have created. This process is called a work collaboration cycle where at the end everyone has a voice, information flows freely, and works get done. It has many different uses. It can be used as a knowledge management tool, a social communication, a website, a tool for planning agile development. The main benefits of Confluence are its flexibility and centralized repository of information. Additional benefits of Confluence are administrative features like permission schemes can be set up at different levels. Moving to the next step is the space. Spaces are the collection of pages which have contents. Pages are contained within spaces. Next, moving to the space directory. Space directory is the list of pages that a user has the permission to view or edit. To go to the space directory, choose space then space directly of the Confluence Editor. As we click on the space directory, we see all the space assigned to the users. To choose the space, you are going to use the most. You can mark a star to the right of your space which you are going to use it on a regular basis to make it appear under my space on the dashboard. You can also search any of the space. You can type a part name of the space in the filter list and the related files will scroll down immediately. What are pages? Pages are the primary means of storing and sharing information in Confluence. Pages can be structured into page tree which shows relation between them. You can add rich contents like images, videos, files, links and macros to it. How to create pages? There are two ways of creating page. If you are creating a blank page, you can hit the create button on the Confluence header or you can choose it from the template of blank page. Once you have created a blank page, you will be on the Confluence Editor. Confluence Editor is where you can name, rename your page, add content to it, format and save it. You can add contents like images, videos, meeting notes, etc. and choose preview to see how your page looks like and choose save. Page Templates. Confluence comes with many of the page templates. The template is a predefined page that can be used as a framework when creating a page. Meeting notes, block posts, file list and many more are the templates we have in Confluence. Meeting notes are the easiest way to draft an agenda of an upcoming meeting. You can capture many of the meeting action notes in it, store it for the attendees once the meeting is over. Block post is the easiest way to share an announcement or the status report among your team's member. Block post can be engaging and it can be attractive too like a page. File list is the list of file which you can upload it in it, all the list for your team members to view it. These are some of the templates. You can use it any of it as per your contents. Copy a page. If you need to duplicate the content of the copy, the easiest way is to copy the page. To copy a page, go to a page, space and choose, go to menu and choose copy and you can copy the content of the flag. Rename the page and make other changes in the body of the pages. Choose and save it. Editing a page. As you choose, as you save your page, the page will be in view mode. To edit a page, you have to re-enter the editor and you can edit the contents of the page and you can choose save to it. Conference automatically saves a draft of a copy when you're working on it. There are two ways to resume a draft copy. The first is resuming editing an unsaved page. For that, you have to go to the profile picture, click to that and choose draft and you can choose the draft of an unsaved page and you can start resume editing to it. The next step is to resume editing an unsaved page. The next step is to, when you are adding a page to the same space, conference will automatically ask you whether you want to resume the editing of an unsaved page. So you can resume editing or discard it. To delete a page, to delete a page of all versions, go to the page and choose go to menu and then choose delete and you can delete it, that page. Also, please note the delete option will only appear if you have a permission to do so. If someone has restricted the, has someone has given a restriction to that page, the restriction will prevent you in deleting the page. To delete a specific version of a page, go to the page and choose go to menu, then go to page history and you can choose the version which you wanted to delete it. Page restriction, page restriction allows you who can view your page added pages in a space. Go to the page and then choose the page icon, restrictions icon and you can apply over there viewing or editing restriction to it, who can view and who cannot view the page and apply restriction to it. Move or reorder pages. While creating a page, choose the location icon at the top of your page. If you want to move your page to your parent locations or anywhere else to the other space, you can choose the location and you can shift your page and choose save to it. The other way is like in case if your page is already created, then choose go to menu and choose move. In case if you wanted to move the pages among the child pages, then you can use the tab on the left hand side of the set page location icon to help you find this new space and then you can click to the reorder, reorder and choose save to it. Add search for labels. Labels are tags that are useful to finding out your specific page. To add a label to a page, go to the page and choose the added icon over here and you can add your labels and choose add to it. Label and attachment, there are two ways of attaching a label. Sorry, there are two ways of attaching labels to an attachment. First go to the page, choose the go to menu and then choose attachment and you can attach it over there and a label. The other way is to choose the space and choose space tool here, then choose contents and click to the attachment. You will going to see all the list of attachments listed here. You can choose the label and save it, change the label and save to it. Search for labels. In case if you have any specific content like you can search it by label text, in case if you are searching for any specific pages like annexures, you can type label text on these Confluence search field and the related pages you can see on it. Search by name. In Confluence you can also search the document or file by name. In case if you are searching for any of the moc files or moc papers, you can enter in the Confluence search field and you can see all the related papers scrolling down. Next come the space sidebar. Space sidebar is the page tree. It's a hierarchy list of pages that you are going to find in Confluence. It's also like when you create a new page by default, you can see it in the space sidebar. Versioning, it maintains versions of the documents uploaded and create page created. In case if you have made any of the changes in the documents and you have saved it, a new version will be created in it. How to view a version? Go to the space and choose go to menu and then choose a page history and you can view versions there. How to compare versions? Go to space and choose go to menu, then page history and click to page history. We'll see the versions over here. You can select both the versions and select compare versions here and you can see all the versions. Next coming to the dashboard. Dashboard is the front page of the Confluence site which provide access to the information and information that are important to the users. It also the first thing that the user sees on logins. Dashboard can be accessed anywhere from the site logo of the Confluence header. This was the end of the introduction of Confluence. Moving to the next section is the home page of NVLI. This is the home page of National Virtual Library of India. We have uploaded all the documents here. NVLI related all the documents over here which becomes very easy for others also to access the documents. This space is accessible to all the managers including the Partnering Institute also where they can upload their pages, view, edit in their respective pages. Moving to the next session is the team space. We have given every team a space where they can upload their documents. This is a private space to the team team members. We have a team details here. You can upload all your team details of the members which become very accessible to everyone to view and work on easily. We also have uploaded three pages like meeting notes and then reports and documents. In reports and documents also you can upload all your related documents to it for your team to view it and work on it. This is the meeting notes in case if you if you don't need the meeting notes you can delete this and you can upload any of the templates, page templates as per your contents. Daily workload report. As you are everyone aware that doccubiqui is no more functioning so we have configured in Confluence so that everyone can update their daily activities. This is the NVLI co-ordinating team where all the details of the members have been given in this. You can upload all your information here like employee code, designation, project titles, emails, contact number, everything here for an easy accessible. The next we have the work activities. In this template we have already started putting all our activities here from July onwards. You can also follow this template as your wish if you want feel like using and some other templates you can do also that. Suppose if anybody has recorded any of the work activities they have downloaded in any of the documents files they can upload over here like before June or before July whatever activities they have done they can record it over here. This was the end of the sessions. We are introducing a new features in Confluence that's a hip chat. My colleague Yugansh will carry forward to it. Thank you ma'am. So hello everyone. Most of you would have used Yahoo Instant Messenger in the past and most of you must be using I mean all of you must be using WhatsApp. So it's kind of a WhatsApp for office or a Yahoo Instant Messenger for office. Most of the features are same and some are different. So hip chat is a web service for internal or private chat and instant messaging. It has several advantages like there is a one to one private chat conversation you can have on hip chat. There can be a group chat specifically for your team. You can create a two percent group, three percent group and chat. Usually what happens whenever you communicate through email there is a lot of formal language. You draft the email in a very formal language and it usually takes time. So information does not flow very freely and there is no faster feedback and information sharing. So here instant messaging provides us with this advantage that irrespective of whatever is the formal language we can have an informal communication and get a faster feedback on certain things which we want to share among our team. So that can be done. Another thing is that like we have created an individual spaces for all of your teams. So whatever activity you do within your space those notifications can be configured to hip chat rooms. So like in Yahoo Messenger there were different rooms. Similarly here in hip chat we can create dedicated rooms which can be set public or private for different purposes. So what we have done is we have created rooms in hip chat for each and every team. So if any change happens in the confluence space of your team then those notification and updates appear in the hip chat room respective rooms. Here you can also share a lot of files. Your chat history is always searchable. There is an inline image viewing. So if a team while the communication shares some images you do not need to explicitly download it and view. There is an inline image viewing. So you can view it in the chat window itself. And another thing is that most of the email messaging systems are not very responsive. Here hip chat is supported by most of the platforms for the desktop as well and for the mobiles as well. It's being supported by Android and iOS smartphones and tablets as well. So you can almost access hip chat from anywhere. It also integrates with many third-party services such as GitHub, MailChimp, Heroku. So for those teams who like there may be some of the teams which are explicitly into the software development part. So there they can configure all their GitHub updates to a dedicated room in hip chat and all the GitHub notifications will appear in that room. We have hosted hip chat on this URL. So we will be sending email invites and you will have to sign up and join your respective teams rooms and you can start using hip chat. This is the very first screen you get to see when you log in to your hip chat account. Then you need to click on launch the web app. And when you log in, you get to see on the left to which all rooms you are connected with. So here like since I have logged in from the admin account, I get to see a lot of team or else I will only get to see only to the team which I am connected with. As you can see there is a lock appearing over here that it shows that this room is a private room. So only those members who have access or invites to that room will be able to join. So this is a scenario where I am editing a meeting note in my confluence space. You can see NVLI PMO team. This is the space name and this is the name of the page. Here I am just editing something and when I, sorry, when I click on save, I get a notification in my hip chat room, an instant notification in microseconds. So here you get to see that who has updated the page, what's the page name, when the page was created by whom and what is the name of the space and here you also get the URL to the page where the change has happened. Now this is another major, sorry, major advantage of confluence is that it facilitates or it provides a cross-team collaboration. So in order to provide cross-team collaboration here among all the DVP teams, we have created a space named NVLI at IITB documents. So here for each team there are individual pages created. You can see this is the name of the space, this is the home page and for each team under the page tree there is a page being created. Here you can upload and share any documents or reports that you think must be shared among all the teams. You can always create, edit and share a page and do all the functions provided by Confluence which are, most of them are self-exploratory permissions. Now since this space has access to most of the teams and all the team members and managers, we have restricted the delete permission from all the users so that to avoid any accidental damage, accidental deletion of file and any activity performed in this page or in every page is being recorded and is being logged somewhere in Confluence. So we request that any mischief should not be done. Another thing is that whenever you create a page in any of the space in Confluence, do remember to choose the right parent page. For example, if you want to create a page, sub-page under accounts team, so do remember to click on accounts team first and then create a page. But accidentally if you create a page somewhere else other than your desired hierarchy, you can always choose to move it to the correct location. So as I said that we are facilitating cross-team collaboration and so that we can share all the documents at one place. Even this presentation slide has been already uploaded under our teams page, NVLI project coordination team. So you can simply go and download these slides named introduction to Confluence in the space named NVLI at IITB space. To all those members and teams who have the access to Confluence currently they can all right away view this file. These are some of the references. There are many small features which are self-exploratory. So we suggest you to start using it and let us know if any customization or assistance is required. Other than that we have received team member details from some of the teams to whom the access has been provided both for Jira and Confluence as per their requirements. For other teams I request that as soon as possible please send your team details so that we can provide your credentials and we can set up Confluence and Jira for you. Now some of the teams are using Jira. Some are not. So it's optional as per your teams requirement as per your nature of the team. So I think most of the software teams might be interested. So one of the team I think blended MOOC team requested us Jira software setup. So we communicated them all the credentials and with the basic setup of the Jira. So other than this if there is any query we are now open to question and answer session. I know doubts may not generate as of now because none of you have gone through using the system actually. So you can start using it even if there is no doubt right now and most of the doubts are not very typical which may not be solved by you as individuals. So if you come across any doubt you can always write us at nvli.itb at gmail.com and we'll be happy to assist you and help you. Yes so in Confluence there is no storage limit for documents okay and in HipChat there is a storage limit up to 5GB of file sharing you can do. Could you please explain in the details just demonstrate how we can create how we can set the permissions right now. You can do this. The permissions are being already set we have taken care of everything. This would be given to the manager which task is important what permission I have to give to the someone so that every time we will not call to the your team that this document is required and these are the permissions required. So how we can set. So we understand your concerns but like. The question was specific to Confluence. So that would be better. Yes. So I will go through a live instance of the Confluence. So you'll get an idea of what actually is being done. So this is my home page okay right now I have logged in as an admin account so I will see most of the things okay yes sorry. So as you can see this is my home page even you can there are lot of minor minor features which you can explore by your own like I have for easier navigation I have created this space and set as my home page. So each of you can create your own on page or any space to which you have access you can set it as your home page. So currently there for the NVLI project these many spaces are being created. This is specifically dedicated for the worksheet logging worksheet and these are individual private spaces for all the DBP teams right. So the spaces which are relevant for us as DBP staff I'll go through those spaces first. You can always choose to see a list of spaces through the space directory. So this is the very first space about which Kiran mem briefed all of us. So this space is shared with mostly with the senior managers here, managers here and all the NVLI partners which are CDAC, IGNO, RRLF and NKM. Here all those documents are uploaded and we can upload. So in this space you cannot create anything because this space is being taken care by the admin by the conference admins. Here you can always be updated about what communication is going on in the NVLI project. So here all those documents are uploaded and here you have the view permissions. Other thing this is the second space which is for the cross team collaboration. Here if you want to create something you can go to your respective team. Okay then you have to click on the create button. You get to choose so many paste templates. Now whichever paste template is relevant to your team you can choose that. For example I'll choose the meeting notes. I'll click on create by default it takes the today's date and I'll save it. Now I've got a template of a meeting note. I can always choose to edit it, fill in all the details like who were the attendees goals. I need not to explain these all things and then click on save. So all these things are for this document. So see we have avoided for you to set permissions. We have already set some permissions which we think that are sufficient for this space and this page. Now if beyond that you need that this certain permission I need as a manager or as a user I need this permission. I need not be dependent on system admins for that. Then you may write just for that and we can provide you that permission. Like by default you all the users do not have a delete permission. So in order to avoid the accidental deletion of any of the page or any of the documents. So similarly there are other permissions as well. Sir here see this space is specifically designed for cross-team collaboration. So here we need not to hide anything. So here this space is dedicated for cross-team collaboration and sharing of the documents. Now in case of individual spaces for your respective team we have given all the access to you. You need not be dependent on us. So for example if this is the space for eStudio team. Here these are the permissions. I will go through you go through the permissions as well. So to start with we have created only some three sample pages for you. You can always choose to delete them or add new to them. Meeting notes reports and documents team details. So ma'am as you asked that how you segregate the project roles. So here we have like eStudio team we have categorized into three groups. eStudio managers, eStudio members and eStudio assistant project managers. And so these are the permissions. Now this space is dedicated for your team. So you need not be dependent on the confluence admins for any of the permission. So here we have given you all the permissions that every user can view, every user can add or delete. So the universal for your space and not beyond that. Under your space for any of the document you can choose to put access restrictions or or you can provide access by your own. So in that case. Take a specific dedicated space for all the managers and there in there you can upload or share documents. And within that space will give you the permission sorry you the access to set the permissions of that document or each document right. Suppose I have to create 10 documents today then fight tomorrow. Every time nobody will call to the PMO team. Sir, I have a comment is required that permission. I understood and I have proposed a solution to that. I will communicate with you over the mail. That can be done. We will be creating a dedicated space for managers and there we will be giving all the managers access to you know put restrictions over a document or remove restrictions over the document. And there if we create a dedicated space you even do not need permission to put an access. So there is a lot of customization possible but see since we have not started using the tool as of now we do not know actually that what's your need what your needs are. So as you will start using it you just communicate with us over the email or over the phone will prefer email because then there is a record of what you have asked from us. And then we can customize it for you. If you want to see I can also demonstrate how notification appears in hip chat totally optional. Okay so no more questions. So for logging the activity or the daily work log we have created a dedicated space named DBP staff worksheet here since I have logged in from the admin account I get to see all the teams but if you log in from your respective account you will get to see only your team. So for example this is the FRG team and this is Sir's account. So here since you have not provided access as of now we don't have your team details. So we have created a template here you can choose to edit. Now this will be edited only by you. We have made sure that we have set all the permissions with respect to each individual users in this DBP staff worksheet space. So no other user can edit your actually time sheet. To start with we took. So this is our teams page. First of all this page was to upload all the work log done before July 2016 if you have you know logged it some elsewhere. So I used to log in log it in a task sheet so I uploaded that for July. Now this is a actually we have by default created this template for you but you may choose to use any other template as well that's totally fine with us. This template is for is actually being used under agile methodology for daily stand-up meetings wherein a user explains what he or she did yesterday and what he or she plans to do over the day he or she enters this at the start of the day. Yeah so this is the filled template. It is. I just want to know that this person has created something. Sorry can you repeat. But I'll show that to you personally because that that for that I'll have to show you the admin admin view. See one thing is that you want to you want to see the updates whatever is being done in your space right. So that appears over the homepage of your space under recent updates. Another thing is that you want to get notified. 200 people that you cannot see everything what they are doing. You just want some high level view of what what is happening and what is is there a workflow mechanism which I can use. Yes something has been done and then I can go ahead. Yes sir like you can see. This is the Enviolite IITV documents home space now whatever activity is going on by each user it's it is getting listed under recent space activity over here. Can you scroll it down. You can see since the inception of this space. Now now can I club it and say that this is part of one activity. I have not explored that actually. Okay but so for example so I I list say five six activities and then the team member actually tags it with that activity. It comes under that and when I want to see what is happening in that that space small activity space I should be able to get the status of it. So I think sir if for this purpose what I would recommend you is that Jira would be the most useful tool where in you can create each activity individually. You can set a certain time estimate for that activity. You can put in a start date and date and you can actually track the progress of that activity being done or being idle and then there you can generate a time sheet report for each activity for each user and there are numerous filters which can be used to generate that. So whatever happens in compliance can this also be fuelled back to Jira. Yes sir. So even most of the teams what they do is some of the software teams what they do is they like when they create BRD or the SRS they create that in Confluence. They have a informal communication that document goes through various phases. Once it is fixed when the BRD requirements are fixed issues are being created right from Confluence to Jira and then they are assigned to certain users. So how do you create an issue here? Yes it's very simple actually. Which space is this? Yeah I'll just so I'm going in our teams space, private space. So like right now I have not I don't have any meaningful example of creating an issue but usually what happens is when we select a text we get to see these two pop-ups. So you can see is it available when I select a text. So for example if I have a BRD and that has that has been frozen requirements are final. So I can just choose a particular text and I can click on create Jira issue. When I click on create Jira issue it redirects it opens me it pops up pops up the create issue screen and I can create the issue in the project to which I have access in Jira. So it's as simple as that. Are you giving Jira access to everybody? Sir it's on you we are as of now giving access to everyone and if you want to like if you want us to conduct an hands-on training session on Jira for your team we are happy to do that. No see if you send if you give access to everybody then everybody people we may use it right. So let them use it and let them see how it works because. Yes sir by default we have actually created dedicated projects in Jira as well for each team and they may start using that also. It's a single sign on yeah. I understand yeah. So the user may just choose to switch into IITB Jira from here. It's as simple as that but like there are teams of different nature different work there there are some teams for them it may not be the workflows are available. Yes workflows are you can create a new one. Yes yes even that can be done yeah. I'm saying it's highly customizable. It's just that we need to know your requirements. Can you do one thing can you send a document describing different workflows available in Jira. Yes yes. Just send it to everybody. I'll do sure. Let's see I mean who of them may use or may not use so let them let them see how it they can use it in their own. Yes yes most of the teams though use a default workflow in Jira but there are numerous others that even those can be used. I'll share I'll share it on the common space in the audience. Yes yes so I'll just walk you through the Jira instance of Drupal vendors. They have been actively using Jira and we have been using scrum boards under agile methodology for that development. So in the previous session I covered that there is a Jira dashboard wherein you can use several gadgets and get to see all the reports in a summarized form. So this is how this is my personal dashboard which I have configured to track what's going in the Drupal development project. So you can see that this is the third sprint running and there are only two days remaining. It's taking a bit time due to slow connection I don't know. This is a created versus resolved issue chart. So here you can see that I as a user I am being given access to all these projects created in Jira. So I'll open the Drupal NVLI project. Now five different vendors are constantly working and logging their issues workloads in Jira here in this project. So you get to see as this is the third sprint running right now. You get to see these many issues are being created and put into the sprint 3. Sprints are a time iteration a time bound iteration to do a task for those who are not aware about the sprint. You can see those issues which are which have been striked out. They are already complete. Remaining are not are in progress. I'll show you how an issue typically looks like when we create it in Jira. And like I introduced hipchat we have been using a similar software named Slack for all the communication for instant messaging here in this project. I'll show you that as well. Yeah. So this is a Jira issue. Now here you can see that when it was created the creator put estimated time is two days later on after completing this task he logged the work as two days. He is the this person is the assignee to which this issue was assigned. And he himself was the reporter. Here is his work log history and all the status can be seen over here. So a lot can be done by Jira. Yes sir. So this is a similar similar software for instant messaging dedicated for Drupal development. Now here for in order to receive a dedicated service request with respect to Jira and Confluence for any doubts all the vendors put their requests over here. You can see that this this request was posted at today at 12 4 p.m. and it was resolved here. So actually instead of writing mails instant messaging software like this helps us a lot. And all the other discussions are being going on here. So here we call them channels and there we call them rules. How do how do I get added on this. I'm also there on Slack. Okay. You are also there on this URL and we are not. No, no, no. Okay. So actually this is dedicated for this Drupal development. So you may always request Professor Sundar and he'll provide you the access for all these channels. So now I'll also show you how these Drupal vendors are being are using Confluence for their communication and all sharing of the reports and all. So for easier navigation our admin team have categorized these spaces under different categories. So when when I click on Drupal NVLI I get to see only those spaces which are related to the Drupal development teams. So as you can see this is space Drupal NVLI docs. Now here they have all the architecture architecture related discussion. They created this page. They have uploaded all the documents, annotations, store structure. Is this available for everybody? No. No. Only to the people who are associated with this development activity because it may not make any sense for other users. They are not. Similarly, like I said that in Sprint they they have daily stand up meetings every day which is time bound and that is for 15 minutes. So this is how you can make meeting notes. So here they do make meeting notes on a regular basis and upload it here. Here they summarize it everything what was done yesterday, what will be done today, blockers if any like that. So this is how it is being used. So it has got a lot of options and a lot of features. Some are self exploratory, some we communicated to you. It's on you how you want to make use of it. So we request all of you to start exploring and start using this and let us know your feedback and your requirements of customization and we'll be happy to assist you. Hello. I have already created a page on my that fundamental. So I would like to know how do I refer in a very nice way. I cannot get citations and what is a way of doing it. You can always. Because I had to write the whole name of the document. Can you check mine? Yes. So sir where exactly have you created that? In the space that you are given. Your personal space? Right. Where that fundamental research group comes? It's an NVLI at ITV. So under FRG, you have created this page. So if you see down, I got a link to those documents. Now these are redundant. These are redundant because it automatically it's maintaining the versions of these documents. Right, right. Suppose I now go and edit. I can actually delete all this. I can actually delete. No, you won't be able to delete. If you go down, go down. Yes, yes, yes. Just copy first and then delete. Not everything. Only the last. No, as of right now, since I am I have logged in from the admin account. I will be able to delete everything. Right, right. Yes, but when you as a user will log in, you won't be able to delete. So the question is, you see the blue thing that is being written the text above towards the end of the paragraph. This. All right. Okay. So you have to give a big title there. Instead of that, I would like to put it down somewhere. Say one, two, three, and then say it is given in this. Sorry, I'm not getting exactly at the point. Yes, yes, yes. Sir, these are mine. I will send them. Yes, yes, yes. These all can be taken care of by us. Okay. Thank you. Thank you, everyone for spending your precious time.


哈啰,新年快乐,祝你新年快乐Lunar New YearIt's a time for us to be fairware to the old and to welcome the newIt is also a moment filled with happiness and a hopeMy favorite Chinese New Year tradition is definitely the prosperous fireIt is nearly practiced in northern part of China, especially in my hometown in MongoliaOn the New Year's Eve and on the day of the Lantern FestivalPeople would build up a tower with coal blocks and ignite it before midnightIt is a good opportunity for the family and the community to gather around the fireand countdown for the new yearIt is called the prosperous fire because people believe it could bring good luckand cost of evilAlso people hope the coming new year could be as lively and prosperous as the fire itselfWhat spring festival means to meIt firstly means a very long holidayAnd then you will have time to have a good gathering with your familywith your friends and relatives and loved onesAnd then you will receive lucky money from your parentsMy favorite Chinese New Year celebration is to receiveUnder to give red packetsAlso known as red envelopesParents or elder relativesGive red packet to childrenIn order to ward off evil spiritsUnder to bring house to childrenNow these people also give virtual red envelopeMy favorite spring decoration is hereNamlou will use it to decorate the doorAnd this one means that the spring is comingAnd the character means that the fortune will be arrived at your homeChinese New Year for me is always the time for family reunionIn the previous years, my family and I would travel back to my hometownto celebrate the festival with my big familyThis year is differentBecause I'll be in London to celebrate the festival with my friendsCurrently I live in the student hall in LondonWe have also many other international studentswho cannot go back to the home countryAnd I plan to celebrate the new year with those guysWe plan to make some food togetherSome of them have raised the idea of making a cheese boardwhich is something I think that many British people doAs a student of ChineseIt's easy to get lost in the deep and complex culture of ChinaSo much of which I've yet to learnThe spring festival reminds me thatChinese culture is not simply something to be studiedbut also to be enjoyed and celebratedAlthough I'm sad not to celebrate with Chinese friends this yearI'll think of them as I make 年夜饭 New Year's dinnerAs we are now in London, it's still in lockdownSo I will try to celebrate in my own wayThat is to celebrate by runningBecause I love running very muchAnd this year marks the year of the oxIn Lunar New YearSo that I will try to exercise and make myselfAs strong as oxI would call my mom through FaceTime on that dayAnd I will also make a planAbout how I'm gonna wish forAnd set some goals for the new yearBecause I feel like 2020 is a hard year for most of usBut very luckily we have overcome most of the obstaclesSo I'm gonna write a new year resolution for the new yearAlthough the COVID-19 has stoppedThe family and friends being togetherThe dumplings can pass the positive messages to the loved onesAnd send the best wishes to the people in the world牛年大吉Good luck in the year of the oxHappy Lunar New Year春节快乐春节愉快Happy New Year新年快乐 牛年大吉Happy New Year 新年快乐 牛年大吉


I think this is the third FGU of 2018 for the engineering function. Maybe the second, I'm not sure, but welcome. It's Friday the 13th. That's not on us at all. I'm not superstitious, but we're going to talk about hiring the shape of the department by the end of the year. Our pace against our hiring goals and also how we're going to iterate towards that, that shape. We'll talk about our goals as a group or as a function in the form of OKRs, of course, and then we'll talk about reviews. And I'll share some of my review, as a matter of fact. So hiring shape and pace. If you click on the link here, you can view our hiring plan of record. And this is derived from our product roadmap. So in the case of product engineering, we reflect what product management says we want to build. And what they've done is tell us sort of buy back in team by feature set exactly what they want to do a lot more. So you can see here, I put in, you know, monitoring as well as Kathy's team security are going to more than double platform discussion. CICD, the production team database are going to double a little bit less activity and distribution quality UX front end in the management positions. That's myself, director, you have market, et cetera. And then one person for Phillips teams and holding steady. So a lot of growth in a lot of different places. But this is where you, if you want to get a sense of kind of where we're growing, just report us to other areas. This is sort of the list, but this can change as the roadmap changes as priorities change, we can adapt as we go. So we're very flexible about this. If you're looking at this spreadsheet where it gets down to specific numbers, just be aware that this is all a product development. That's how our CFO looks at it, right? So it includes product management numbers. Support engineering is separate from this. There's a separate model that drives out and that has to do with how many customers we have, what support level those customers have, et cetera. So Lee has covered that, I think, in detail in his FGUs. Just look at the archives if you want to dive in there more a little bit. And then there's some new capabilities that are kind of not really reflected in our chart today. Those are package management and configuration or operations. So the way to think of this is like, well, how are we going to grow into having teams for this? We actually did a handbook update that sort of set out a framework for this. So the idea is we've got roadmap for a year. We've got a manager and a senior engineer, maybe a newer manager and a staff engineer. We've got two intermediate or seniors to join the team. And then we've got two approved vacancies. So about four people kind of turning into a team of five or six with a healthy amount of roadmap to sort of bite into. And then we feel like we can start a team. We can name them, they're aligned with a product manager and they go on the team chart. But that doesn't mean that we can't make progress against these goals until we have a sort of fully formed team critical mass. Those issues, those ethics can get scheduled on current teams that are, let's say, the best fit to do progress against that work in the meantime. PACE. So I have a spreadsheet where I've calculated this. It happens to contain rent index and some other potentially sensitive information. So I can't share the link in this case, but it'll just have to trust me. We're on PACE currently to fall short of our goal. I want to say for developers, it's 153 by the end of the year. Or sorry, 163. And I think we're on PACE to 153. So fall short by tandem error about negative 12%. So thoughts, that's not that bad. You know, I think about something we're doing over the course of a year or three quarters in this case, we can make up, you know, 12%. That's not, that's not terribly worrying. I love to hit it on the nose for sure. But, but I feel like we're in it within spitting distance. But that's general. The PACE is sort of uneven. So we have some teams that are sort of a hat or overachieving. And then we have some that we haven't done a lot of ironing for and are sort of behind. It's very similar to unit test coverage where as a project we're at 90 to 95%, which is great. But if you look at specific directories or files, we could be at 0%. And we obviously want to address that. What are we doing to get caught up for these teams of particular like monitoring CIC, Dahlia is now here as our director of engineering allows back in. And this is one of her main goals is really figure out how we're going to hire, drive that. And we're thinking of a pool process, which allows her to sort of get kickstarted by Tommy, Dahlia, Sean, Mary and everything that they've been doing on the dev backend side of things. But also numbers and percents don't take into account that we've got specific vacancies that are really hyper important. And one of them, if for instance, this is director of infrastructure. So despite that, I feel good about the pace and things like that. We know we have certain roles that are like a number one prime priorities and we're really buckling down and partnering with recruiting to fill those. Some key hires we've made recently. I mentioned Dahlia. We've also got Roger who just joined our security team. Talk about getting thrown into the fire right away. He joined in his first week. We gave him a very important issue related to large, large repos that are slowing down our geo migration there for the GSP migration. So we really appreciate in pitching in in his first week and just kind of learning on the job. We've got someone joining the security team as well with a title senior threat intelligence engineer, probably the best title in the company. Do you want to know more about that tune in for Kathy's next FGU on Friday? We have an engineering manager starting for CICD and for production. That's exciting. That's going to help out with hiring and lots of other things. And we've got some platform engineers and discussion engineers in the pipeline, but not yet signed. And so I didn't want to kind of, you know, tell that here. These are picking up some key vacancies. There's our director of infrastructure. If you care to, if you think you've got a network with some of these folks in there by all means take these URLs, post them to your LinkedIn. We really appreciate that. We love referrals. Referrals are proven to be higher performers and to stay longer at startups if they're referred by an internal employee. So refer your friend, refer your past colleagues. That's great. If you want to see all the jobs, click on this page here. The latest change you made to this is that we separately had a heading for, let's say edge for platform. We recently just removed that and had engineering. So that way someone that's coming to the get lab jobs is interested in all the engineering jobs. They're not grouped together. They're right there. And it's very sort of consumable and they can understand what they need to apply for without being sort of all scattered around. Okay. So this is our company and department rather function goals. So Q one, we've now closed this out. They are moved to an archive page. You can click here and you can read that the retrospection and the squaring of them is ongoing. The goal is to do that by today. I think we're probably 80, 85% there. Am I skidding into next week a little bit? But I want to highlight two experiments that we ran the Q one. Okay, ours. One was community contributions. So we're an open source company that's really important. It's part of our heritage, but it's also part of our strategy going forward. And we noticed that those were giving in Q one, the amount of community contributions that we merged. So we put that in. Okay, ours. And then we can already tell that that had dramatic effect in Q two. And that went way up, which is great. Special thanks to Dawa and, and Sean whose teams are sort of frontline on this. And they did a fantastic job. In fact, when I proposed this, they came back with a KR that was actually more aggressively worded than what I have been thinking and they, they really delivered this, which is great. And thanks to, to Remy for pulling these metrics. It's tremendously helpful to understand what's going on at high level across, it was a pretty large department. And then next, we also took on an okay, our to measure how many issues we're delivering against our goals. This is new. We don't do estimation. We don't do velocity tracking as some other companies do. The thinking is, is that some companies get into the rituals. They spend four hours in a planning meeting, four hours in a feedback meeting. We'd rather have that time back to do work. But this is sort of a free lightweight way to kind of get a sense of our velocity. So this is a whip with this isn't done yet, but this is sort of our first data point. And we did decide to carry this strategy over into Q2 as you'll see. So we'll have some sort of time series information. The goal is to be accurately representing our bandwidth to product managers so they can make the best prioritization decisions about how to spend that budget against the future goals that we have. So Q2, so these are authored and they're already kicked off. They're kicked off on the first day of the quarter, which is great. As I mentioned, there's a total of three questions that we have about the production and products against them. Some changes that we made even dent everything so that way, even if your manager or me, let's say, has an okay art to do something on the handbook beside the other thing, but don't necessarily have a goal for the GSP migration, which is really important. The indentation implies that your manager, your director, me are still responsible for those things, even if the words don't directly line up against our title. We're doing the release commitment. K.R.'s resourcing and for recruiting. And then we also made a decision as an exec staff to limit ourselves to three goals. In other words, let's be more focused. But that leads to some hard decisions. So there wasn't room this time around to do the community merger, K.R.'s. Let's see if that has an effect or not. If they go down substantially, we'll figure out a way to drive that up again. And I'm just about ten minutes. I'm going to take two more minutes just to cover the reviews and then we'll go into questions. So it's review time. This can be a stressful or anxiety-provoking time for people. It's really about how to get better at your work. It's natural to kind of take these things personally, but really this is about improving, becoming more efficient and functioning better as a company so that we can meet our goals. So I thought it'd be useful for me to share some of my personal feedback just so everybody gets more comfortable with what they're going through with their managers and their peers over the same time period. So I got lots of good stuff. That's great, but that's never the interesting stuff, right? I do encourage you to focus on that, but for this time, I'll focus more on the opportunities for improvement. The one good thing I want to call out because I'll close the loop later in terms of areas of improvement is the results. If you say it, I know that it will be done. I really appreciate you getting that feedback. I put a high bar on the promises that I make and that's important to me, but perhaps there's a failure mode in there too. So in terms of areas for improvement, iteration, make the changes that you're thinking about quicker. To me, I think it's the other side of the coin of this. I really want to deliver on the things that I say, which means the things that I say really have to have high confidence and that means it takes longer to get to the high confidence. So I'm adapting to GitLab and I'm learning that I need to be more comfortable proposing ideas that have, let's say, 50% confidence and getting it out there and then making changes. Similarly for transparency, I think that's also the same side of the coin where I don't want to keep secrets. I want to be transparent. However, I don't want to tell people that I'm not confident and that might mean that I'm holding things back occasionally. And again, I need to get more comfortable saying, look, this is the current state, 25% confidence, it could change next week. And just like that's the way you want to operate. So I'm adapting to that. The other angle on transparency is that my previous company was a drone company. So that means I came from the aerospace industry, which was new for me. I came from very transparent companies before that. But aerospace, as a conservative industry, there's lots of people from defense, even though we weren't building weapons, there are people from the defense industry there. And that's a secret keeping industry. And I couldn't help but adapt to that environment somewhat. And that means I need to regrow this muscle of transparency. And I'm doing that. I very much believe in this value, but old habits sort of die hard. But there's no desire to keep secrets. It's just a matter of reminding yourself to get to kind of push that information out there, even if you're uncomfortable with it. And then the last thing I'll say is diversity. I really appreciate that someone gave me this feedback. I really valued it. I want to be better at this. This was a surprise to me. It feels to me like it was a misunderstanding, but that doesn't matter. We're accountable, not just for what we intend to say, how that information is received. And in this case, I said actually a couple or a few things that made this person think that I was making assumptions about their capabilities, due to different attributes that they have. I couldn't list those attributes here, because I don't want to obviously reveal who the person was. But you know, trust me that this is something that I value hearing I really want to get better at. And I really appreciate that this person took the time to bring it up.  And those things are bad and they need to change. But those are also like the 1% cases. Diversity and inclusion to me is really the everyday things. It's well intentioned people, nevertheless, unintentionally injuring one another due to ignorance. And that means we all have to sort of, you know, get better at that and own that. So again, something I want to get better at and I appreciate the feedback. So with that, apologies going over a couple minutes. We'll jump into questions. Let me read through the chat first. Let's see. Marin, sorry, said that explains today. I'm not sure what that I didn't catch one exactly that. Maybe Friday the 13th. Ah, okay. Let's see. Thank you for the comments and diversity and bias. We all have built in biases. Could you remind of that? Thanks, Mark. Clement, thanks for sharing your view. Sure. Let's see. Brendan wants to share his. Sure. Let's see. Clement doesn't see leadership doing this very often. I really appreciate it. Sid is pretty dang transparent, I'll say. I think we're all striving to catch up with him. But this is definitely deliberate on my part to like make myself a little bit uncomfortable. So making progress there. Let's see. Any questions? So lots of good feedback. That's great to see. But any questions, goals, shape of the department, vision, direction. Yeah, Tommy, thanks for the help. No questions? All right. Well, going once, going twice. All right. Well, if you have any questions, jump in the VPE Slack channel. Schedule coffee break with me. I'm happy to talk about this stuff offline. So cheers. You got 15 minutes back and have a good day and a great weekend.


Hi, I have renamed my talk for today to spying on your programs in which we're all going to become spies and wizards So I wanted to start out with saying that this talk is not really about Python I really love Python and I wrote Python all day today, but this talk is not really about Python in any like serious way What it is about is it's about a kind of like um Fundamental problem when you're programming, which is you have a program and you want to know what your program is doing Normally and like a lot of the times you don't know right like you have some ideas about what you think your program might be doing and often you're wrong and This talk is about kind of treating your program as a black box and Advancing the notion that you might actually know what it's doing and just like observing it and observing it like it's in its inputs Outputs and you're like well, I thought it was gonna do this, but that's what it did So I guess that's like the reality and When you treat your program as a black box like this you don't care of programming languages It was written in because you have no idea what it was doing anyway, and it might as well have been written by like an enemy so And like your past all was basically an enemy right So like normally when you do bug like you look at your source code or yet print statements You like know the programming language, and we're not gonna be doing that We're just going to be wizards And I'm gonna explain what I mean by that Because that's not like a very helpful description One really basic example of a tool that lets you see what your programs are doing without caring about what they are I'm is top right or like any kind of system monitor where It's like well Xorg is using 10% of receive your CPU Chrome is using like you might have like a million You can see I'd like five Chrome processes, which are slowly eating up all my memory, right? And it doesn't matter like whether a Python program or like a C++ program is taking all your CPU It's taking all your CPU and that's it And so this is like a very like broad view of like what a program is doing like how much CPU and memory it takes up And we're going to see how to like learn much much more specific things about our programs, and I'll make that more clear as I go on So we're going to start out with wizard school or where we talk a little bit about operating systems and then We're going to figure out how to find configuration files And we're going to investigate the case of the slow program in which we're going to have three mystery programs And we're going to figure out why they're slow without reading them just by running them so Let's talk about operating systems for like five seconds So What is an operating system for so let's say you go to google.com and Your operating system does a million things for you while you go to google.com, right? You start like typing in the address on your computer and you press keys and it's like It knows how your keyboard works. It runs code every time you press a key You send data over the network and it handles all your network packets, right? Like it knows about these network protocols like TCP IP and it's like, okay. I got a packet Okay, I'm sending you to Google. Okay. I got a packet of removal. Okay And it like interprets all of that so that you don't need to know how these like network protocols work It does things like writing Files to disk or like writing like some kind of cash Chrome whatever to dish this means that you don't have to know how your hard drive works and how file systems work, right?  I just want to open this file. Okay, and it's like yeah, no problem Don't worry about it It's got you covered It does things for you like it allocates memory, right? If you're out of memory, it's like no, sorry It's over this happened to me earlier today because I was like I was running this Java program Which was trying to draw this really big graph and it was going and it was going and it was going in at some point The operating system was like no and Java was like no and then it crashed and then like I couldn't see my graph anymore Anyway, um, that's not relevant The point is that your operating system manages your memory for you So that you don't have to um, I don't like communicate with your graphics card so that like you can Like see stuff on the screen like right now like this is like apparently My operating system knows how to project because I don't I don't know how that works, right anyway So there's all the stuff that does for you, right? But there's this busy thing where it's like how do you ask the operating system to do stuff for you? How does that even work? So this was confusing to me I didn't know how this worked for the first like nine years after I started learning how to program But then one day I learned it and I learned about system calls who knows about system calls Lots of you system calls are the greatest. Hi So system calls are like the the the interbase to your operating system, right? You open a file and you're like, hey, can you open me a file, please? You want to start a program and you're like, hey, can you start me a program with the exec VE system call? You want to change the files for missions? You want to like send data over a network? Lots and lots and lots and lots of stuff happens your system calls And this is going to be like one of the keys to spying on our programs Is system calls because we're going to use s-trace if you know what that is And if you don't that's the whole point is that I'm going to tell you about it So we've learned everything we need to know about operating systems for this talk One is that your operating system does tons of stuff for you and you should love it and it's on your side Except when anyway, it's overall on your side on that program tell it to do what to do using system calls So we are now operating systems experts. Um, I Yeah, and now we're going to use our new found operating systems magical knowledge to debug some stuff And we are going to solve the case of the missing configuration file So who like has ever run a program either your program is someone else's program And you don't know like what it's using to configure itself, but you can't find the file Um, is that really annoying or is it really annoying?  We're just going to find out what the configuration file is like a wizard So S trace the program that lets you be a wizard By that I mean it lets you trace what system calls your program is calling S trace is Linux only That there's similar programs for like a DSD like OS 10 and stuff, but I'm just talking about Linux. That's what I have on my computer. So that's it Right. So what S trace as is it tells you every single system call your program calls Which is like pretty much the greatest thing in the universe I have a Kind of obsession with S trace that written like probably like nine blog posts about S trace the S trace on the train also on the plane You should also S trace on the plane. It's really fine. Right. Anyway, here's how you S trace You take your program like Google Chrome any program you want in any programming language. It could even be in like Fortran So You start Google Chrome when you start Google Chrome first thing that happens is it serves Google Chrome Which is like maybe not a big surprise, but it was a surprise to me because I was like, oh, yeah, of course I get it. That's the first system call that happens is the exact system call. So You run S trace and Google Chrome starts Google Chrome. Great. We want to send the config file as Google Chrome is using and it's like side now This is what it looks like when you S trace something I Mostly wanted to show you this because it's really confusing and I want to tell you not to be too afraid And that like nobody will hurt you and that S trace won't hurt you You kind of maybe see some stuff that you recognize you're like, oh live for this dot so dot zero You're like odd something about some sound libraries great. Who knows? So if we are solving the case of the missing configuration file My favorite thing to do is be like, okay, there's all this output that I didn't understand And we're going to ignore all of it and just look at the times when it's opening files So it's opened a bunch of files like dot cash. I have no idea what that is One important thing with S traces is ignoring things when you don't know what it is But you can see like there's like something like dot config slash Google Chrome slash consent to send stats It's like, what did I consent to but that was But that was a configuration by the Google Chrome opens right which is fine But you can run this on your program, right? Like I use a dupe and sometimes I'm like, oh where the Hadoop configurations and like I don't want because I already have to Edit an XML file and I don't want to like have to Google for where that XML file is So you just S trace it and then tell you where the XML file is and then I can I can open it Okay So we have we found our opens If you if I look in it, there's like a key You can S trace for other things like for Execv which is for who here ever writes like wrapper scripts that like call other programs Do you ever have bugs in those scripts You have bugs I have bugs if you use S trace for execv and look at all of the child processes You can see like every process that your program is starting and then you know all of them I'm gonna skip these these are like sending data over the network, which is also awesome You can do tons of stuff with S trace If your program is writing with some kind of log file and you like forgot where it is Or you never knew You can look at the right system call and that'll tell you where it's writing amazing So we have S trace one really the important thing to know about S trace is If you have the urge to S trace a really important program that like a production database never do that That's a huge mistake because S trace can make your program like 200 times slower Because it like stops it every time it runs the system call, which is a lot So only S trace programs, which you're comfortable with being made 60 times slower Okay so Now we're gonna solve the case of the slow program I wrote three slow programs for this talk One of them is slow because it spends all of its time like doing cpu stuff and like doing calculations Um, one of them is slow because it's writing Too much stuff to disk or reading too much stuff from disk Um, and the third one is slow because it's waiting for like a slow server to reply Like it sent out a request to like some server and the server is just like I'm just gonna wait for a long time before I reply to you Instead of actually replying to you on time um This is like kind of a cool thing about performance actually right is because like when your program is slow There's so many reasons in such an exciting world with possibilities and frustration To know why it's slow Um, so written three and we're gonna do a mystery hunt to find out which one is which Um, and we're not going to use s trace. We've already used s trace s trace is over. We're going to use new tools um So let's start with mystery program number one Um mystery program number one. I ran time on it time is a super great tool for programs that start and finish Um because it tells you how long it took it took two seconds It spent zero point zero nine plus zero point zero one seconds on the cpu five percent five percent of time is not a lot of time So what is it doing if it's not Computing I want What? Waiting I owe all I owe could be correct. Um, but what it's really definitely doing is waiting for something It could be waiting for I owe could be waiting for something else But we know it's waiting for something So How do we know what it's waiting for? Does anyone have any ideas? We could use s trace that we're not going to Um, partly because imagine that you actually need your program to keep running At the same speed and like it's not okay to slow down your program and partly because it we already know s trace So we're going to do something else Because that's more fun So um, let's find out what it's waiting for. I'm going to do a demo Live demos always work. Well Yeah, great. Um mystery one So we run it It ran it says hi Um, and it took two seconds. Great. Um, so we're gonna use something called w-chan or the weight channel So this is something I learned like yesterday Which is what I'm talking to you about and talk today because it's like the best thing I learned yesterday um, so the weight channel is like, um Your operating system keeps track of what a program is waiting for any time that it's waiting I had no idea. Um, also I had a command Um already in place and I lost it whenever you started my computer So you're going to get to wait with me while I type it out. Um, oh look um So this is ps indentation. So ps this is a little small. Sorry um ps, um, normally will tell you like things about your processes, right? Like, uh Blah blah blah, whatever Um, so we're going to print for each process. Um the pid The weight channel whatever that means Which is like what it's waiting for and the name of the process and then we're going to grab for mystery one Does that sound good? Great. We're also going to try to like rearrange our windows. Um Great and we're going to do that in a loop Because we haven't started our programs. It's not running, right? So we're going to like a hundred times Mystery grab mystery one We're also going to sleep Great So now it's uh, it's doing that And but our program isn't running yet. So we also need to run our program Okay, amazing. It's happening I found it It's here SK wait data Um, do you know what that means because I didn't really know The way I found that was I googled it. Um, and I googled sk wait data And it was like wait for some data on a network socket It was waiting for some data on a network socket guys Um, I can show you what this program does. Um, it's not that interesting Um mystery one Um request.get localhost 5000. Um, that's the program I wrote Um, I can show it to you It's uh, it gets and then sleeps for two seconds That's all. Um, so it's like not a big surprise that it was slow Um, great. Um, so we debug and move mystery program one and we are like wizards Um, now we're going to debug mystery program number two. Um, we won. It was the network. This is the best Um, so mystery program two We time it again Um, because like as investigators you want to take the first same first step every time Um, it spends 2.7 four seconds 2.7 four seconds total All of that time is like in user space like it's not like none of that is like the operating systems work We're done like So I said that we're not going to use like programming language specific tools Um, but if your program is like 100 on the cpu and it's like all in user space You should just use a programming language specific tools profiler at this point, right? It's just kind of slow. Um, And there's not like any like operating system magicalness that I think is really going to help us out here. Um I can tell you what this program does That's what it does This one this one is not a huge mystery Um, but yeah, there's like I don't have any like special magical tricks for this one Um, I think that if you were going to profile this program just for knowing this you should probably just profile it using your regular tools Um mystery program number three So there are only three possibilities you've eliminated two of them But this one is really fun. Um, and it has some surprises. Um, even though you probably might know what it was if you were paying attention Um, but there are still surprises. I started debugging this and I wrote the program and then I was like what happened I didn't understand so Here we go We ran time again It took 10 seconds 10 cpu What does that mean? again Waiting is someone else said i o you're probably right this time. Um because of elimination But we definitely know that it's waiting um, so Um, but there's more here. There's more to know Um, so we're gonna do some We're gonna run python mystery three Oh look Let's run it again Let's run it again So I ran it three times And then let's keep running it It's like not taking the same amount of time all the time Normally it takes 10 seconds to run Now it's not taking 10 seconds to run Why what No, um, but we're gonna find out what's going on anyway So it takes like varying amount of time to run Um from like 0.3 seconds to like three seconds you whispered something, um, which was correct and you're going to be quiet We're gonna look at something called d stat, um, which I think is really cool Um, so d stat is a little bit like tough and it just keeps on printing what's going on on your system So it's like here's how much cpu. It's happening. Here's how much you're reading and writing Here's how much your network is reading and sending Um, so this is pretty cool because it gives you like an overall picture of what's going on on the system so um, we just care about Disc, let's say. Oh, no, we were going to do that thing. Um, what was that thing? We lost our, um And we're gonna type it out again we're ps And then we look at p.i.d chan command Oh, no, I forgot to sleep everyone This is what happens when you forget to sleep And the grep. Thank you I think that this is the good thing about live demos is that they're just way more fun Um, okay, great So you see some stuff here. Um, I am seeing some sleep on buffer And sleep on page and I'm taking those to mean about the buffers and the pages and this is i.o Which we are already new because of spoilers. Um But we could have also learned that through logic and not spoilers, which is good to know um, but So now that we know it's i.o I'm just going to start looking at dstat and get it to tell me How much it's reading and writing So let's start it So that finished like pretty much right away But you'll notice that even though the program is already done it spent like some time Writing data after it was done That's kind of cool. Let's do it again So it finishes but then it's still writing data. It's not over So like the kernel the operating system is still doing work for our program even though the program already finished Could this be why the program doesn't always take the same amount of time? The answer is yes, right? This is because the file system caches because your operating system loves you and it wants you to be happy And it wants your programs to finish. So it's like, okay, I wrote that data. No problem. Don't worry about it But it's not true It didn't write the data. It's just like waiting Um until like later Um when it will write the data and this means that like if you keep on trying to write more data Someone's like, no, like you have to stop. I don't I can't I don't have space to remember what you wanted to write anymore Um, and what this means is that it takes a different amounts of time to write the data every time Um, and what this also means is if we write, um A different version of the program um Where we do something called fsync Fsync tells us tells the operating system like, yo, I actually need you to write this data right now like No pretending Don't try to trick me And if we try the version with fsync um, which um Is why there was some whispering about flushing your caches um Then it always takes the amount of time which is longer So, um, that was the demo we won again. We always win Unsurprisingly because we constructed these examples ourselves um But this was pretty fun, right? Like we got to treat all of our programs as a black box They were written in python, but that was like an accident that it didn't need to be that way They could have been any programs were basically wizards um One thing I want to like suggest even though I kind of hate giving people advice and talk Um, is that like it's pretty fun to learn more about your operating system and to learn more about like solving these kinds of performance problems Instead of learning a new programming language You can learn the operating system that's already on your computer that all of your programs run on um And it's so fun and it's the greatest That's all I have to say. Thank you


You know, look, events Michael has stole here at 14. They do have a lot of chips. Eric Johnson's got by far the best reporting on AMD that I have seen. They have a lot of chips that are competitive, I think, to Intel. And they also have chips that are used in gaming that are very good. But the thing that has bothered people is that they also use the chips in cryptocurrency mining. And that business has turned down right now. I like AMD and I would use weakness to buy it.