So today we have our ninth community call, which is great. It's one year of community calls. It's good. We hope that they are useful for sure. Some of them were quite useful for some of you, others not so much. But the idea of these community calls is always to share with you, with those that are providers of content to open air, to share with you the developments, the issues that we have, the novelties that we have to share with you, and also to collect and to welcome your feedback about the service. But today we can say that we have a special call. We have in our minds two or three topics that we want to discuss in the coming calls. But today we have decided to have a more interactive session. I hope that you can provide your opinion about what do you think are the critical features for the future of this service. What are your ideas about if you have anything from a kind of wish list, functionalities wish list that you would like to contribute to. So ideas for the service. So in the second part of this call, I have two or three slides in Mentimeter to welcome your feedback. I hope that you can collaborate and contribute, but feel free to turn on your camera and microphone and contribute. And as for all the other community calls, we have always a moment that we would like to share some of the recent developments. So you can also put in your, let me ask Andrea to share here in the chat the link for the notes and the agenda where you can provide your feedback and comments. We will put always the link for the slides and the recording. We can also share, so be aware of that. But let's start with just three things that we want to highlight from recent developments or novelties to share with you. You remember that the last call was dedicated to these changes that we are preparing in our broker service related with the enrichment metadata events and the way that we collect and offer the service to you. We cannot have today, Claudio, what's sorry, with us to provide us an update, but we are aware that things are almost finalized, the developments, and then we will have time in November to put it in production. It's always critical when I promise something for the current month. And maybe Stefania, my colleague Stefania from the technical team and one of the managers of Provide, he's here with us, will complain with me. But I hope that we can deliver by the end of the month, if not really at the end, we can do it early in December. But I think we can promise for November a way to present this new way of delivering events in production and also the public API with the events. This is the promise that we have and the technical team in open air from Italy, from CNRST, together with our colleagues in Greece, Athena for sure, so they are doing an extra effort to provide this. If I just put here a slide just for those that were not in our last call, just to explain what are the main changes here related with this new way of delivering the metadata events. And we have in this phase one, the identification in our broker service, the identification of the metadata enrichments. You are aware that we have different types of metadata enrichments divided in more and in missing things that you may have in your repository and we are providing more information in things that you are missing. You don't have in your repository and we identify the metadata enrichments for your records, links to projects, the open access versions, abstracts in the metadata, et cetera. And the changes here is that here where you see notifications event, the top 100, this is the main change. So what we are doing right now for a question of scalability of our service and the quality of delivering the service is that what you will see in the dashboard on the area of the metadata enrichments is only the 100, it's a sample of 100 metadata events concerning that specific type. And then if you want to have all that we have for you, you need to subscribe. So for those that have already subscribed some events, you will see all events, but for those that didn't have subscribed yet. So what you are going to see is 100 links to projects or 100 PIDs that you don't have in your repository. And then if you want to see it all, but you will see, okay, 100 from 1500. So you will be aware that, sorry, we have 100, 1,500 total enrichment events for that specific type. But we can only offer to you 100. For now, if you subscribe, you will see it all, okay? This is the main change. And we will provide information in the public API to be consumed by your repositories or the services that you want to develop using the API in the dashboard. So you create the subscription as this diagram represents in phase two. And then you will see in the notifications area all the events related with the type of subscription that we did. If it's a subscription for all metadata enrichments related with that type or if we have any filtered by date or by anything. So this is the novelty. For those that are more experienced using this area of the provide, you may think, okay, it's a kind of, so we are losing any information. So it may have true, it's true. But in fact, with all the expansion of our research graph, we have much more content and we generate billions of events of metadata enrichment events. So we need to proper manage our infrastructure and for a question of scalability, we took this decision. I think immediately we think that you will lose something but in fact, it's something better for the end user and we hope that we can put it in a clear way in the dashboard that we will ask you for feedback. Maybe in the coming, in the next community call early December, you have already a way to check that and provide us feedback. So just to remind some of you that I've also joined in the previous session but I'm aware that there are several people here today that were not in the previous session where we had Claudio and Claudio have explained this in detail. So the other thing is that there are some slightly changes in the dashboard, the user interface and things related with the registration. So the area of updating the information of your repository. So you can have, if you do an update, you will have a field to send a comment, to send a message to the aggregation team, to the open-air aggregation team. We realize that we have some issues in terms of communication with the end user when they update because this is not clear for the aggregation team, what was really the update and then we need to use other channels and help desk to better communicate. So we decided to improve this. We have it in beta, we just need to ensure that we put it in production soon but this will be available soon, you can check. Some of you are aware also of the changes also for scalability reasons that we did in our user statistic service. So we have a new back-end infrastructure to manage this service and we are in the process of migrating all the data, which as we are in production, which make us to be not fully aligned with the information that is available to you in the dashboard, there are some issues. In some repositories have already the information fully correct, other repositories don't have so some repositories will find information really up to date to October 2020, but others will find information, hold information but so we are migrating this data. The information we have is that this will be completed during November, so in fact the coming call in December, we wanted to have about the user statistics, so by that moment these issues will be already solved. And we have already talked with some repositories that the information is working well, you can also apply for reports, socialite reports, et cetera, but in some cases it's not working well. Okay, this is what we want to highlight. Maybe we can also share, I'm not sure if you can see. Maybe Andrea, we can also share the link to the users counts website, just to people, it's a new website where you can check for useful information about the service to understand the service.  We want to be more transparent in terms of all our processes and our information. So we have then some new website is concerning specific services and one of those websites, it's the users counts open air, so that you see now I'm sharing my screen, so this is the website where you can check the way it works, what are the, what are the, the way this service, it works and what we are delivering in this service. So we did also a website for the graph, Andrea will share it also, graph.openair.eu. And this is in the same, the line is the same is to provide all the needed information about the services. So we have the information and provide the support information, but then it's important to have other websites to provide this information. And the users counts website, it's to explain all the services, all the relevant information around users counts. Okay, please feel free to ask questions. If you have here in the chat about any issue that you have with your repositories, if I am not able to answer for sure, there are some colleagues here with me in the call that may be available to reply or if we cannot reply, so for sure you will have an answer from us today or tomorrow by our technical team. We did during, during October, open air have organized the open air week with in the week before of the open access week. So every, every day we had a session and one of the sessions on the third day of that week was related with the provide and the guidelines, the user journey and provide and the interoperability guidelines. So the recordings are available and the presentation. So if you were not able to, to saw this session to follow this session, so you can check the recordings. And if you think that it is someone interested in your institution to know more about this, just share this link with them. I think the session went quite well. And we can say that it's time to celebrate. This is the ninth community call and we have started in one year ago. So we have organized eight community calls. We missed the several community calls during the July and the August. Also it didn't organize a community call in January. So we have already one year of activity. The main idea is in fact that you are all part of open air. You are open air. So the data source is part of open air, a repository manager, an open access journal editor, a data archive manager, a crisis, the manager is part of open air. So feel part of open air. So feel part of this community and participate in this community call. So we have discussed the six main topics trying to address the different components of the provide from the research graph to the broker service. We did also one detail about the only aggregation workflow in open air. So six topics already discussed it in total, more than 300 people have joined. And so we had several speakers from open air and even some people outside of open air from some of you that we have invited to share your experience. So we had also in that some to share some music cases. So we want to keep these community calls. I think they are important for our transparency to be closer to you, to you to welcome your feedback. So let's keep with these community calls. So now let's try to have... We don't need to spend one hour in this call, but I think it's important if we look at 15, 20 minutes and then we can finish a little bit early. Let's try to check for your feedback and please feel free to put your camera and make microphone on to share your thoughts. But here the basic idea is to welcome your feedback. I have three millimeters to share with you. But think about what are the features, functionalities that you would like to have in provide that they are not here or improvements that we should have. So think about that and then share with me. Before that, I would just try to... As I think we have already received some questions in previous community calls about the future of the service as open air real open air advanced project will hand in February next year. So people start asking about the sustainability and the continuation of this kind of services. So be sure that provide open air is here to stay. Open air in terms of an infrastructure will be insured by AMCA by an organization. So we have a legal entity now with more than 20 members from different countries and open air services will be are and will be part of the European Open Science Cloud. And this is a slide that usually our open air directors and the technical director Paolo Manghi and our director Natalia Manola usually use. And I pick up this slide just to explain that provide as you can see here in this diagram have an important place role in this European Open Science landscape. So the idea is that we will have different data sources in this environment in this landscape in this European Open Science Cloud. And the open air providers, the open air data sources will be data sources of YOSC via open air provider. Okay, this is important to state and this is clear. Within a different project there are several YOSC related projects as you know, thematic clusters, infrastructure projects and regional projects. Some of you are involved in some of these projects. And in another project in the YOSC Enhance project they are developing guidelines for this data sources compliance in YOSC and they follow the open air guidelines and the open air data model will be integrated and embedded in these guidelines. So be sure that if you are part of open air, if you are part of open air provider, you will be part of the European Open Science Cloud. And we will have in the development of future of YOSC scientific product catalog that will rely in the open air research graph and open air research graph. Additional to other things is relying in your content in the content from the different data sources from your partner. So I think this is important to state, be aware of that. For that reason via different YOSC related projects so the provide services is sustainable for the coming years and this compliance will be supported by open air that will be here to support you as providers of open air and then providers of YOSC via open air. And because of that then we will have this, we can provide different services as you are aware about other kinds of services, the discovery service in explore or the different functionalities that we have in explore, the monitor for funders and institutions, all the APIs. So we'll be available in our ecosystem, in open air ecosystem and the important components of the scientific product catalog will be inside the European Open Science Cloud. So in a simplified way, maybe Paolo Mange and Natalia Manola can explain a little bit better but in a simplified way, this is a way to express this. So we are here to stay and the provide it's important gateway to any entry point, sorry, to the YOSC. I have another slide. Another diagram explaining things in a different way. Different services that we have, that we will also build in future projects. That is there will be an upcoming project also only for the technical part of open air that will be open air nexus that will start next year. Where you can see this layer on the bottom here where we have the APIs, the research graph construction and the provide that are here in this ecosystem of services with the pillars of all the services that we are offering. And they are part of, as you can see, YOSC data sources. So they are part of this idea of the YOSC data sources. So this is just two slides to explicitly say where are we? So what is our place and role in European Open Science Cloud and be aware that we are doing important developments in future projects, in this new project open air nexus, small projects targeting specific developments, technical developments and the interactions with other services where the layer of our graph and provide the pillars of these developments. Let's use some minutes to receive your feedback. So let me check, I need to put the present, okay. I hope that some of you can join me in this meter in order to feel that there are interactions with me with the people who work with me, let me close by Skype. Let me check if this is working, I hope that this is working. So go to menti.com and put this code. Of course, we don't need to record everything in menti, just go to menti.com. Eight, nine, eight, nine, nine, nine, nine, nine, nine. Eight, okay. Okay, it's working. So if we can have more people with me, just go there, just click in the like button in order to be aware that you are in, at least 10 persons, perfect. Let's wait a little bit more so you can connect this menti. I will have an open question, but let's start with a simple question just for you to start thinking about the way that you see the service, how do you assess, how do you evaluate the service? How do you globally assess the value or the interest of the dashboard for content providers? So the dashboard is available since October, 2018. We have improved it during 2019. We have released a new interface version in May, 2020. So for sure you have some well-suceed interaction with the service and other things. No reply here to Skype that are people waiting for me. Okay. Okay, thank you very much for your reactions or if you. Okay, so people are more or less happy with the way that you can use the enrichment method and the validator and the broker and the results of the broker service, but not so much with the user statistics, which is correct because we put in production this service with some gaps and we have improved it in production which is not good, but so we are here to fix and we are here to improve. And for sure everything will be much better. I think that in the future. Okay, thank you. Thank you for your replies at least we have 10. Thank you. Feel free to now, no, no, it's a moment that I would like to have your, we can record here in this many meter about if you have any request, any particular request if you want to share desire from you to have an update here in the provide service, any new functionality, any particular request or even if you want to share the expectation while do you see the development of this service feel free to write, but also please join me, feel free to turn on your camera and share with me your thoughts. We have almost 30 participants here from different countries. And so feel free to share your ideas. So this will be great. Having only Pedro sharing his thoughts is not really a community thing. It's an individual. So if you want to join and to say something even if you don't want to write it just feel free based on your experience or even in your successful or unsuccessful experience with our services feel free to join and to give your opinion. This is what we thought for this community call to share this recent developments, novelties to better explain the changes that we are doing in the broker to explain you the place of provide in the development of YOSC and as a YOSC data source and now some time to also to welcome your feedback. At least I would like to finish the call a bit early. We don't need to spend one hour, but I think it's important. So if you have something to say just jump in and share. And even if there are other colleagues from open air and want to highlight something that's just feel free to say. So okay, thank you for the first input and this is true in some cases. I'm not sure if for some cases of some repository managers we know that they don't receive the alerts and one of the, not the only reason but one of the reasons to do improvements that we did for the broker that I've already explained in the beginning of this call was also related with these bags on the notifications and with the errors that we found evaluating some of the feedback, some of the users feedback about some errors in the notifications. Emails were not sending out so we have started analyzing and then with this increase, this expansion of the graph we have realized, okay, we need to change and we have decided to put this new workflow in place of the top 100 events and then subscribe and send it and we hope with that, we can fix that. We can, for sure, we need to have your feedback in the coming two months about if you are receiving or not but I hope that we can fix that and thank you for this feedback. It's quite important and useful. From my experience, the validator for open air crisis not working very well. Are there any plans to improve, fix that? So, thank you for the feedback. We did the first release of the validator for crisis after some tests, not sufficient test to put something 100% sure in production but we have released it because we thought it was important to start already testing the compliance but we know that this is not perfect. This is why we don't have it yet. Also in the, we don't have yet the registration workflow for crisis because we also so additional to the registration and we need to have a directory for that. We also run validation but maybe some of my colleagues also from the aggregation team can say something about because I am aware that we want to improve this validator but thank you for your feedback. Yeah, more export functionalities. Thank you very much. This is important. So from within this release of this new way of delivering the events we are delivering this new API and we are delivering the possibility to download also the CSV file with the events. I hope that we can deliver that on time and in a way that it's a benefit for you, the repository manager to allow two managers for the same repository. This is important. Stephanie, do you want to help me and say something about this multi-user access? I know that you are not the right person to ask you that but I think you can help me or if you have something useful to say or because we had this since our plans but it was not a priority as we had any other issues but this is the thing it's quite important and I think we have already found a solution to address this issue faster than we thought initially. Yes, hi, Stephanie here. Hi, Stephanie, thank you. We do have a solution for that. We had the priority to release the new block implementation in beta so we can move to production as well as some changes in the registration workflow but if we agree that this is the next priority we can go on with that as our top priority for the next release. Great, thank you. Thank you very much for joining me and then to share this for sure. I think this should be a priority because there are lots of people requesting this and it should be on the top three priorities because if it's not a big effort I think we should put it. Yeah, implementing the possibility of making the enrichment of our content more automatic. Thank you very much to share this also. This is important. What I want to say about this is the following. As you know, you may know, I'm not sure if you clearly know, Open Air Open Tender Skull in 2019 and several companies, research groups have applied and one of the companies that have applied and that is in fact developing a service is ForScience and ForScience is developing a way to develop an update and a functionality in their disk space crease installations to consume the broker events and to automatically ingest in the metadata and the possibility for you to update the record. And for sure, this will be okay. We can say that this will be from the tender and on the coming year will be available only for this space crease installations but the way they did it, it's easy also to implement maybe for some other versions of this space and the concept I think it can be reused in other open source softwares or in other solutions. I think this is important. Thank you for this. Even if it's only five inputs, they are really, really important and I hope that my colleagues like to hear. I think the Andreas is here. Andreas, I don't know if you want to say something or if you need, if you want to say something about the need of improving a bit the validator. It's not your responsibility to the validator but as you are in charge of the guidelines we may have, we may run some tests and then collect some more feedback about this and we can improve a bit the validator. If you think that is useful to share your opinion, please join me and share. If not, I will let me open the... I will just stop my screen for a second just to find here. I think it's useful. Based on this comment that you raised about the way to automatic consume, let me... Yeah, I found it. Let me just... I see Andreas that your audio is on but I cannot hear you. Sorry for that. Yes, I cannot hear you. There is a noise. Let me just share with you. This is not... I cannot advertise this too much. I hope that we can have a community call in January dedicated to this use case, to what I have told you about the... for science is doing. These slides are... This is from a development that they are doing. I'm not sure if I'm 100% authorized to disseminate this, but we are in a community call and we are all a community and I think this is important. Just for you to see, because I did some print screens, just for you to... and I hope that this is useful for you. You can see, for example here, the way that they are doing is that consuming our broker API, so they receive, they are integrated here in the deposit workflow in this space crease, and you can see that they have here suggesting from the broker related with the enrichment missing project and then you can ignore the suggestions and reject the suggestions or import. For the project, let me check if I have another example. I just did some print screens. This was a meeting last week, so you can see that the idea, the concept that for science is implementing is that the repository manager, the crease system manager can manage what are the enrichments that they want to have. Then they check the enrichment, if they select enrichment missing project, they will see this and if they want to import, this will open the record and the added mode of the record and they can update the record based on the suggestions from the broker. This is an example. So, of course, open air can support this, but this is quite difficult to ensure. This is a community-driven development for sure because what we need is to have a close relation between open air and the software platforms. Via the tender, we have the possibility to have a close relation between a company and open air that are offering services for a specific software platform, the space crease system, and this is, I think, great the work they are doing. You see an example here, if you want to import the data of a project in the way that it looks. I just want to give this information and to share with you. I will send an email to the foresigns to say that I have used three or four minutes from this call to share this development that they are doing. They are finalizing the second phase and they are moving for the third phase where they are going to test with some real installations, some clients, let's say. Okay, thank you very much for your input. I hope that this was useful. If you have something to say, I will keep this metimeter open. You can write after the call. I don't want to lose much more time from your time, but thank you very much. The contributions were quite important for us. Thank you very much. And I hope that in the coming call some of these suggestions that you made, we can give you some updates in the coming tour during the coming year, some of the other, because all comments that you made are feasible things, so I think we can address them. Thank you and thank you for that. You can also contribute to the ways how you see to optimize these things between the exchange of metadata and full text. This is something more related than the guidelines and the aggregation processes. This is not the core of this call, but I just wanted to put this question. The metimeter is open. You can write during the afternoon if you want to provide here some comments and feel free to do that. And with saying thanks for your contribution, I will just finish this call. Once again, saying that all the recordings and the slides that we usually do and use and present in the community calls are available in our specific page, so you can, after the community call, see the recordings or share with your colleagues if they are available in the newsletter. So every first Monday, Tuesday, usually Tuesday of the month, we send out this newsletter. If you don't receive it, please check in your spam or if you don't receive it, it is because you need to to subscribe and please subscribe. Come to OpenAir.u newsletter provide slash newsletter provide and you will have access to the subscription of this newsletter and also to all the other newsletters. So we always want to align the newsletter release publication and the community calls. So feel free also to share with your colleagues this newsletter and with other colleagues in your institutions or in your country. And many thanks for your contribution for this community call. Thank you for my colleague, André, that is always available here to support. If you encounter any issue, I always say this with a login to the dashboard, okay. Please send a direct email to, you can use the help desk, of course, but you send a direct email to André. André will share the email here also in the call because we always do it. And with this, if you don't have any comments, any questions, any urgent issue to solve it in our provide, I think we can finish. You already heard a lot of time my voice, so this is time to say thank you for all of you that have joined this call. We will have the upcoming call in the first Wednesday of the month. So you can check it in our portal, open there. Then you go, and with this I finished the call and you go to support the support board. There is a specific page for content providers community call where all the recordings are available and also the upcoming calls. So first of November and then the second of December we will have the community call. So it's already scheduled. The second of December see you in the second of December. If not before use the open air provide service and provide us feedback because this is important. And we hope to have novelties during November related with the broker and the statistics. Okay. So I wait to have good news for you in December also related with that service and to have better evaluation of our user statistics also and then make it more useful the broker notifications as you have asked. So thank you very much. And have a nice rest of the day and the rest of the week. Okay. Bye bye all. Thank you very much.


Welcome everybody. Why you attend? I am glad you attend, really, but I think that you have an important work then to be on this presentation. Before when then we start, feel free to ask about the presentation, not a beer or something like that. And let's start. Today is a good day for your GitHub projects. Why? Because your projects will be moved on the higher level. I do not want to go to the agenda, but why you go there to listen this talk? Because in your GitHub projects, you are testing on the one Linux distribution. If you test your project in the one distribution. And our motivation is, or maybe I will start differently. Do you know what you are shipping to your Linux distribution? Maybe? Who knows? Only to one. But we would like to bring you a new possibility. To test your projects, not in the one, but in the different Linux distributions. Like Fedora, CentOS, and... No, REL. But if this is a good RFE for testing farm, what is the outcome? Outcome is our tool, our tool is called testing farm as a GitHub action, which will help your project to test it and to understand what you are shipping. I like this slide. Because, especially being governed, shift left. Because we are trying to move every hour code close to the development. And again, I'm asking you, do you know what are you shipping? And are you sure that your code is working properly, not only on one distribution, but on the several? I don't think so. But this is a good talk for you. You can do everything. And when or especially, we will show you that it is possible. Your turn. Okay, so let's dig slightly into the technical stuff. So let's start with what is the testing farm? The testing farm is a testing service or testing system offered as a service. You may know compile farms. This is something similar, but you don't compile here. Nothing but you test your test here or your upstream project here. You can also view the testing farm as a black box, which has some of the inputs you have to provide to it and which provides you on the other hand some outputs. So if you want to test on the testing farm, you need the API key. The testing farm is communicating via HTTP API. The API key can be obtained from the testing farm team. Then you need to have a test management tool plan. That is the plan that describes your test that initiates your environment. And then you, of course, need the upstream test. As an output from the testing farm, you get test logs and test results. Well, and what is the best feature of the testing farm? I would say that it's an abstraction of the testing environment. You got a distribution as all you want. For example, Federa CentOSM. Well, and you also can choose from various processor architectures. At the beginning, I said we will talk about the GitHub actions. What are the GitHub actions? They are, or with the GitHub actions, you are able to build, test, and deploy everything what you are able to do. The GitHub actions automate all workflows, especially CICD, which is important. The question would be, what runners can we use? Ubuntu, Windows, and even Mac, of course. I did not hear it. Okay. With the runners, we are able to run or to go through the workflows, and we have several possibilities what to do with code. First of all, we do merging pull request. You are able to test the pull request and push to the, for example, in case of containers. In case of release, you are able to push your code like Python. Another pedal to Cipa, maybe go, I don't know where, sorry. You are able to deploy it and push to the repositories. And what is the biggest event of this talk is issue comment. When somebody of your project create a pull request, then you are able to test it. Not only with the Travis CI, but with the testing part to the several distributions. And of course, the last is scheduled builds. What are the scheduled builds? Let's say that you have a project and you need to know whether each day, each minute is working. And that is the aim of the GitHub actions. This is a brief overview. So we talked briefly about testing firm and about GitHub actions. So let's think now about how we can connect them together, how we can design them. So we have advantages of both of the services. Well, as we said, the GitHub actions can be used for describing the workflow in the YAML file and can be used for triggering the workflow. They offer runner and the runner can communicate with the testing firm via its HTTP API. So we can describe our workflow, the API and the TMT plan and the upstream test we can put into the workflow of the GitHub action. And we can trigger the testing firm as a GitHub action directly from the GitHub. Well, then we can use the testing firm for executing the test, which provides the benefits of various distributions and various process architecture, as I already said. And then we can display these results of the test and logs directly in the GitHub repository when the testing firm returns its outputs. Well, this is the workflow designed by our team, a CLR team, and how it works. And this is not only for our project. It can be implemented and it works in the different projects. We have already one, Leap, and another one which is ongoing. Well, let's say that you create pull request. First of all, you have to trigger the testing, not automatically. Why? Because if in the pull request is, for example, destroyed architecture by RM minus RF, this does not work. This is wrong. And therefore, you have to trigger by some command. This is specified by your YAML file GitHub action. The next, who can trigger tests? You? Are you owner? No. Only owners and maintainers of this repository can run the test. This is the second one. Sheddle the test. Okay. Second one is that the testing firm or GitHub action developed by us, sheddling the machine for you. CentOS stream rel. You have to write only the testing management plan for it. And this action periodically checks the output. As soon as the testing is done, then we are getting the final report for you. And the last, you will see in GitHub status what was the reason. Infrastructure problem can be. Failed? Your test has failed? Why not? Or even success on different architectures? Well, we are lucky because all this is already written. And we don't need to write it by ourselves from the scratch. And this testing firm as a GitHub action, as we already presented it, is available on the GitHub marketplace. So every open source project located on GitHub can already use it. And the usage is really minimalistic. The only thing, besides sheddling or considering your trigger of the action, is that you need to prepare your GitHub repository. You can use for the checkout action, for example, or you can do it manually. It doesn't matter. And then you call our testing firm as GitHub action and specify the two compulsory inputs, which are the API key, in order to communicate with the testing for API, and a TMT plan. The testing firm as a GitHub action is besides this highly configurable. There are so many other options which can be configured. But you can check it out later in the GitHub marketplace. Well, and do you know what can be incoherent in this slide or what can seem wrong? No. Besides that. Well, I would say that's the line with the matrix. And I would like to know that the GitHub action, if you want to run some action, some composite action as is this hour, you can do it on more targets. For example, if we want more TMT plan to be run, then we specify the matrix. In the matrix, we specify all the TMT plans we want to run this action at. And then just put the matrix variable here in the composite action, and it will be run for all of them. So it's just a note. Yeah. Because for the CentOS stream or REL, you can have totally different testing plans. And therefore matrix is used for it. Great. Oh, I forgot to mention something. Just when you will receive the presentation, there are some links. You can take an inspiration from our GitHub actions to your projects. If you do not want to use our GitHub actions, let's take an inspiration. This is a free. Well, this is a real life. You can see here that only owner, I don't know why I'm there, can trigger the test. You can see that OpenSheft 3 is not working. I don't know, maybe a rich land of life. Who knows? And you can see everything. What distribution was run for testing? What were the details? And that's all. And of course, is the code in your repository sane? I don't think so, because there is a red cross. You have to fix it. After this, when it's green, then you are able to tell to customers, our upstream GitHub repository is prepared for shipping. This is the last but not least presentation. There are several links which can help you to integrate. First one is our marketplace. The second one is important. Why? Because when you would like to use these GitHub actions, you need to be onboarded to the testing farm. There are two different approaches. Public or private. What is different? Simply, public is federal central, private is real great. Sorry? I like that comment. But you have to ask to the testing farm to onboard to allow the Ubuntu. Ask them. Why not? Because we have to test on everywhere. The first is our examples with the testing farm. How we are using. And what I can tell you is that all our containers used this one. Everything works properly around the hardware. And we already did some nice articles on the developers redhead.com. Feel free to read it. And you will see. And the questions. Have you already started with the implementation? Raise the hand. I like that one. Do we have a present? Where? Present? Nothing present? My mobile phone. Feel free to get the information from our presentation to include in your project. Because the customer needs to be satisfied with our code. That's all. Thank you. And questions to. Not beer. But to presentation. To start testing by comment also. But you are maintenance or trusted maintenance team. Yeah. Are some people waitlisted to always receive? I hope I will repeat it properly. Yeah. Who is able to run this testing farm? This is the great point. Thank you. Only federal contributors, redhead employees, is able to onboard testing farm for now. Nobody else. Sorry. Because we are touching closely to our infrastructure, especially REL. And you can imagine what will happen if your code is I'm saying destroyed our infrastructure for some reason. I don't know what. Especially if only those people are allowed, is it required to trigger test manually or are there, they started right after I made public that? The question is if the, even if the federal or REL authors are, needs to be triggered manually or automatically? No. Definitely. Each way manually. No automatic way. It is really. Well, if you use our composite action, you can define by yourself how you want to trigger the action. So you can choose from every trigger with which GitHub action provides. We use the issue comment because we consider it safe because we can check the only member or owner of the organization can run the account because if you obtain the API key, if your organization obtain it, you are responsible for the code that is running on the testing farm. So we decided in the STL org that we want to trigger the test only by the comment of the owner or member because we consider it the best alternative. But if you use this action, you can do it whatever you want, but yeah, you are responsible for it. But in the testing farm onboarding page, it's mentioned that the automatic triggering of the test is not allowed. And you have to somehow clarify that this will not be done automatically. I don't know why this was an NDA, let's say, but thanks for the question. Sorry, I didn't get it. Yeah. The question is, this testing farm action is run on the containers if it's able to run it on RPMs and stuff like that, definitely. This is not only for the container work, this is for every project. Did I answer correctly? No, no. By design, the question was whether testing farm is able to run on the multi-architectures. Testing farm, as a service, is able to be run on multi-architectures systems, but our GitHub action is not able to do it now. And personally, I don't know if we would like to do it. Of course, the testing farm as a GitHub action is an upstream project. Still free to file issue and we will discuss it with the testing farm team. We will see. Why not? Thanks for the question. Really thanks for the question. And good. Really sparking.


A large blast has ruptured a natural gas pipeline in central Iran, the mayor news agency has reported, citing local officials. Evaluation teams have been dispatched to survey the damage of the explosion erupted in the early hours of February 14 near the city of Borigin, some 64 km south of the provincial capital of Shariqord, according to mayor, which cited the city administration and fire officials. The terrible sound and then the fire was caused by the explosion of the main gas transmission line of the country between Haldai Pass and Beldaji Highway, and fortunately, until this moment, no one was injured or injured. There were no casualties, Ismail Yazdani, the commander of Borigin's fire department and security services, was quoted as saying, footage circulating on social media purports to show the aftermath of the blast, with a bright fireball and tower of smoke rising into the sky.


This may relieve psychological pressure and anxiety and foster interpersonal relationships. So, in summary, STAP spoke about the damage that smartphones have done to human health. That smartphone may damage us physically as well as provide an easy way for unqualified people to spread messages to the public. I then looked at some of the positive aspects of smartphone use, such as improvement in communication with our social group, our doctors, and indirect involvement in diagnosis and treatment of some illnesses. In conclusion, we feel that smartphones have been an incredible benefit to society. We feel that moderation and common sense would help reduce the negative impacts of smartphones. We would like to thank you for listening patiently to our presentation. We hope that we have given you some clear insight into issues surrounding smartphone use. This may relieve psychological pressure and anxiety and foster interpersonal relationships. That concludes the most important points in favor of smartphones. To sum up, we have seen how smartphones can have some negative physical impact in human health. We are also seeing how smartphones can make it easy to spread misinformation which can lead people to make poor or even harmful choices about their health. However, we have also seen that smartphones can help people by improving their social ability. They can also be used to deliver information directly to doctors. Overall, we feel that smartphones have had a significant positive impact on our health. Every new technology has its drawbacks, but we feel this is easily outweighed by the benefits smartphones have brought and will bring in the future. Okay, that's the end of our presentation. We hope you have found it informative.


I'm Helen, thank you firstly for sitting down with me today. It's great to have you here. So I guess the first question is, and it is quite a big one, do you think it's possible for industries such as FMCG, where you work, or the fast fashion industries, do you think it's possible for them to become truly sustainable in the future? If I didn't believe that, then there's not much point really in making small steps. But what I do believe is that every single attempt we make, Ieithio'r unigwyr bod hynny'n gyfnodol sydd yn cael ei ffordd yn ymddangos. Roedd yn ymddangos yn ymdyn nhw, y bod ymddangos yn ymddangos ymddangos o'r ddweud o ffordd i'w dweud yma. Dwy'r cwylwch'n ei wneud i chi, rhai ei wneud yn cael ei gweithio'r ffordd. Felly mae'n fath o'r peth oedd yn ymddangos a'r gwrs yn ymddangos i gael i'ch bod ni'n gweithio'n gweithio'n gweithio'n gweithio. Cysylltu gynhyrch y gallwn cael ei ffyrir, maen nhw'n dweud o ddifen yn yr ystyried yma, ac mae ymlaen yn ei wneud o'r dorod, ac mae'n gweithio'n gwybod o'r ddweud, ac mae'n gweithio'n gweithio'n gwybod, ac mae'n gweithio'r ddweud o'r ddweud, oedd yn gweithio'r ddweud o'r ddweud, maen nhw'n gweithio'n gweithio. Ond mae'n gweithio'n gweithio. Udydd ychydig i'r cyfnoddau mewn ychydig iawn, wrth yw'r wirheadfyrr CIM, wrth CIM ym Mhwyl, ac wrth'i'r hwnnw'r code, yma, y code, ychydig yn ein code sydd, i'w ffordd cydfaith o'r brifysgau yn y ddechrau, a'i ddim yn bwynt yn rhywbeth. Rwyf wedi'n ei ddweud i allu'r gwrs i'r ffordd. Mae yma, yn y rhaid i'r ffordd, mae'n cyfrifau sydd ei wneud o'r brand ffmcg. Felly, we absolutely need to do better. We absolutely need to step up. But we can only do that if we mobilise every shopper that comes into those stores, every consumer that consumes that product. We tell them what impact that has. We give them the tools to make decisions themselves. That tiny story adds up, and adds up, and adds up, and gains momentum. By making it mysterious and complicated, we're not going to get any crossover or cut through within FMCG, because there are too many messages already. Every small win is still a win at the end of the day. It should be celebrated. I agree. I guess when you founded Collective Stories, your company, was sustainability always at the heart of the value that you wanted to be in Collective Stories? Was it always there? Absolutely. Collective Stories is founded on lots of tiny stories, so we work with our clients to bring together stories like sustainability, consumer stories, stories of macro insight, stories of trends, what's happening in our categories. Within FMCG, we've got so many categories. We've got food, we've got health and beauty, we've got dental, we've got deodorants. Within those, there are so many different and tiny stories, and it's recognising that. I think sustainability, I've been doing this for many, many years now. When I first started out, sustainability was, if you imagine a PowerPoint deck, it was always at the back, and it was always like a tick box. We had to have it, we had to do it, and then the retailers mobilised, and actually that sustainability information came further into the deck. And now actually, I would say it's at the start of the story. You can't have a seat at the table if you are not responsible on this topic. But again, as I say, a lot of SMEs just need help and need the story breaking down or the right way to tell the story and remove that fear from the story is what we do. Absolutely. So what role would you say storytelling has in the sustainable marketing journey? Is storytelling the key to transparency and driving action? Absolutely, and I think it's storytelling. I spoke earlier about the key storytelling concept of the hero's journey. So to be impactful with the story, you have to take the audience on the journey with you. You have to make them the hero of the story and say, we're going to do this together. And to my previous point when I talked about empowering them through information, but speaking to them in the right way, the right tone of voice, and speaking to them where they are, that's the only way we will do it. We have to take them with us. It's not about telling somebody a story and expecting them to listen. That's not, it's not a linear journey. It's a journey where we scoop up that consumer, we make them care because at the end of the day we can't make anybody do anything. The stories are not magic. They're not a silver bullet. It's about empowering people and taking them with us on the journey. Yeah, absolutely. Well, thank you very much.


Let's bring you updated what's making the rounds as regards the Kaduna Abuja train resumption And this is according to the directives has been given by the government. We do have innocent a Gigi joining the conversation He'd be telling us what's what measures have been put in place to ensure safety of lives and properties Innocent a Gigi's good to have you join us this morning on the show Thank you very much. Thanks for having me So, yes when they know that the federal government has directed that the Should be resumption of the train service Can you bring us up to speed? What are the measures that have been put in place by the government to ensure that lives are protected? We still also know that you have some citizens in captivity of India's also stealing captivity of this terrorist Thank you for the opportunity In fact, I believe it's an opportunity for me to clear the atmosphere over a lot of things that are trending Government has put in place a lot of security measures to foster safety and You know issue of security is not normally discussed in the public So I wouldn't want to begin to talk vividly about the security measures that is being put in place Because it's going to be a kind of a way of exposing the security strategy We have in place to first all safety of our passengers and even our workers So but before I go further I would want to use this opportunity to control and to sympathize with the family of those That are stealing captivity, of course it can happen to anyone and it can happen to me Also, nobody is safe as far as this country is concerned, but I wouldn't be happy when issues are politicized Over the running of the train that is coming up on the 23rd of this month So what are the measures that have been put in place by the government to ensure that lives are protected and those who would be Using the train are safe Okay, thank you very much. We have a lot of discussions We had a lot of discussions with the security agencies But the police the army and the Air Force and they have promised and have given their words in terms of protection of safety Our trains our rail tracks and passengers. I would love to stop there I wouldn't want to say much on this because it will be as I speak I know the whole world is listening and even the bandits are listening So if I speak more than this, they could strategize and still come and do worst things that we do not expect Gigi what is the NRC and the worker is going to do differently this time around because from all you for all we know It is just promises that the government is promising us that that security measures have been placed that even telling us that There'll be no morning and night. I'm you know service. So what exactly is your Union doing differently? Thank you very much. We have actually Gone far in terms of thinking of what The measures to be put in place should be because already we've been at the top of the situation right from the first Train attack that took place around the bomb blast that took place sometimes in october So that we have been talking and we have been strategizing And what the union has put in differently is to make sure that insurance cover Takes place for all those that are affected And we have put that is in terms of the staff, you know We had a two-day warning strike like sometimes likes last year because there was no adequate insurance cover for our workers in place Uh, no proper compensation No this no that and so at the end of it all we've come to agreement with management in terms of the personal life insurance Though we have a group life insurance, which of course nobody has benefited All right, all right innocent innocent insurance You know, you see you seem not to get the question I asked you. I wasn't asking us about I'll find in as much as we know that The welfare of these workers are paramount. I meant specifically what You will be doing differently as um for as in your services directly For instance, we hear that the NIN uh used to be used Before any passenger gets on board. So how prepared is the workers of the NRC for this particular development? That's what I was asking you Oh, yeah, we are very prepared for every development because uh, you know, we we our workers have gone on various kind of training To ensure that that is effective. And so we are so prepared and we are so much aware that Uh security is one of the paramount issues that is affecting the smooth running of our trains So we have put in place so many strategies, which I wouldn't want to disclose I know you that's what you keep saying that you're not disclosing these strategies But then again, are you also aware in a sense that um, the abductees families are actually insisting that Come may 23rd. They're not going to allow You know any operation of um, uh the train service in Kaduna state. What is going to be done by the NRC? Okay, thank you very much You see these families that are talking in this manner in as much as we sympathize with them But we will not support that because The there are killings every day on the road. Have the family come out to say they are shouldn't be running a motocross on the road These people girls were talking about this over 80s this year Have they closed all the schools in in northeast? Because of insurgency except if we want to close the entire country then they should continue to assist Is it because those that are affected on the road and other schools, you know, have families that have access to social media or the print or Electronic media that they will be talking in this manner It's not fair. They are not even fair to radio workers at all because if you insist that we must not run trend then It means they have prepared another job for radio workers to go and do because certainly government will not be keeping people that are doing nothing And we pay them salary for doing nothing. So they are not being fair to us We want this family to understand that this issue of security affects everybody in this country And we want them to understand that in fact it affects me directly because one of the drivers that is stealing activity Happens to be my colleague. We walk together in Fauci before he was transferred to Abuja. He has been so close to me I have done a lot of things and a lot of efforts to meet with the family and even the family of the other Staff and members of us that are in stealing activity. So we are directly affected equally And we never can tell who would be the next active of this attack. So I want the families of these kidnapped people to understand that in as much as Except if we agree that the country should should not move forward Because it affects everybody. You are even in your house. They will come and kidnap you So talk more when you're on the road or when you're on the track So I want them not to politicize this issue because they have access to electronic media and because they are connected or because they are Children of the big children of the of the poor have been kidnapped every day But nobody has come up to say stop running off cars in the on the road. Stop Opening schools Innocent Because that's our only source of negative Well, thank you so much Innocenta gg for being part of the breakfast this morning We do appreciate your time and your thoughts as well on the show And of course, uh fingers crossed would definitely follow up with development as they come All right, that's um the size of on the show for today a very big thank you to you for sitting back and Watching us and of course, I'm to all of our guests that joined us today. We see A thank you a very big. Thank you all the same My name is just in academia the breakfast returns again tomorrow If you missed out on any part of it, it's all right to follow us on facebook twitter and instagram and do subscribe to youtube channel We are at plus tv africa and plus tv africa live star. I am messy book. Have a great day


What's up everybody? I'm Evoravut and we're here on a set of Corsa. First of all I want to talk to you guys recently about where I've been and why the videos haven't been super consistent I've been a bit crazy busy. There's a lot of things going on with competitions on the weekend Content and some other things going on so I do apologize for the lack of content recently Kind of it's gonna be coming back in full swing with modeling tutorials competition builds More competitions and tandem competitions are gonna be coming back to the channels Well, there's some new things that I'm super excited about so make sure you follow me on all social media We're here at to scuba circuit in some slide boys cars And we're all gonna try and get some lead and chase tandems here in the slide boys 14 Probably gonna try and get a lead run first. All right. We go fourth gear Kick it in Little bit off that clip keeping that zone Kick down a third on handbrake there Bring it around that clip Scuba circuit is definitely a circuit. I became very familiar with with running a Bushido series competition So let's see if we can try and get a chase run here Definitely liking these slide boys cars looks like I am gonna try and be able to get a chase on him because we did go One in one, so maybe I'll get a chance to chase this guy smoky cinnamon in the fourth We'd like to be closer on initiation Almost threw it way hard into him, but we managed to keep it. We're here though Throwing that massive angle 90 out right away It's a heck of a run.  I tried it for sure so I've definitely been missing running tandem competitions here on the channel whether it be SSR for the most put seven Bushido series So definitely be going into some more competitions here very shortly Okay, I guess we're just gonna pop ourselves into a lead run Maybe I want to run chase. Let's do it pretty much good on that clip kind of Good in that zone on there. Don't go too deep Whoa, I almost lost it there So like I said, I'm gonna be trying to get into oh, I don't want to change that Trying to be getting in some more tandem competitions here in the near future because I do miss the Competition aspect the end of the building up to the actual competition and all the practice Qualifying everything like that and I know a bunch of people been saying I should go back to competing so We're gonna be doing that here very shortly and having to find which competition I want to try to get into so if you guys know any good ones here on a set of course So let me know down in the comments. I know about DCGP I know about you know, Bushido series and you know stuff like that But I'm looking for some other competitions that I may have not known about Didn't get enough grip off the start of that one Under that way too hard I was trying to play catch up. I kind of failed on that one I was trying to play catch up off the start. I kind of blew my tires off a little bit too much Get to 14s here. Oh, I tried it. I tried it didn't work So I hope you guys understand recently I do apologize like I said in the beginning of video for lack of content It's been super busy with competitions on the weekends and family and stuff of that nature and of course, you know having to build a new PC another game of PC for my wife because her computer decided to Do a complete? Exploding in so things have been a little bit hectic I'm gonna get back to the daily grind for you guys Beginning now and from now on like I got some big things come to the channel very shortly as well It's gonna be bringing back the competition stuff competition preps modeling Tutorials and stuff of that nature This 14 gets it here. It's a scuba circuit I'm sorry. That was a pretty good run so I hope you guys are enjoying a little bit of tandem back to kind of tandem competition style practice in a sense, but this time in an open lobby I'm gonna try to get a chase run now So we probably run open lobby sometimes. Nobody ever really wants to lead catch up It managed to save the run though, but did not expect him to slow up that much We managed to Somewhat save on him clean. We didn't hit him. It looked like the dude was in VR. So did not want to Smack into him and he just came out and smacked into me because there's two VR guys See if we can't run back with these two. Oh, he hit the wall that unfortunately Rips that run. Oh my gosh.  I don't know what happened to him. I think you may have hit the wall But that was a very solid run. I Would say so for my lead a little bit shaky on that second outer zone with going into the grass, but We managed to complete a full pull See if we're gonna get a chance to chase this this man now little 14 battle They're too much. Oh Apparently I can adjust my break bias without Messing with it. So we're gonna adjust that up to 70% So you can do one or two more runs here for this episode here on a set of course The doing getting back into the lead and chase tandem Aspects like I said, I'm gonna be looking for competitions and stuff to run here very shortly. Oh I was gonna biff that 90 lock in that thing out a little bit So I think we're trying one more chase run Wish you guys follow me on all social media all of which are found in the description box below So we're gonna finish it off with a bit of a train I'm thinking of course that guy hit the wall So I think they'll do here for this episode here on a set of course So and as always I think as you come back and watching I do appreciate all the support and like I said back to the normal Daily uploads for you guys and as always thank you guys for watching. I'll be more rabbit. See you guys on the track


ORS, the meeting ORS is they are trying to bring bench work to bedside. Some work is very basic science, and it's not very easy to bring to the bedside for the patients tomorrow. So there are so many beautiful findings in the basic science or very easily transferable studies to the surgery or clinical setting for tomorrow. To work on basic science is very important because every single surgeon don't perfectly be satisfied for the surgery or treatment today. So the treatment for tomorrow I want to improve. We want to improve. Everybody wants to improve. So to improve what is the most important thing? To do the basic science. There are so many institutes in the world focusing on the treatment surgery but to do both is very important and the both closer the better. In Stetmon Clinic we are achieving this.


Good afternoon everyone. Hope you're having a great time at the I.O. We are here to talk to you about Linux for Chromebooks Also known as crostini We'll start by introducing ourselves. My name is Sudha. I'm a designer on crostini for Chromebooks Hi, I'm Dylan. I'm the Chrome OS virtualization lead And I'm Tom product manager for Linux on Chromebooks Now it's the end of day two at I.O And you've probably already been to a bunch of different sessions that have talked about all the new frameworks that you need to be using Or the platforms that you need to be building for and everyone's right you absolutely should be but we're not really here to talk about that Instead what we want to talk about is you as developers and how you can get more peace of mind by using Linux on Chromebooks We give you that peace of mind by balancing simplicity and security On that note, let's do a quick user study How many of you are developers in the audience? Wow, that's full room as expected keep your hands raised How many of you use your computers for anything else other than development like? Doing your taxes checking email again 100% of you Okay, one last question. How many of you are worried about security? Good, that's pretty. I mean you all should be so I'm glad to see many hands up anyway So I don't know about you, but when I start a new project I I get stuck a lot, right? I hit a lot of walls and I hit a lot of barriers I'm go to look for a problem go to look for a solution and I turn to Google and luckily Google's almost always got a great answer for me Unluckily sometimes the answer looks like this and I know I shouldn't run this script from evil site comm pipe it to sudo, but you know that deadlines coming up and This maybe the site looks kind of legit. So in this case, I'll make an exception and I'll do this and That happens again and again and eventually I end up with a system that I don't trust as much as I should Because I don't really know what code I've run on it anymore. I don't have time to read all these scripts My solution to this has been to carry two laptops One for my developer world and one for my everything else world that I want to be secure in But recently I switched to using one laptop and Tom's going to talk about how I do that So our goal with Chrome OS has been to give you a simple and secure experience from the start But if you tried it previously you might have seen that it wasn't quite ready for developers in order to be simple and secure We couldn't run all of the tools that developers need to get their job done But that all changed at I owe last year when we announced that we were going to start supporting Linux on Chromebooks Linux on Chromebooks lets you run all of your favorite editors ID ease and tools and It's now supported on over 50% of Chromebooks Including great devices with 8th generation Intel CPUs like the Lenovo yoga book c6 30 and the Acer Chromebooks been 13 If you haven't seen it, we're going to run through a few examples First off, how do you get it? It's really easy. It's just a couple clicks now in the background This is downloading a virtual machine setting up containers configuring it all Dylan's going to go more into that in a few minutes But for you as a developer, it's just a couple clicks to get started and this adds a terminal to your launcher Now if you open that terminal, you'll see that you have a pretty standard Debian environment And we've already loaded in a bunch of the tools that developer developers expect like get and vim And if you need anything else, you have the app package manager and you can install whatever packages you need And if you want to instead install files or install programs via dot-deb files, you can do that too This gives you access to thousands of world-class developer tools Now once you've installed any graphical apps You'll find that they all show up in your launcher just like the rest of your Chrome OS apps And if you open them They show up in your window manager again just like the rest of your Chrome OS apps This is the simple experience that people have come to expect from Chrome OS and we didn't want to change that with Linux But importantly, this is also secure You don't have to worry about malware accessing your files snooping on your traffic or infecting your peripherals I'd ask you to trust us on that, but this is way too important for you to take on trust alone So over the course of this talk Dylan and Suda are going to walk you through the principles behind the architecture and design of crossini We're then going to dissect some common developer flows to show you how these principles apply and Finally, we're going to share some tips and tricks for advanced usage for the power users out there So now I'm going to hand it over to Dylan to talk about the architecture Job Okay, so Chrome OS has always had a layered approach to security and Our big layer has always been the browser and the renderer and running all untrusted code in a nice isolated renderer And that keeps the attack surface of your core system to an absolute minimum They're not allowed to make a lot of system calls. They can't poke at random bits of your kernel and That worked really well for web pages web apps However for developer tools, I need to install a lot of different programs. They need a lot of different privileges They can do anything any app on Linux can do and that wasn't acceptable for us on the core of Chrome OS So we need that a layer. So we added a virtualization layer And that lives in the main Chrome OS layer and that spins up a VM and And now this VM has a much more limited interface While still exposing a full Linux kernel to the programs that run inside the VM The only way the VM can talk to Chrome OS proper is Through a small API that that cross VM program on the left up there Exposes to the guest. This was pretty good. Now. We've got a lot greatly reduced attack surface We were pretty happy with this we wanted to go a little further So we made sure that the guest VM was Also signed by Google and somewhat trusted this lets us trust some of the actions the guest VM takes and It's also read only so users can only break things so much in that no matter what you do You're gonna be able to boot a VM However with all that security solved We're back in a situation where you don't have enough flexibility Your apps can't do anything. It's a read-only thing You can't install anything in it. So we had another layer and for this we stole used LXD from canonical That team's been very helpful in getting this spun up with us. It's a pretty standard container runtime It's built for running system containers and in our case. We started a system container Of Debian and exposed to that to the user So that cross VM layer I was talking about that's kind of the most important part Of the security story here It's the last line of defense before something gets into Chrome OS so we went We focused on this for a long time and made sure we got that as secure as possible We wrote it in a memory safe programming language. We chose rust this eliminates buffer overflows and integer overflows a lot of common bugs related to memory safety that are exploited by attackers We were pretty happy with that But we again added another layer of security here in that we broke up the Virtualization program into pillars and made sure that each pillar that interfaces with the guest only has access to small parts of your host Chrome OS system So your host Chrome OS system you've got your bank's web page open You've got your online tax filing thing open. You've got all kinds of person identifiable Information everywhere. We really wanted to protect that but we needed to give the guest access to things like a random number a Display a USB device so each of those got their own jail and they can only see the thing they need So our random number generator can generate random numbers. It can't access any files It's in an empty file system from its perspective. It doesn't have any network access The display driver it can access the display again It can't touch the network. It can't go grab your files and upload them Even if somebody gets into it and tries to make it do things we didn't intend it to This is all a little complicated But we've added a great amount of system UI to make this easy for you to use So when you're just doing your job as a developer, you don't have to worry about these pretty pictures I've drawn for you and so they'll show you what we did. Thank you Dylan Security is absolutely top of mind for us while crafting the Linux experience on Chromebooks. We came up with three high-level design goals The first goal was to keep your experience intuitive Everyone here in this room has been using computers for a long time And you've just established your workflows and habits So basically what we wanted to do is to match to those expectations We wanted to provide an experience That's natural to you We want developers everywhere to be using Chromebooks and feel right at home doing it The second goal was to make your experience native We could have taken the easy path by giving you a full Linux desktop in a VM, but that wasn't good enough Our goal was to bring the Linux apps you depend on for development Into your native Chrome OS experience The third goal was to make your experience simple, and I think this is very important there's a lot of complexity that's going on under the hood and We want to leave it there Our guiding principle is that complexity shouldn't interfere with the user experience There's a couple of things we are trying to balance here the security concerns that come with Installing Linux apps on Chromebooks and the simplicity that comes with sticking to design patterns established by Chrome OS and Our mission was to find that sweet spot All right, so now we're going to talk about three common developer flows and see how they work with crusting The first of these is accessing files as developers We have to do this all the time our editors need to access files as do our compilers our source control and a whole lot more But the problem is that our file systems have a lot more than just code They have our personal photos our tax returns. Maybe that novel that you've been working on a lot can go wrong ransomware can hold all of that data hostage Malware can upload your files to some random server, or maybe you just get something that goes and deletes everything for the fun of it We built crostini with those threats in mind to limit what can go wrong and Dylan will tell you how so our our goal sharing files with your VM and with your container was to Make it easy for you to get the files you needed for your development tasks where you need them But not expose things you don't want exposed untrusted code because ultimately we don't trust the code that's running inside this VM To do this we took a layered approach your files all live in Chrome OS at the very bottom and We share them out to the VM With a 9p server. We named it 9s again. We wrote it in Rust so it's memory safe We fuzzed it to make sure you unexpected inputs don't cause unexpected behavior And we put it in a tight jail so it can access only the files you share with it And it takes those files and exports them to the VM The VM mounts the 9p thing that's built into Linux and then LXD takes that mount and exposes it into your container Where your development tools are running? The important thing here is that your container can only see files you say I want to share With my development environment Your VM can only see those same files and even the server that we wrote running on Chrome OS can only see those files It doesn't get to see everything so somebody exploits this stack all the way back into Chrome OS They still don't have access to the files you haven't shared with the container. That's a lot of stuff to set up Setting up 9p mounts bind mounting things into containers We had to do this manually for a while and we were developing it it was painful So I'll let Sue to show you how easy we made it for you There are a lot of layers going on but let's see how simple this is in the UI Right out of the box you have a directory called Linux files, which is your home directory within Linux Anything in this directory is automatically shared with Linux outside of this directory anywhere else on the device Linux doesn't have access to anything until you grant permissions I'll walk you through a couple of examples here Let's say you're working on a project and you see yourself needing files from this one folder called illustrations To share this all you have to do is access the right click menu and Click on share with Linux in as simple as two steps You now share this folder with Linux if you notice this is in Google Drive, and that's a cool thing When you don't want to share this anymore, you can do that by going to settings and unsharing Here's another example where we made quick edits really simple for you You have a data file in your downloads folder and when you double click it automatically opens in VS code When this happens in the background, it's implicitly shared and the sharing last until you restart This is the balance of security and simplicity. We wanted to bring you Thank you so For our second developer flow that we're going to talk about we're gonna look at running a web server Now being Chrome OS we care a lot about people making great web apps And we want to make sure that they can create those on a Chromebook and being able to run a web server is Pretty central to being able to build any web app Unfortunately web servers also need a pretty low level of access and that can cause some problems The code that can run a web server is also capable of snooping on your internet traffic It can know what sites you're accessing and in some cases even see the contents of those pages This means that a malicious web server could potentially track everything that you're doing now again We thought of this as we design cross Dini and we made sure that we prevented this kind of attack Linux Dylan will tell you how I can be called Linux. That's my job All right, so starting a web server from cross Dini Simple we've got a good demo over in the web dev sandbox already type of command you fire up your web server Just like you would on any Linux distribution out there What's actually happening under the hood though is you're in a container and you open up a port That ports in a network namespace inside of VM Running under our special hypervisor which puts its network stack in another namespace on the host and then Finally out to Chrome So Chrome can't get back in which is great for security You've got wonderful isolation, but if I want to test this new PWA or web page I'm running in my VM. How do I get Chrome to talk to it? This was not simple So for that we had to add some demons along the way actually every layer gets a demon for this there's The first one is running in the in the VM and it's sitting there waiting to check if Any container that's running happens to open a port And then it's got to figure out which container open that port and Bundles that information up sends it to Chrome OS says hey this port in this container is listening the user might want to use that port and On the Chrome OS side we say okay the other demon responds says I will set up a route to do some forwarding I'm gonna forward all of this over Vsoc, which is a protocol used to talk to local VMs on on machines That's kept under the hood So either end talks HTTP in into the demons and the demons talk Vsoc to each other So the key here is that the web server Gets to talk HTTP Chrome gets to talk HTTP Everything's normal. Everything works just like you would while under the hood We've got all this extra demons and Vsoc forwarding going, but we've hidden that One other important thing We've made it trusted so you can get all your PWA features you can install it to your desktop Even though it's not technically the same machine We know it is because we've got the information we set up the VM So we allow that to be trusted domain and All this complexity I think makes one of our best demos today of how complicated we made it under the hood And how simple you're gonna see it is to actually use I Totally agree that this is very complicated under the hood But in the UI, it's exactly like you would expect it to be Let's say you're experimenting with building this cool PWA Here in terminal you're in your folder PWA starter kit You're running a commands to start your web server and if you see at the bottom of the screen It's listening at port 8080 at this point you can launch your browser Go to local host 8080 and test your web app on The screen here on the left You have your web app in Chrome and on the right If you're noticing it, it's in Chrome. Yes You can test your web app on a Chromebook in Firefox 2 If you noticed we did not prompt you to give any permissions while we were in this flow This is because the host is accessing the VM and not the other way around Again, this is another way. We kind of balanced the security and simplicity factor. We were talking about For our finally for our third demo. We're going to talk about testing an Android app Now this is really exciting because just yesterday we announced that Android studio is officially supported on Chromebooks and We even created an installer just for Chrome OS to make it really easy to get started with Now of course Android studio isn't the only thing that you need in order to build a great Android app You also need something to test that app on usually a phone And while you could do that over Wi-Fi with adb remote all this sort of stuff We wanted to make it easy just the experience said you'd expect on any other device I can plug my phone in over USB and test my app that way Now if I'm an Android developer sure I'll plug my phone in to test my app But I'm also going to plug in a lot of other devices over USB over the course of my day I may plug in a USB drive that has a lot of family photos on it I may plug in a wearable that has some health information. I may even plug in my security key for work that gives me all of my access Malware can take advantage of these devices to Uniquely identify you as you move between machines to spread itself or even to make changes to them again We thought of these threats at when designing crostini and made sure that we were preventing them Yeah, implementing USB was a lot of fun for us might have been our most painful stack Same principles apply we've got our layers We protect the host There's a lot of attack surface in a host USB stack. It's a very complicated kind of loosely specced protocol It's an exact spec that's loosely implemented by a lot of people So we've hidden that kept that on the host side Wrote a device that we live in cross vm jail again. We've got a USB driver. It's pretty complicated It's got a lot of code in it. I'm sure there's a bug or two So we made sure it was very well isolated. It can't get to your files. They can't get to the network It also can't get to any USB device You have to explicitly say hey, I want to give this USB device to my development environment we've tried to make that as easy as possible and What actually happens under the hood? We've always got a an emulated USB bus running so the the guest always sees hey, I've got a USB bus There's just nothing plugged in and Once you indicate that I want to give this to my vm It says okay I'm gonna add this device to this bus and then we show it to the guest and then the guest again in turn has to forward that Into the container and the container can see it There's two things we were really focused on here one was security Again, we dressed that with the jail and we made sure that the attack surface was as minimal as possible It's also written in rust and it's nice and memory safe and it's fuzz But the other issue here is is privacy because people somehow use lists of USB devices attached to machines to fingerprint and track users And we wanted to make sure the untrusted code running inside the container couldn't be another way to do that Again, this is a lot of steps We we have to create a device we have to export it to a vm We have to export it to a container we have to decide which device to export and not And again, we'll have a demo that shows how easy it is Okay What this is the last demo? Let's say I'm on my Linux enabled Chromebook and You're plugging in your phone You'll see a notification that prompts you to connect to Linux at this point Only Chrome OS has knowledge of your phone Linux doesn't even know that your phone exists and that's a good thing if you see here Your phone is not listed In in the USB list, but when you read on the command once you connect on the notification Your phone shows up in the list At this point you established Access to Linux to your phone Let's say you're working on a project. You're developing a cool app again in Android studio and You're ready to test it out You hit run and select the phone And boom just like that. You're able to test your phone test your app on your phone At this point you can debug and test out your app Finally you can go to settings and manage what Linux access to at any point of time So you can see how security is at the core of your Linux experience on Chromebooks You the user are in full control at all times of what Linux has access to We take advantage of a variety of UX patterns to make it simple to use and also native to Chrome OS the combination of principles of Chrome OS and Crostini make this experience pretty unique Thanks my turn All right Good. We got plenty of time. So we've been talking about a lot of details And I've been talking a lot about layers and jails and all that's important and It's a good reason for you to trust our normal flows and when I'm using my Chromebook I almost always stay within these common workflows that we've polished and made sure work However, a lot of that Technical detail I was talking about is still usable and we've left hooks in for you to play with it So I'm glad I've got time left so I can go through a few of these examples and kind of just wait your appetite for what else you can do We don't test this stuff We don't support this stuff We really want the standard flow to be enough for everybody, but every once in a while There might be a reason you want to do something a little more advanced or You know, you might just want to go have fun and play with things under the hood. We're tinkerers, right? It's supposed to be So we'll go through and and show how some of this stuff works All this is going to be from the Chrome OS shell. This has been in Chrome OS since longer than I have And so control alt T gets you a shell. There's a set of debug commands you can run We're going to focus on one command, which is the the VMC command that we added to control virtual machines and containers The basic command you can do a VMC list. It'll show you what VMs you have installed on your system The default VM is called terminal So hopefully the font's big enough And you can see what size it is The terminal VM is the one that all the demos were done for the slides before so it's up and Running we've made a shortcut to enter a container inside of VM So if you want to go into the default container the containers named penguin again, that's that's where we were doing all these demos from So the there's a VMC container command to get you into there We'll pop out of there and then we'll pop back into just the VM. So VMC start enters your virtual machine without entering your container So if you go back to my layers, it's it's the one in the middle the thing that LXD runs in and The reason you'd want to be in here is if you want to manipulate or change containers So I mentioned we used LXD There's gonna be a lot of LXC commands. That's the LXD control program. This is well documented online and Most of it will work inside Chrome OS just like it does on a default to want to install The first one you can do is a list. You can see we've got penguin running. We have one container. It's up and running It's got an IP address So we've got our one container. We might want to play with it a little bit and Before we do maybe I want to make sure I can get back to a state where I know it's good right because I've broken them before it's nice to be able to just go back to where I was and play around without worrying so Standard LXD command. It's called snapshot And you give it your container name and you can give it the name of your snapshot And now you've got an image saved that you can go back to if you break things This is a copy on right to we use butter FS in the VM. So you're not eating up a ton of disk space We can get info on our container. This gives a bunch of information Again, you can go poke around with this on a Chromebook if you want to the important bit here Is that we've got one snapshot at the bottom the IO one snapshot we just created You can have multiple snapshots. It's got a date on it to help you remember if you didn't use a very creative name And then when you want to restore it back LXD restore these are well-named commands. They did a better job with this than I did If you really want to go and play with different things sometimes you want more than one container So I've got my penguin container And I'm gonna go say install some different libraries in this one Maybe I want to have a container that's got Python 2.7 and a different one that's got Python 3 Or maybe I want a different container for writing go then the container I have for writing Rust So we let you do that you can create as many containers as you want disk space limited These do do cost disk space The most basic way to start off a new container is to copy an existing one. There's an LXD copy command The example up here copies the default penguin container over to a new container named Kingfisher You can list the containers got to by default containers are stopped. So we have to start them Now we can list to there. It's running and You can jump in you say I want to run bash and Kingfisher And now I've got a shell in my new container and I can go off and install whatever random toolchain I didn't want in my default container Taking that one step further We chose Debian because it's kind of the easiest thing for us to do That we didn't want to tie you down to that though. We support the Debian workflow We support some guest packages that are installed in Debian by default But some people want to use their favorite distro and there is a a huge amount of distros available From the image server that canonical runs We'll install an arch one here I'm not I'm not an arch guy. I don't really know much about arch But some of my co-workers talked to me into doing this and playing with it So now you can see we've got three containers And I've got two Debian containers my penguin and my Kingfisher and now I've got something called arch test And again, I can enter it by telling it to run bash And if I want to install packages in this one, I'll use Pac-Man instead of apt. It's actually it's actually arch I promise That's just a taste of what you can do from here If you go and look at the LXC and LXD documentation online, you can get some more ideas There's even some help online about installing other ones and getting them to integrate better with the GUI if you want more than just a command line All right So Dylan just showed you a bunch of the really cool tricks you can do with Crustini when you go under the hood and if you're interested in this kind of thing We really recommend checking out the Crustini subreddit The folks there buying features as soon as we release them sometimes even sooner And they're also really welcoming to new users of Linux on Chromebooks So if you have any questions, please check it out and a big thanks to the folks there So that's Linux on Chromebooks as you can see we already support a lot of web and Android developer flows And there's a lot more to come both in supporting other developers and in expanding what we can do with new Capabilities like multiple containers and back up and restore We're going to keep applying these principles of simplicity and security To give you the best developer experience possible Whenever you're ready, we hope you'll join us Thank you