All right, so our presenter today is Sarah Romkey. She's a graduate of a dual program, M-A-S and M-L-I-S, from the University of British Columbia in 2008. That's not so long ago, Sarah. She's the Archivematica Program Manager at Artifactual Systems. She's responsible for community management, requirements gathering, testing, and release management for Archivematica. And as you may know, Archivematica is an open source software solution for digital preservation. And as an aside, I've met Sarah in person at UBC, or at least in Vancouver, at Enterprise Trust Meeting. So it's wonderful that she's great to speak with us today. And Archivematica is used by Archivists and digital curators to process digital materials and make standards-compliant packages for presentation. So Sarah will give us an introduction to Archivematica, how it's being used at large and small institutions. I'm eager to hear that myself. And then discuss the importance of open source for digital preservation. So I'm going to turn this right over to Sarah. Thank you very much. And thank you, Pat, for the invitation today. I'm very pleased to be presenting on Archivematica to all of you. So as was mentioned in the introduction, Archivematica is an open source platform for digital preservation. So that's what we'll talk about today and talk about how it's being used and how it's designed and what are some of the principles that we follow when we're designing and releasing Archivematica for use to the public. So Archivematica is developed primarily by Artifactual Systems. And we're a company based here in Vancouver, British Columbia. And we're the lead developers of both Archivematica and another application called Access to Memory or ADM. ADM is used for providing access to and describing archives online using standards-compliant description templates. So Artifactual Systems is really a company that's led by archivists and librarians. It was started by a graduate of the same archival studies program that I came through, which the person who started our company is Peter Van Garderen. He's quite well-known in archives and technology circles. And he started Artifactual as sort of a consulting business but quickly grew in software development where he saw some real gaps in the available tools for describing archives and providing access to them and also for digital preservation. So the rest of our team aside from us archivists here, obviously we have a lot of technologies here. So we have software developers on staff and systems administrators who help us deploy and test and develop Archivematica and ADM. But we're really led by an archivist and by our team of archivists. And we start with archival requirements when we're looking to further develop the software. So some of the salient features of Archivematica, it's important to us to emphasize that it's free and open source digital preservation software. And you can see our software license there. So we make all of our code available to the public. So anybody can take a look at the code and understand if you have the technical ability to look at code and understand how software works. And it's all available to you. There are a number of Archivematica users who are supported by us. One of the ways that we continue to operate as a small company is to provide support and hosting for using Archivematica and ADM. But just as many as not more users who use the software because they've installed it from its source and they're using it without any software licensing or so on. I'm going to talk a little bit later about how open source software is never actually free. It's free in some senses and not free in some others. So we'll talk a bit about that later. Archivematica follows best practices and standards. Particularly it follows the OAIS or Open Archival Information System reference model very closely. And that reference model is the closest thing that we have in the digital preservation world to a real standard for how you should be preserving digital content. At least it's the standard offers which we're all operating at the moment. We can never really say that the software is going to make you compliant with OAIS. Anybody who's familiar with the Open Archival Information System reference model knows that there's a lot of elements to that standard that have to do with human beings and have to do with budgetary matters and policies and practices and you can't really use software to make sure that you're compliant with those things. But we follow the reference model very closely and if you use Archivematica then and you're familiar with that reference model then you'll see familiar terminology throughout. We also use a number of other standards that are considered best practice in the community right now. For example, we use Bagot to package content that's being preserved to the system. We provide a way to enter double and core metadata and we have a very, very robust premise in that implementation. My boss Evelyn, who's the president of our company, she's on the premise editorial committee. So we emphasize our premise implementation pretty heavily and we're pretty confident in the way that it's being used. So we're pretty proud of that. Part of being open source in our definition of open source is that we have no barrier to participating in our user groups or community or our documentation. So you can find all of the documentation for using Archivematica online and as much as possible we try to develop out in the open. So we try to put our requirements documentation online so that you can see what's coming up and after a feature has been released you can sort of look back at the development documentation and understand what was the reasoning behind why we developed it a certain way. And the kind of fundamental goal of using Archivematica is to create consistent, system-independent archival information packages. And that's a term from OAIS. So again, if you're familiar with that reference model and you know what I mean when I say Archival Information Packages or AIPs for short. So the idea is that Archivematica is really like a pipeline that you put your digital content in one end. Archivematica helps you perform all kinds of digital preservation actions and we're gonna talk about those a little bit later. And at the end of the process you've packaged your material together in a way that can be understood by other systems not just Archivematica. So it's really important to us that Archivematica can be used to create these Archival Information Packages that if in the future you decided not to use Archivematica anymore, that should be fine. You shouldn't need to continue to use Archivematica to understand these packages that you've created for long-term preservation because you should never be relying on a single piece of software to understand content that you're trying to preserve for the long term. That would just be creating another layer of complication to digital preservation and it's complicated enough. So hopefully there's some doctor who stands listening to this right now because otherwise the joke may be kind of lost on you but we like to say that Archivematica is big only inside. And, okay, at least one person gets the joke, so thank you. So the reason why we say that is because it's providing more than just a way to package things for storage. If you open up an Archival Information Package that's produced by Archivematica, you'll find metadata about the files that you're preserving. You'll find logs that have to do with the actions that have been taken during the process of digital preservation. And you'll find files in formats that are structured in such a way that help protect against software obsolescence. So one of the fundamental problems, of course, of digital preservation, as we all know, is that as time marches on, the formats become more and more risky to use because the software to support them may go away. So we try to keep up with the community best practices in terms of what formats are best for long-term preservation and will normalize the files that you put into Archivematica to suit long-term preservation. Having said that, all of this is very much up to the individual institutions who choose to use Archivematica. There's a lot of flexibility in the system and I'm going to talk about how you can change those rules and make your own rules and decide for yourself what formats should be used for future preservation or if normalization should even happen. You may want to take a different approach to digital preservation and that's very valid as well. So as I said, Archivematica kind of has this fairly streamlined goal at the end of the day for being a complex system that really is aiming to do this one thing really well and then some other things also well that this is really the core functionality. So what we want to do with the content that you process through Archivematica is you want to create archival information packages or apes. And to do that, a bunch of actions are performed on your content as they make their way through the Archivematica pipeline. So we do things like integrity and virus checks, format identification, which is really important just to understand what should be done with the files to continue preserving them and continue processing them and format identification may sound really simplistic but we use tools in Archivematica that inspect the file using more than just this file extension. For those people who have a long history in computing and for anybody who's worked with files that were created long ago, file extensions are not a reliable way to understand files. Back in the early days of personal computing, they were used all kinds of weird wacky ways to indicate that a file is like a memo or a text file or whatever and it doesn't necessarily have anything to do with the file format. So we use tools that allow you to get more precise information about the format that you're preserving. So is it a JPEG but what version of JPEG is it? For example, we do characterization of the files. So making sure that they fit certain criteria for being that kind of file, metadata extractions, the technical metadata, when was that JPEG created and by what kind of camera and that kind of thing. We've integrated certain forensic activities into Archivematica as well. We're really happy to have implemented a tool from the Bit Curator project, which is a project that we feel is a really important one that really aligns really well with the workflows that Archivematica does and their project really just aligns with the same kinds of philosophical goals that we follow here. So you can use bulk extractor from the Bit Curator project, which is something that helps you find personally identifying information within files. We do format validation and you can also do some basic arrangement and description activities and we've integrated a transcription tool into Archivematica as well. So these are all actions. Some of these are actions that you would absolutely want to take on everything that you put into the system. You know, doing a virus check is a pretty basic activity when you're doing digital preservation. Other things may be optional for you and that's all quite flexible in the system. So if you don't want to do transcription of your files because maybe your files don't have text, maybe there are images that aren't, you know, you can just scan those textual documents. So you can skip the transcription activity. You don't have to do it if it's not relevant to your workflows. When you're working with files within Archivematica, I mentioned earlier that we have the option to normalize into formats that are considered better for preservation. So we try to follow as best we can the current standards for what's considered good preservation practice. But as I mentioned, and I'll talk about this in more detail when we actually take a look at the software tool, you can change all of these rules so that they suit your local purposes. We use the Begit specification to package together the AIP together with the logs and metadata and the metadata is all recorded in a METS XML file that has premise within the METS. So you can, for example, Archivematica will automatically record certain premise activities. So any events that have to do with, you know, your buyer's scan, your normalization and format identification, all those things are recorded automatically without any intervention from you. But you can also manually write rights records using the premise standard as well. So if you want to, you know, have the copyright message in the METS file, you can do that, you know, if you need it there for longevity. And finally, just another important characteristic of Archivematica is that it's storage agnostic. So what we mean by that is if you have it installed locally on a server at your institution, then you can be sending your archival information packages when they're ready for storage. They can go to a local server. They can go to a mounted server. They can go to certain cloud storage integrations that we've done. So we've done integrations with Swift, with DuraCloud, with Archivem. So we try to make it as agnostic as possible. Archivematica is not trying to fulfill your storage goal for you. It tries to handshake with as many different storage systems as possible. And the list is just growing all the time and this is part of the model that we follow. So when we develop Archivematica, we use what's called the Bounty Model of open source development. And so what that means is if, say an institution has a need to integrate with a new storage technology that hasn't existed up until this point, then we can develop that functionality for them. Artifactual systems can. And the next time that we release the Archivematica software, we'll include that new functionality in the general release. So everybody benefits from your institution's sponsorship of a certain feature or goal. Another kind of package that Archivematica can make is it can make what's called again using terminology from the open archival information system. It can make dissemination information packages or DIP. So these are packages that are kind of purpose built for access purposes. So whenever possible, we normalize to access friendly formats. Depending on the kind of content that you're trying to preserve, there may not be an easy to access normalization rule to an access format. So, you know, really specialized file formats that are used in certain sectors like, you know, research data and that kind of thing. Sometimes there isn't really a good format to use for access purposes. So when it's not possible to normalize, we just make a copy of the original and that's part of your dissemination information package. And then as far as providing access to your digital content, what we try to do is we integrate or we call it handshake with a number of different access systems. So one is Adam or access to memory, which again is a piece of software that we develop here at Artifactual. And it's used for online description and access primarily by archival institutions. We also have integrations with Content DM, Archivist Toolkit, Archive Space. And we also have versions of this workflow that work with Island Dora and DSpace. But both of those currently work as a deposit system. So the workflow would normally be that users are depositing material to Island Dora or to DSpace. And then the material then flows through the system and arrives on Archivematica's doorstep to be preserved. But we could develop in the future if it were sponsored by somebody who needed it, the flow of content to go in the other direction where you start with Archivematica and send content to Island Dora or DSpace that would certainly be possible as well. So in our experience, different institutions have different reasons for the access systems that they've chosen. And in some cases they have many access systems. We have done a lot of work over the years with the University of British Columbia Library. They're one of our earliest Archivematica implementers and development sponsors. And out of this list, they currently use three of those systems. So they use Adam for some content. They use Content DM for other content. They use DSpace for some content. So there's a variety of institutional reasons, both practical and historical, why they use so many different access systems for different types of material. And our goal is to make Archivematica sort of the center of all of these in terms of the digital preservation activity. So we don't wanna lock our users down to only using certain workflows for access. You should be able to describe content in whatever system makes the most sense for you. And Archivematica's goal is to handshake with that system so that you have a connection between the material that you're providing access to and the material that you're preserving for the long term. So I wanted to talk a little bit about digital preservation to kind of learn generally and what some of the options are. And this is sort of segueing into my pitch for why a system like Archivematica works for many institutions. So you couldn't rely on functionality within other systems. So if you're using a repository such as something like Fedora or Hydra, there are certain aspects of digital preservation that are covered within those repositories within Island Dora as well. That's another good example of a system that covers some digital preservation functionality. And that may be enough for music pieces within your organization. And what I would advocate for is just taking a close look at what are your digital preservation needs? What are the use cases? And what repository are you using and does it cover what you needed to cover for the long term? There was a period of time and just for some people that still exist, we're using a homegrown system. Was their digital preservation works well? So by homegrown system, I mean some kind of application that you've developed in-house. There was a period of time when things like Archivematica and PreservaFend Rosetta, these systems didn't exist yet. And all kinds of institutions were trying to tackle digital preservation and a lot of them ended up kind of building a homegrown system. So some of the things to consider is that you have to maintain that code. It has no community of users around it. So there's kind of a sustainability of the tool that you have to consider. You and your staff are the only people in the world with digital expertise or with expertise in that particular system. So you need to consider that if you want to continue to use like a homegrown system over the long term. We have some users now who are moving themselves away from using a homegrown system and into using Archivematica because they just feel that it's a more sustainable practice for them over time. And one example of that is the Bentley Historical Library at University of Michigan. They've been doing a major development project with us and have been blogging about the experience. And it's really interesting to read that log and to take a look at where they've come from in terms of what they used to do for digital preservation and what they plan to do once they've implemented Archivematica and a couple of other systems for part of their workflow. Another way to approach digital preservation is just to manage all of these digital preservation actions tool by tool. And that's kind of where Archivematica got its roots, actually. Peter Zangardin, he was looking at the landscape of all of the really excellent open source tools that are available for performing different digital preservation actions. So for example, there's tools that you can use for virus scanning. There's tools that you can use for check summing. There's tools that you can use for format identification. And he was thinking to himself, it just seems impossible that your average everyday archvist is going to be able to learn to use all of these tools. So you need a relatively high level of expertise to take this approach. And it's kind of difficult to maintain. It's also very difficult to record all of your preservation actions in a really consistent manner if you're doing that. So recording all of the output from those tools, you're probably going to be either doing a lot of manual work or writing some scripts to kind of connect all of the tools together. However, that's basically what Archivematica does. There's some scripts within Archivematica that are solely used by Archivematica. They're the only tool that we know of that are using them. We've written them to sort of kind of make the tool one cohesive thing. But it integrates many, many tools that are available in the open source world. And we see this as a major benefit because it brings in all of this sort of current best practice and widely maintained and used tools from across the digital preservation ecosystem. So finally, that brings us to digital preservation systems like Archivematica and they come in both proprietary and open source forms. So examples of proprietary versions are software pieces like Pizzerbica or Rosetta and they have very similar kind of goals to Archivematica in terms of looping together all of these digital preservation actions into one cohesive system that is relatively easy to learn how to use as opposed to using all of these disparate tools from the command line and trying to figure out how to maintain all of the output from them so that you can store it with your digital archives for the long term. So why open source? Why do we choose to take this route for Archivematica? So it's been a part of our model of development ever since we started. Archivematica has always been an open source tool and it always will be. We think it's really important for you to be able to understand your system and see what's happening under the hood. Not every user of Archivematica is going to be going into the source code and poking around and understanding what's going on. But at least if you want to and if you have the ability, you can. And all of the output from Archivematica is shared with you in a relatively easy way throughout the tour and I'm going to show you that a little bit in a demonstration later. It's really important to consider the factor of vendor walk-in. So if you want to take your AIPs, those archival information packages that you've made with Archivematica and store them in a totally different system and open them and understand them in different ways, you are 100% free to do that. There's no requirement to continue using Archivematica going forward. And we think that that's really an important aspect and if you were working with a proprietary vendor around digital preservation, I would personally be asking them a lot of questions about what happens when we choose to stop subscribing to your service because that day will inevitably come. When you want to use a different tool or you have to for some reason. Part of being open to us is also using open standards and open formats for metadata and packaging. So by using things like premise and nets and Dublin Core and the OAAF reference model, we're referring to open best practices that are widely understood throughout the community. You also benefit from this sort of network effect of information sharing and constantly improving tools. So I just mentioned how Archivematica uses all kinds of other open source tools. As those improve, they get folded into Archivematica and you just continue benefiting from this sort of widespread use of the tools and also the ability of the users to maintain a community within themselves and share workflows and share ideas and share bug reports and that kind of thing. And finally, you get to actively participate in the future of the tools that you use. So if you have ideas about Archivematica, you have the ability and we welcome you to submit them to the community.  Some institutions aren't able to do that, but you can still participate by testing the software, reporting bugs, giving feedback, sharing ideas on the user form. That's all a way to participate in the open source community in a way that's kind of more difficult to do with proprietary software. However, open source isn't all butterflies and rainbows and I don't want to pretend that it is. So we like to say that open source software is more like a free kitten than it is like free lunch or a free beer. So if I take you out for a beer and I pay for it, then I've given you a free beer and there's really very little commitment on your part. There's little that you have to do. But if I give you a free kitten, you have to take care of it. You need to feed it, you need to give it a good home, you need to scratch behind its ears or something that's going to leave you as you're not going to have the benefit of having a kitten maybe longer. So we're very open and upfront about this. We think it's important that our users understand this, that if you're using open source software, you're going to be paying for it in some manner or other. You're going to be either paying in-house staff for IP support and for installation and troubleshooting or you're going to be paying a vendor like us to provide you with support to help you out when you need it or you may be paying for hosting, which is an option as well. You do need some in-house technical ability or willingness to buy these services. So like I say, it's going to cost you in some manner or other. Really, those benefits I just talked about, you'll find the most beneficial if you take the time to be actively participating in the open source community.   But I do think that you get a certain benefit from it that does take time. So if you don't have the time, you may not be feeling the full benefits of using open source. And finally, institutional buy-in, although this is really improving. So years back, like, I don't know, five, 10 years ago, when archivists were going to their IT departments and saying we want to use this tool, it's open source, you have to deploy it on Ubuntu, which is our preferred flavor of Linux as a server environment for Archivematica. IT departments, you know, sometimes will say, whoa, whoa, whoa, you know, we're not into this open source thing, it's too much work, it's too risky, we don't want to do it. But this is really getting better and we've observed this over the past few years that more and more IT departments are happy to participate in an open source project, particularly if there's a community of support behind it and Archivematica is getting enough uptake now that it doesn't scare quite as many IT people off as maybe it's somebody used to. We have a colleague who doesn't use Archivematica, she uses our other software system, Adam, and she was really worried when she went to her IT department to say, you know, I've evaluated all of these different software tools and the one that I really want to use is Adam and it's open source. She thought for sure she'd be shut down, but her IT department was thrilled. They were like, yeah, this is going to be really fun. We get to look under the hood of this software and we get to really know it and we get to play around and help you make some local customizations and that kind of thing and they were actually excited for the opportunity. So maybe that aspect is getting a little bit better. So I'm going to leave this slide and open up a demonstration that I can show you. It won't be so much of a demonstration as more of a tour through Archivematica to give you a sense of what it looks like. Watching a digital reservation system work is not totally thrilling.  So instead, we'll do sort of a tour of Archivematica and take a look at where you can find user documentation and so on. So I'm just going to, okay. So hopefully now you can see an Archivematica screen. Pat or one of the other moderators, do you want to just confirm that for me? I can't hear anybody else. I don't know if you're hearing. Yes, I could see that. Talk. Okay, great, perfect. So this is what Archivematica looks like when you log into it. Yeah, so Archivematica is a web-based tool. It looks good. Okay, great, great, perfect. So as I was just saying, Archivematica is a web-based. So you interact with it. Most users interact with it through a web browser. So we use Chrome or Firefox, typically. You can interact with Archivematica through the command line if you prefer to do that. But most of our users now, this is how they use Archivematica. So if you are, again, if you're familiar with the Open Archival Information System reference model, then you'll see familiar terminology here. So transfer, ingest, archival storage, preservation planning, access, and administration. These are all sections of that reference model. So that's not to say that by using each of these tabs in Archivematica in turn, that you are fulfilling all of the requirements of that reference model. But it's just to say that when you're taking actions in this part of Archivematica, this is the area of the reference model that you're working within. So the basic idea is you kind of go left to right. So you grab materials from a mounted system like that server or a cloud storage. And you get it into your Archivematica pipeline and you start in transfer. And in the transfer screen, we can see here this gray box that I'm kind of moving my mouse around right now. This is representing everything that's already happened for a transfer that we moved into the system at some point. So this is a test server that we're using of Archivematica right now. So at your institution, you would have your own installation and you might have multiple installations actually and I'll talk about that in a few minutes. So this passage of materials has gone through the transfer process. And here you can see all of these microservices and a microservice is just sort of a category of jobs that need to be performed for the content. So here for example, I've clicked on the microservice scan for viruses and it shows us the jobs that it has to do in order to be able to scan for viruses. If we want to see the output of the tools, we can click on this little gear and it will open and it will show us all of the output. So if you wanted to go through and really see and make sure that everything past virus scanning, you can do that. You don't really need to do that in terms of virus scanning because if it finds a virus, it just completely boots the process and stops it and gets it out of your system because you really don't want to be transferring in viruses into your digital preservation environment, obviously. But the same goes for any of these microservices. They're all kind of grouped together, all of the jobs that are required to do everything related to the microservice. So here for example, we have identify files on that. I was talking a little bit about that earlier, how that's sort of an important thing to do in the most accurate way possible for digital preservation purposes because it helps define how you're going to manage and preserve those files over time. So here if we want to see the output of the tool, we could open it up and take a look. So I don't know if some of you may be looking at this and thinking, you know, I'm not seeing output that makes a lot of sense to me. I'm not really sure that I would be able to understand what's going on in the system. Not all of our users in not all of our workflows really feel the need to look at this output. But my point in showing it is just to show you that it is possible to see it if you want to. And if you do want to learn more about these tools and looking at the output and starting to parse and ask questions to others who have more knowledge about, you know, what does it mean when it says that the command did this and what does this error mean? We do a lot of troubleshooting to looking at this, the output of these tools. So once all of these kind of initial transfer activities have taken place, the material moves into the ingest tab. And this is where Archive Metacris kind of does all of its work that leads up to packaging for preservation and packaging for access if you choose to do that. So here that same example that we were just looking at is actually sitting at a microservice right now that's requiring a human to take the step of giving Archive Metacris an instruction on what it should do. So if you wanted to, you could automate all of the services all the way through and you can do that in this administration tab. So all of these little check boxes here in this list, these all represent a decision point in the Archive Metacris system either in transfer or in ingest.  If you don't want it to happen automatically, you want a human to actually click and make the decision on a case-by-case basis, you leave it unchecked. So we have certain institutions who are running Archive Metacris at such a scale that they have multiple Archive Metacris installations which we call each one a pipeline. So multiple Archive Metacris pipelines running for different purposes. And part of the benefit of running more than one pipeline is that you can preconfigure for certain kinds of material. So for example, we have some institutions who have born digital material as well as digitized material. And they run very different processes based on what kind of material they're processing. So for born digital material, you're going to be concerned with things like finding, personally identifying information, for example. You may be only wanting to normalize for preservation and not for access because maybe it's your, you don't currently have a policy for providing access to born digital material. You may just have different processes depending on your local needs and your policies. So in that case, it'd be advantageous to you to have one Archive Metacris installation that's running for born digital and another that's running for digitized that doesn't have the same needs. If you digitize the material, it's unlikely to have personally identifying information that may not be of concern to you. So you can preconfigure the pipeline so that it skips that step and you don't have to run the process. Once material has been packaged for preservation, you'll find it in the Archival Storage tab and it's listed here for easy access but it's really just pointing to its ultimate storage location. So in this case, because this is a test server, it's just the storage location is just on the same server that Archive Metacris is installed on but if you use a service like DuraCloud, for example, you can store your archival packages in DuraCloud and retrieve them from here just for easy access. So you can do searches for material if you want to find certain things. You can do a file search so that you can find individual files just in the packages that you've stored. The Preservation Planning tab is a really interesting area of Archive Metacris and I wanted to talk about it a little bit. So we've made the Preservation Planning tab so that it lists all of the rules and commands for the different preservation actions that you take in Archive Metacris. So alongside here, we have things like identification, characterization, extraction, so that's like extracting packages like zip packages and things like that, normalization, transcription and so on. So if you wanted to take a look at some of the rules that Archive Metacris is going to follow to do certain actions, you can do that through this screen and the rules that Archive Metacris comes with when you install it, it comes from something that we're calling the Format Policy Registry. So we maintain this database of formats that all Archive Metacris installations can get access to. But if you wanted to, you could make local changes. So here, for example, under normalization, I'm going to go to rules and I could search for a certain format. So for example, if I wanted to search for VNG or digital negatives files, then I can see that for different versions of a DNG, it has rules for access and it also has rules for preservation. So for access, we can see here that if you tell Archive Metacris to normalize for access by default, it'll take these various versions of digital negatives and it will make a copy of them to JPEG using a script that we're calling Converge and it's using image magic as the backend tool for that. So if you wanted to replace that, say, you have an access system that needs tips, not JPEGs. So you could replace the rule. I'll just load in a second here. You could replace the rule so that it uses a different format. So if you wanted to, say, change it to tip instead of JPEG, you could do that. If you want to change the command, you can do that as well. So again, under normalization, I'll go to commands and you can see the different commands that are listed here. So if you want your tip files created in a certain way, you can open up this command and you can replace it. And if you have some knowledge of the tool that it's using and how it works and how you write commands for it, you can make changes here. So for example, you might want to write a command that makes a tip of a certain size because that's what you need for your access system or something like that. So there's a little bit of programmer knowledge that would be helpful to have here, but it's the kind of knowledge that I think a lot of archivists and librarians and curators would certainly be able to learn and obtain if they don't have it already. And if not, then somebody in your IT staff would probably be the people to help you with this. And you can always ask for help on a major forum as well, of course. So I just wanted to show you that this system of rules and commands is meant to be quite flexible so that if you have local needs, you can address them. We have sort of a future goal for this format policy registry to take it and make it so that you can share your rules with others. So for example, one of the sort of powered users, I guess you could say on Archivatica is MoMA. The Museum of Modern Art in New York, they're using Archivatica to preserve time-based artwork. So things that are like, you know, video recordings and things like that. So a smaller museum may not feel like they have the same level of expertise as a place like MoMA. So they may want to look to MoMA's rules and say, whatever you're doing for preservation planning, we wanna do similar things here. And they'd be able to share rules back and forth if you choose to do so. So that's just kind of an idea, vision for the format policy registry that we have. Hopefully someday we'll be able to achieve that. Certainly, if it was of interest to an institution to sponsor it, it would be really interesting talking to them about it. But we've set it up in such a way that that kind of abstraction from the system is possible. So that you don't have to use the kind of out of the box rules that Archivatica has. So I'm gonna take just a few minutes to talk about a few of the documentation sources for using Archivatica. And then we'll leave the rest of the time for questions. So this is the Archivatica website. You can find it at archivatica.org. And under documentation, you can find documentation for all of the recent versions that have been released. So if you are using version 1.4, you'd go to that documentation. And the documentation, similar to the software itself, also refers to the open archival information system reference model. So here under transfer, you'll find instructions for all of the relevant activities that you do in the transfer tab, saving an ingest, and so on. So all of our documentation is completely open. Anybody can access it. You don't need like a login or anything. It's not kind of paywall. So feel free to take a close look at that if you're interested. We also maintain a wiki. And the purpose behind the wiki is, well it used to be our only source of documentation actually, but now what we use it for is primarily for development purposes. So if we go to the development documentation section of the wiki, we can go to say, for example, requirements and look at a feature and find out more about how it was developed and why. So one of the big things we've been working on right now is this new tab that we've been developing with the Betsy library that we're calling the appraisal and arrangement tab. So if you wanted to read up on some history and kind of figure out like why we did this development and how, see some early iterations of what it was going to look like and then see how that changed over time, then we try to make as much of this kind of documentation as open as possible so that we just think it makes the software more usable by more people if you can understand how it was developed. And then finally, if you really wanna get into the nuts and bolts, you can look at our code. So we use GitHub to manage our code. You'll find us at github.com slash artifactual and you'll see all of our projects there, including Archismatica. So if you really wanted to get into the code and see how Archismatica is developed and you have the technical knowledge to do that, then you're welcome to do so. So I'm gonna stop sharing my screen so that I can go back to the blackboard. And I'm ready to take questions from any of you. So please go ahead and shoot. I think you could either type questions into chat or use your microphone if you have it connected to the desk. I see Laurie is typing something. Did you wanna take the mic, Laurie? No, no questions for me. I have my own Archismatica sandbox, as you know. Well, I'm a pro Archismatica person and I love the work they've done. And I think it's been a very useful thing for our community. Excellent, thank you so much, Laurie. Anyone else have any comments or questions? I have a question. Okay, go ahead, Sandy. What was the name of that museum in New York? I didn't hear that, it was MoMA? Yes, it was MoMA. Okay, thank you. So MoMA, they use Archismatica and they also helped us develop a new system that we're calling Binder. They're currently the only user that we're hoping to change that really soon. There's some, they had digital preservation management needs that Archismatica wasn't really meeting on its own. So things like reporting and statistics and connecting, kind of connecting the dots of things. So if you're preserving an artwork that requires a certain piece of hardware to run it, how do you manage that information? So we built this new application for them and it's called Binder and we've open sourced Binder. We've put the code up online, but there's some challenges relating to making it work like outside of the MoMA context, so we're currently pursuing opportunities to make it more generally usable, but if you look on YouTube, if you search for MoMA Binder, you'll find some presentations and screen tasks about Binder and why it's important and how they're using it, and it's a pretty interesting tool. So I'd recommend taking a look at that, if that interests you. Particularly if artwork preservation is of interest to you, it's a really interesting tool to look at. I guess I need digital artwork really. It has nothing to do with managing, you know, like physical conservation of art. I'm going to thank you for presenting to us today and turn off the recording, and if anyone has a last minute question, I'm sure you'll be able to get it in. So thank you, Sarah. Thank you.


Hi, I'm Sean Christofferson from Intel. Welcome to the 2020 KVM Forum presentation on Intel Trust Domain Extensions. Trust Domain Extensions, or TDX, is a set of hardware and software features and upcoming Intel CPUs that allow for the creation of hardware-isolated virtual machines Trust Domains. Trust Domains provide memory and CPU state confidentiality and integrity while allowing the CSP or platform owner to maintain control of system resources and maintain platform integrity. On the hardware side, TDX adds extensions to Intel's ISA and to VMX Intel's virtualization technology as well as memory encryption with integrity. On the software side, there's a new CPU-attested software module that implements the bulk of the TDX functionality. Due to time constraints, I'll mostly be focusing on the functional aspects of TDX as well as the impact on Linux and KVM for an in-depth view of the security properties of TDX and things like remote attestation. Please see my colleagues' presentation at the Linux Security Summit. On the hardware side, there's a new architectural CPU mode called Secure Arbitration Mode, or SIEM. SIEM is effectively a sub-mode of VMX root mode. It is slightly more privileged in that it has access to some new assets in the system, but beyond those, it is the same privilege level as VMX root mode. SIEM mode can only be entered through VMX root mode via a new instruction, SIEM call, and then conversely, can be only exited from SIEM root through a new instruction, SIEM RAT. Being a sub-mode of VMX, SIEM mode has full access to the VMX instructions so that it can create VMCSs, manage VMCSs, and ultimately run VMs through those VMCSs through VM launch and VM resume, transitioning between SIEM root and SIEM non-root. On the memory side, TDX builds on MKTME to add integrity, where integrity in this context means that if software accesses integrity-protected memory with the incorrect encryption key, the hardware will poison memory and ultimately result in a recoverable machine check when that memory is next accessed. TDX also partitions the MKTME key ID space into shared and private keys, where private keys can only be used and programmed in SIEM mode. So, for example, the untrusted VMM cannot take the private key for a trust domain and shove it into its own page tables and read out the guest memory. That operation will fail. TDX also adds a shared bit in the guest physical address space. This allows the guest, the trust domain to select between shared and private memory and ultimately allows the guest to decide which memory is shared with the outside world and which memory remains private within the trust domain. Also related to shared memory, a second EBT pointer is added to the VMCS. This allows the EBT tables to be split into shared EBT tables that are managed directly by the VMM and private or secure EBT tables that are managed through the TDX module. Again, the CPU switches on the shared bit in the GPA to select between shared and private. So if this bit is set, the CPU will start its EBT walk from the shared EBT pointer. And if the shared bit is clear, it will start its EBT walk from the secure EBT pointer in the VMCS. On the software side, there's a new Intel developed module called the TDX module that runs in SIEM. The TDX module is digitally signed and verified but not encrypted. The TDX module is responsible for managing guest private state, including context switching register state, Xsave state and select MSRs. And the TDX module also directly controls the secure EBT tables, the VMCS for the trust domains and so on. Because the untrusted VMM does not have access to guest register state and guest memory, traditional emulation of VMX instructions cannot occur without explicit asks from the guest. So the guest needs to be enlightened to explicitly request emulation of an instruction. To aid in that, the TDX module will reflect any instruction that would otherwise VM exit into the guest as a virtualization exception. So this isn't all instructions that VM exit, only those that are not otherwise emulated or passed through by the TDX module. An example being many CPU ID leafs are emulated directly by the TDX module. Reflecting these exits as pound VEs allows the guest to run with legacy code that has not been enlightened. So for example, a legacy driver that is executing instructions instead of directly doing hypercalls to request emulation. The TDX module also exposes an ABI to the VMM to create and manage trust domains. This is analogous to how KVM exposes an ABI to user space to create and run VMs. So where user space makes CIS calls to create VMs, add VCPUs to the VMs, and run those VCPUs, the TDX module exposes ABI to the VMM to create trust domains, add VCPUs, and manage the use in those trust domains, and run those VCPUs. The VMM, KVM in our case, is still responsible for managing resources, including memory scheduling. And so this allows the VMM to maintain control over what memory gets assigned to a TD and reclaim that memory. But everything gets routed through the TDX module that would affect the security properties of a trust domain. Another notable software component in TDX is the Seamloader, which is an authenticated code module that is responsible for verifying and loading the TDX module. Once loaded, the TDX module was protected via a new set of range registers, the CMRR, and this prevents code from outside of the Seam module from poking into the Seam module and reading or writing its code and data. Another responsibility of the Seamloader is to configure the Seam VMCS for Seam call. So underneath the hood, Seam call is just a fancy variant of VM exit, meaning that when Seam call is executed in VMX root, it effectively is a VM exit from VMX root into Seam root, where Seam root is the host and VMX root is the guest state. So for example, when Seamloader loads the TDX module, it programs the entry point of the TDX module into the host RIP field of the Seam VMCS. At boot time, the kernel invokes the Seamloader ACM, which loads the TDX module into memory, again, protected by the SeamRR, and also does some configuration of the TDX module during boot. Then at runtime, KVM executes Seam call to invoke APIs provided by the TDX module, and the TDX module executes Seam RET to return control back to KVM. As mentioned earlier, programming of the MKTME engine is done by the TDX module for trust domains to program up the private keys. And these private keys are represented by the different color bands over on the left. All data structures and private memory of a trust domain are encrypted with the private key associated with that TD. This includes the security PT tables, the VMCS, XAVE state, et cetera. All the memory is conceptually owned by KVM in the sense that KVM does the management of that, even though it can't directly access that memory. So KVM controls the lifecycle of the memory, but can't directly access it or program it. There are 40 in change APIs provided by the TDX module that can be invoked by the VMM via Seam call. And these are all the usual suspects of creating a VM, adding memory to the VM, configuring the key used to encrypt the VM's private memory, adding VCPUs, adding entries into the PT tables and running the VM. The TDX module also provides APIs that can be executed by the guest. These are done via TD call, a new Seam only instruction. TD call is for all intents and purposes VM call, just with a different exit code so that the TDX module can differentiate between enlightened code executing TD call and legacy code executing a VM call. This API allows the guest kernel to do some introspection on the platform capabilities, except memory into its private memory space and to tunnel VM calls out to the untrusted VMM to request emulation, for example. In the kernel and KVM, during boot, the kernel will invoke the Seamloader ACM on the BSP and then configure the TDX module on all CPUs. And I'll talk about this a little bit later in a few slides. On the KVM side of things, the biggest change to existing code in terms of lines of code is to wrap the x86 callbacks in VMX to achieve VMX and TDX coexistence, meaning a single instance of KVM can run VMs and TDs side by side. And by wrapping those callbacks as opposed to introducing a new set of callbacks, we can do so without any meaningful performance impact to VMX or SVM. For TDX, we are able to reuse select portions of VMX. For example, IRQ and NMI trampolines for handling hardware interrupts, the post interrupt support in VMX, the EBT entry points into the KVM MMU page fault, and so on. Outside of VMX, there's moderate factoring to x86 in common KVM. We piggyback and repurpose the IL controls added by SEV and also do some refactoring of the lifecycle of VMs as the ordering of API is dictated by the TDX module doesn't perfectly align with the existing code in KVM. The most impactful changes for TDX are to support secure EBT in KVM's MMU. And we also likely need to modify the kernel MMU to support unmapping guest private memory, which I'll talk about in a couple of slides. In KVM's MMU to handle shared and private memory, KVM aliases the shared GPAs to private GPAs in the mem slots, which means that we effectively treat the shared bit as an attribute bit, as opposed to a real physical address bit. By doing so, we can hide, KVM can hide the shared bit from host user space. For example, when exiting to user space to handle emulated MMIO, KVM strips the shared bit so that the host user space only ever sees the kind of real or private GPAs. And this means that host user space doesn't have to be enlightened to understand the difference and doesn't have to be, doesn't have to manage separate memory pools for private versus shared memory. For secure EBT, TDX adds several new hooks into KVM's MMU to insert, zap and remove secure EBT entries. This is necessary because the secure EBT is managed through the TDX module. So whereas a traditional EBT management would involve reading and writing memory directly, with TDX the secure EBT can only be managed by invoking Seam calls to again, insert, zap and remove secure EBT entries. KVM still does maintain a shadow copy of the secure EBT tables. This is because Seam call is quite expensive. So if KVM were to invoke Seam call to read an EBT entry for every level of an EBT walk, handling page faults would be extremely costly in terms of latency. These shadows are used anytime we're walking the page tables. And so it's only when we actually need to modify an entry do we invoke the Seam call. And then secure EBT also needs an additional API from the MMU to allow adding translations without a page fault. This is necessary because the only way to load non-zero memory into a guest private memory space, aka load the initial memory image, is that can only be done before VCPUs are runnable. And to load non-zero memory, the secure EBT translations for the associated guest private memory must be in place. So long story short, we have to have the secure EBT translations before we can run VCPUs, which conflicts with KVM's existing model of populating the EBT tables on demand in response to page faults from the guest. On the private memory side of things, all private memory, so all memory that can be stuffed into a, handed over to the TDX module to create private memory for a guest must reside in a trust domain memory region or a TDMR. TDMR is just a software construct defined by TDX module that it uses to track metadata for system memory. And it does this so that it can detect attempts from the VMM to do remapping attacks or to hand the same physical page twice to a TD. So for example, mapping multiple GPAs to a single HPA in the guest to try and attack the guest that way. During boot, the kernel adds all RAM to the TDMR array and this allows KVM to allocate private memory through the normal memory allocator APIs, which it then gifts to the TDX module. So for example, huge TLBFS, transparent huge pages, MAMFD, an honest memory, et cetera, are all naturally supported simply because we're routing through the normal memory allocator. As for unmapping guest private memory, because integrity failures result in machine checks, leaving the guest private memory mapped in host user space would allow host user space to essentially induce machine checks at will. While it's theoretically possible that we could harden the Linux kernel to gracefully handle all these machine checks, there's definitely a certain amount of risk associated with that approach. So we're exploring unmapping guest private memory so that accesses from host user space to guest private memory would result in a page fault as opposed to a machine check. For shared memory, TDX allows the shared EPT in TDX allows the untrusted VMM to configure select EPT entries to generate EPT violation visualization exceptions. This means that instead of causing an EPT VM exit, faults to these addresses get reflected back to the guest as virtualization exceptions. The primary use case for this is to reflect MMIO addresses as pound BEs. So again, if the guest kernel is not fully enlightened and has code that is accessing memory, accessing memory mapped IO instead of doing direct TD calls, the hardware can reflect those accesses as pound BEs and then the pound VE handler and the guest can request emulation after decoding the instruction. The catch with EPT violation pound VE is that suppression is opt out, meaning that not present EPT entries if zeroed would get reflected to the guest as pound VEs. So from KVM MMU perspective, this means we have to support a nonzero init value for EPT entries. This isn't a significant change in terms of lines of code, but it's obviously touching a core part of the KVM MMU. As for more advanced features, TDX architecture supports large pages, both two meg and one gig pages. Two meg pages we haven't implemented yet simply because we haven't gotten to them. One gig pages on the other hand will require a little bit of complexity as there's some extra bookkeeping that needs to be done to first build the memory region using two meg pages and then promote to a one gig page. TDX also supports host page migration. So for example, to support NUMA balancing as well as page promotion and demotion. So for example, page migration for transparent huge pages to collect fractured pages and promote them into a two meg page. Status for Linux and KVM and QMU, the basic functionality in KVM is code complete where basic here means we can build a TD with an enlightened guest virtual BIOS and enlightened kernel, boot that guest kernel, which in this case is Linux guest, and have full access to all Verdi O synthetic devices so we can access the network and disk, et cetera, all within the guest. QMU is functional but not as code complete as KVM. On the KVM side, there are 40 plus files changed, little over 6,000 new lines of code and 700 changed lines of code give or take. Most of those changes being the wrapping of VMX's x86 ops. The code is publicly available on Intel's GitHub for KVM and QMU will follow shortly. In the near future, so effectively prior to upstreaming on our to-do list is large-stage support, especially two meg pages and host page migration and the unmapping of guest private memory. Longer term, our top priority is live migration and we also have line of sight to nested virtualization. Nested in this case, meaning nesting legacy VMs inside trust domains, we are not planning on supporting trust domains nested within other trust domains. Last but not least, if you want a bit of light reading, the specs for TDX are available on Intel's website. Thank you and hope you have a great virtual KVM forum in 2020.


This study compares the results obtained from five different anti-SARS-CoV-2 commercial assays, maglumic-hemilluminescent immunoassay, uroamin enzyme-linked immunosorbent assay, and five lateral-flow immunoassays, in 52 samples from patients and healthy volunteers. The study found high overall concordance between the comparative CLIA method and both ELISA and different LFIAs for IgG in IgM antibodies, with agreement ranging from 92.3 to 98.0 percent for IgG in 90.0 to 96.1 percent for IgM, depending on the kit. The concordance between CLIA and ELISA was 92.3 percent for IgG and 75 percent for IgA, compared to the maglumic-LIA IgM. These results suggest that LFIAs could be used in some settings where automated assays are not available, but with some limitations considered. This article was authored by Jakub Swadsba, Maciej Bidnarczyk, Tomasz Enisak, and others. We are article.tv, links in the description below.


Hello everyone, welcome back to a new video on dentistry and more. In this video, I will be explaining you about the effectiveness of our lockdown. We started on March 24th and it's still going on and it's going to end by March 31st. So all these data which I am going to show you it's taken from ICMR data or other official health statistics. So all these are very valid data. So let's see the total confirmed cases in India. So that is it was 500 on the day before our first lockdown that is March 24 that was around 500 cases and it has increased to a value of 1 lakh over a period of almost around 450 days. So now it is almost 1 lakh 20,000 today that is May 24th. So we can see a increasing the number of cases by 200 times over this lockdown period. So the increase was not very huge when we compare the number of cases with the other countries like Italy and USA. So we take these countries as these were the two main countries hit by COVID-19 so badly. So we start by first week that is 50 cases reported on 10th March on all countries. That was on 22nd Feb in Italy and 25th Feb in USA. So after 10th week the number of cases in India was 74,000 that is around 75,000 but in USA it was almost 10 lakh and in Italy it was 2 lakh. So why was it happened what was the reason for this drastic difference in the number of cases that was the lockdown effect. So in India the lockdown started when the cases were around 500 but in USA it was 50,000 and in Italy it was 20,000 or 21,000. So this was the turning point in number of cases. So India could have done it very early the lockdown started at very early but in USA it started only at 50,000 so the total number has become 10 lakh and Italy it has become 2 lakh and the lockdown started when the cases were 20, 21 or 22,000. So the proportional increase you can see. So this was the part where India had an upper hand compared to the other countries. So since the first case was reported in India in Kerala the southern state and later in Feb and over March beginning the cases slowly started appearing but whereas it has become a pandemic in all, pandemic and it has reported in most of the countries. So India had a notion that it is going to become a very serious issue in the future. So India started the lockdown very early when 500 cases were there. So that was a big impact in reducing the number of cases and the death. So let's see the number of deaths happened in these countries. So if you take the first week as index that is number of deaths were 5 on the first week that is 20th March India reported just 5 deaths and in USA it was 2nd March and 24th Feb in Italy. So after 9th week the number of deaths in Italy were around 23,000 whereas in USA it was 55,000 but in India it was just 2,800. So that was the difference. That was also due to the early starting of our lockdown and we have to think that India is a country with 1.3 billion population around 130 crores of population with lots of slums and highly density that is population density is very huge in some states. So all this considering this is a big impact of lockdown compared to these countries where the total population will be one half or one third of the Indian population. So always seeing that the number of tests being done is very low compared to other countries that is true. Now India is testing 1 lakh per day but it was around 3,000 or 4,000 at the beginning around the March beginning period but now it has increased around 30 times. We are testing a more number of cases now that is one of the reasons the cases are very highly reporting in nowadays because it is most of the cases will be in symptomatic states and the more number of tests we do and we get more number of cases. So now India is testing 1 lakh per day that becomes one among the three testing ratio in the world. So that is why India is reporting lots of cases but the problem is the doubling rate. The doubling time is the lowest in India. Doubling time is nothing but the days taken to double the cases if it was 5,000 the number of days taken to take to become 10,000. So more the doubling time it means that the rate is very low lesser the doubling time the progression is very fast. So we can see that the progression is very fast the doubling time is all it is like 40 days in other UK and the United States but in India it is just 13 or 14 days. The total confirmed cases that is 81 in May 25th and it is around 1,000 in April 14th and 2,300 in May 3rd and it is around 5,000. So per day the cases are on an increasing rate so there is no bending the curve bending means the number of cases reported will be lesser than the previous day. So there is no bending the curve happened in India there is a increase or there is increase in the cases day by day. So during the lockdown 4.0 there is around 5,000, 6,000 cases per day. So what if we say the flattening of the curve? So the flattening of the curve happened maybe in the southern state Kerala they had literally bend the curve and flattened the curve before the migrants started to enter the state they had literally flattened the curve there were cases there were no cases in few days and they had bend the curve very drastically but what happened was when the migrants started from the hotspot areas in and around the country and outside the country the cases are started to increase. So in India there is no flattening of the curve and there is no bending of the curve it is going on a ascending order. So what is the situation of India right now? So in most of the countries the peak has started to descend in USA or Italy or Spain in Germany all the countries the curve has become on a descending phase that is the number of cases are there but still it is going downwards it slowly slowly go downwards but in India it is on an ascending limb for a couple of weeks we may face or we may see a lot of increasing in the cases and flattening and or the bending of the curve may take time in India. So we will come to the point was the lockdown was effective or not? To an extent it was effective because we started very early so we could reduce the number of cases and number of deaths very drastically if it was very late like April mid or April first week the number of cases and number of deaths would have been so much more. So if you ask me was the lockdown was a solution for this COVID-19 it was not at all a solution for COVID-19 it was just a strategy to help the people and the health system to get prepared to a situation where we should live with the COVID cases because it is almost impractical to remove all the cases in near future so it might take 6 to 8 months or any year. So we should live in a situation where the patients are around so the sanitization and social distancing should be the key in the future time. So what we can do is we need to have a exit plan from the lockdown we cannot extend our lockdown for another 5 to 6 months till the last COVID case is getting cured so it is not practically possible in the present scenario. So all we can do is to have a exit plan from the COVID so we need to have a exit plan so that the people can live at least with a job or to have something in hands to meet their ends. So the backup plan or the exit plan is very important in the next phase of this pandemic so that is what the real strategy rather than the lockdown. So if you ask the lockdown was effective as it was effective you need to have a exit plan and if the plan of extending the lockdown or the lockdown 5.0 without a proper exit plan would be disastrous thank you.


Well, now we're going to have a Maria Jose talking about doing yourself a whole home automation with controllers and Love you, Maria. How are you? Really good. Thank you so much How are you doing? Where are you streaming from? From Berlin from Berlin. Oh, yes They are the cloudy How's the weather over there? Oh, it's kind of weird is this kind of day that it's not sunny. It's not cloudy, but it's warm But it's really warm. Yeah, yeah, I mean after that man. It's Okay, are you ready? Yes Okay, so now the screen will appear good luck and let's begin Thank you so much Well, thank you for having me and so so excited to be here talking today. My name is Is Maria Jose I am Sorry goes a bit good delay I am data scientist that in farm where I have for I work with really cool data science project today I'm gonna talk about what I am doing in my free time that it's work. It's The project so with my own with microcontrollers iot electronics and this kind of things But kind of topics we're gonna talk about today. Well, as I mentioned, we are gonna talk about microcontrollers We're gonna talk about Python do it yourself projects here with Python and Devices simulators. You're gonna see why in this talk This is included and of course We're gonna see two projects to apply the previous knowledge that will be a watering and also a cleaning automation project Well electronics and Python. I think that it's the first part to start But don't be afraid because this kind of projects are really diverse And it's true that even this talk is being unfriendly or I try to do it beginner friendly There are so many concepts and new things that sometimes we assume when you are doing things that That people is familiar with but if you but ground it's not the electronics or engineering Maybe it could be overwhelming, but no worries. I have a solution for you today And for that reason we are gonna use a device simulator that will help with this part About microcontrollers boards. There are so many kind of boards and shapes and Specification and could be also quite overwhelming but I think that the end you need to be familiar a step by step and at the end you're gonna finish ending Finding your the microcontrollers that you need depends of the project that you want to develop Why Python for microcontrollers? Well, it's because easy to learn is quietly use it and has a great to support the global community And this always help to start In a new world But can we use our path and code directly in our microcontroller? Well, not really we use micro Python that it's a version of Python or We can use circuit Python with these a fork that the other fruit that is the open-source hardware company focus in educational purposes and We in this talk we are gonna be focused today in circuit Python Well, let's start with microcontrollers, but without devices using a device simulator express and And first because I wanted to give you the chance to be able to program microcontrollers today without having the microcontroller or the device at home I'm second to avoid the overwhelming situation to say, okay the cable that I don't know about voltages or whatever Then we're gonna keep it simple in that sense I'm going to introduce you one project that the develop was developed by Microsoft that it was a garage project with also educational purposes and This is a device simulator Included that you can include in visual studio code and there is this chunk of program three different microcontrollers I think we play ground on express. That is the round that we have on the left on the right Sorry, then we have the micro bit that runs micro Python and clue that runs a secret Python We're gonna focus today in circuit play ground express running Secret Python why The answer is clear to me. It was because I got one physically in the Python US 2019 and Also, I have a kind of nostalgia relation with this micro microcontroller Because there is a playground as its name mentioned then you can experiment with sensors For instance in here. We have the light sensors. We have Temperature sensor. We have buttons. We have input output connections that you can connect directly with With a cake Coco's right cables. You have infrared transmitter sound and Also, no pixels And also what I wanted to show today is that the the same microcontroller that you can program in this day In the simulator you can develop at the end a real projects With microcontroller that as I mentioned before it's a playground that maybe it's not the most efficient that but You can do it and this is great To install the install to have the installation ready for them for the The sim the device simulator you can go you can go to the repo that I create for this talk And I try to explain as better as I could Also, they include the official documentation of my of Microsoft and it's I hope it's well explained it You can install it. That's really easily well What is a hello wall in this in this microcontroller because sometimes in told people say Ask me, yeah, but how I start how I wrote my first hello wall, right? Well, we need to consider that in this kind of microcontrollers We are gonna have a while through forever They this means that our code could be executed continuously executing then it's a good thing to Thinking include a time-sleep or something to break this eternal loop but What is need to know is a I'm not sure if you can see really well This is the microcontroller in all the all these cables I'm in here is connected to the USP then you can connect directly your microcontroller to your computer and Write this code and you're gonna be able to see Well, in this case, we is just a print Will not be massive fit but for the other things that we are gonna do. It's the way to go But as we talk we mentioned we are gonna go first for the simulator Let's see here, it's a I try I try to emulate the steps that you need to follow and show you how To do it on the left we need to write our code Our libraries and what we want to do in this case What they wanted to do is fill some pixels with a specific color And then as I mentioned, I'm gonna include the sleep time to have control The I give a time right between one color another once you write this code You need to save it as a code dot pi or as a main dot pi and then execute it. That's all Okay, let's go for a specific example now in the simulator imagine that you want to Detect or yeah, you want to rotate the room temperature Using this simulator Well, in my case what I did is I'm gonna show you here the code because I wanted to show you how simple code it is Use it first. We need to call the other fruit if we playground library That is this a library a specific library for this microcontroller We're gonna include the time and then we have the wild true loop that I mentioned before Then inside we have a condition that what I want to do is if the temperature is lower than 30 degrees I want to have display the blue color and if it's higher to 30 Degrees, I want that red color. This is nice because imagine that you want to know If the temperature is really high in your apartment or in your living room or in your office And then this is a solution that can help us to say hey the temperature is not completely right to work or to be there Let's see how Works this is the code that needs to be right in on the left as I show you before and on the right you are gonna have The this image and then you can interact with this with the numbers and yay Here we have more than 30 degrees and then you can play around This is not the only thing that we can do with Of course, I sorry. I spent so much time just playing with a temperature, but it was not Super important There are other things for instance There are buttons that you can play and also change the colors and do other things as you can see in this Short video that I try to press one button and the other and see some pixels no It's as it is in development. I still there are not all the functions that the real microcontroller has but it's I think that it's a project that it's open and People record request the features and they are improving This This is quite brief. I know but I want to go also to the applicability of this knowledge to to the projects to the real projects Because I Well, I love automate processes I'm one of the processes that I automate It's the water in system in this case is a solar powered water in system What the plants is challenging it's really easy to go from over Your plan with over watering your plan to forget that you have a plan because you're busy You have other things and I look I had a plan there And then I thought okay. Well, let's invest some time in automate this process at home For that they develop two projects in the past that I share with the Python community Sometime ago that one is plantarys that include different microcontrollers. I did some trials I include IOT. I did develop a flash application at chatbot And then I also implement the almost a full machine learning pipeline And I implement a neural network to the tech plan illness plan But still having all these in place was not enough because I decide to grow lettuce in my In my windows with this soft phasing Um But I live in Berlin that the weather is not a stable then it's quite challenging but I we have really worn days with a High intensity of sun and I thought wow I need to explore that I think that could be really really nice if I could I could develop something really more sustainable Then the first thing that I did was to buy a really small panel solar and check if it was able to To have energy enough to Implement my water in system the water in system that I'm going to show you is super simple It's something that has almost the less components as Possible and I try to keep it as simple as possible But including the solar panel here are the components the two rectangles of the bottom as the solar panel and about the round it's It's that is the microcontroller then we have this blue thing that it's a relay at the end is a switch on switch off Um, the white thing is a pump. I added the soil moisture sensor and some two inks Some comments about this project The soil moisture measurement is really really important in this project because it's it's as I mentioned before It's easy to be in the extreme in the stream if the is the temperature is really high or if you go outside for the weekend or whichever and You forget you that you have plants then It's important to know when your plan will be happy and this will depend on the weather will be the pen of the soil and This will be also depends of the plant that you have because it's not the same. I let I'll let you use than A strawberry for instance Then know your plan will give you a success in this kind of project Then these are the components and this is the way that they are connected of course Have in mind that this is a prototype and for that reason I have all the cables there This is not the Definitive Implacement is just to be sure that I could to have automated the watering Powered with solar energy Then we have the solar panel a connected with a pump that it's in B That the pump that it's in B is connected with D that it's the microcontroller at the at the same time the Microcontroller that it's in D gets the energy from the solar panel that is the C and Then also we have E that it's a moisture sensor that of course needs to go to the microcontroller In such a case we have also the relay that is the switch on to itself Okay, well, let's see how this looks like in The video Something that they didn't mention it's not that and it's important it's in the in the tube There are some small holes and then the water drops by By these holes then the water go away the to open And at the same time Water of all the soil Yeah, and that's and that was the dream and who looks the code The code is quite simple again and we need to import some libraries then Establish the relay Where is connected in the board? I instantiate it and then we have the sensor in this case With this tricky and it's more experimental is the Wait time the weathering time and the right value. That's our values that you need to Get them is pretty mentally of course the manufacturers usually give some values and also In tutorials has some values and that but I can tell you that Depends a lot of your case and We mentioned before to go with the soil moisture. We are measuring the conductance this means that The depends of your soil if you change the type of soil or the brand of soil You are gonna have different values The important well then this is a of course This is the same quote. Sorry. I didn't mention but I have not a space enough in the slide then what we have is the wild loop and the conditions that they say, okay, if the is the value The from the sensor is lower than the tried value. We are gonna water our plants and if not will be The relay will be closed and will not be water Yeah, that was one of the projects that you can develop just with the same playground microcontroller But it's not the only one you can automate more things at home And here came another interesting topic that it's the cleaning We're busy in our lives and there are so many cool things to do in life And I decided that I wanted to automate the cleaning process For the reason I think that it was also an excuse Because I decided to do to build a robot and And this was the first thing that I did is say, okay I'm gonna build a robot and then the robot can clean my apartment and I will be happy and Then this this was the first version And as you can see it's so was super big my apartment is really small and This was a problem. Also the the surface does the area that cover the Cleaning was not the best. Okay. It was kind of okay would try but no we need to improve that Because the goal is clean the apartment not just have fun building robots Yeah, then here we have a before and after as you can see the lock down also affect to my robot No, it's a joke. It's just What I decide is just take a mop directly. I took a mop. I And I build a robot and I implement the robot and I fuse the robot with a mop More functional even in cheaper and faster to do it Something interesting that has this road is the ultrasonic distance sensor in this case is these HCS are zero four, but this ultrasonic and If you are not familiar with this kind of sensors, it's the same of It's a similar mechanism that has that bad for instance in the the device sent up poles and Of ultrasound and then the ones that is an object this pulse It's a robot and it's received by the sensor This means that the environmental Conditions affect to this dynamic. This means that if you are implementing your your your robot or your code In summer or in some specific location will be different The behavior will not be the same if you the tribe later In winter for instance Okay, this is something that was important and then I thought There was another option. There was another reason when I use this specific sensor it's because if you want to have our famous Robot, you need to have this cute This cute face of robots It's also a joke, but was quite cute to see it Again really simple robot Ultrasonic sensor as you can see in here on the the top We have the several a several motor here and then we have some motors on Three wills That's all and let's see what happened when I added to the mop and this kind of things Of course in here I tested with the normal thing that you have at home, right? So I'm in your floor some plans a fan a baby eight Normal things, you know in this case. I implemented the robot in a way that Advanced a stop it check it and continue For that reason has this a stop between the movements Because and as you can see in here BB8 was ignored completely That was because at the beginning I was thinking in that also Servo or something that could help in the cleaning, but the still is not I didn't like it at the end this idea and it's really a functional this mop This automatic mop. It's it's works really good Then I added the most direct Approach that is go directly and then once find something Stop it check it and Continue to our site the the decision where Where to go? This is a This is the logic the distant When to check that is when to stop it and detect There is an object check to the left and then to the right and the decision where should go It's based on what is the higher distance. We want to go always. Where is the emptiness? Hey, Maria, sorry to interrupt. It's the last slight. Oh, okay I just wanted to say if you're not convinced still In build your robot. I can give you here just an excuse You can create your own means and be just happy for hours And with that it I would like to finish. Thank you Well, that's a super amazing I actually Thought about all of that ideas, but you actually implemented all of them super cool So we have a couple of questions quite a lot We don't have much time left. So the discussion can continue in the breakout room Okay, but here goes the first a question is can the prototype survive the rainfall? Um, I think it means that yeah The the water in I suppose, right? Well, I Try I I forget it I need to say that I forget it the other day And I start to brain a lot and survive it This is a good sign If it's the is a storm, I am not sure if will be Sure, but normal rain. It's a just a little surprise. It's okay The next one can you circuit Python with any microcontroller or just certain developer kids? Good question that are Not for all of them Available because you're gonna need some libraries, but they're a bank show for microcontrollers I think that they cover. I don't remember exactly the name but the number right now, but it's it's a huge amount But if you have a specific question for some specific microcontroller, just let me know or I can send you directly the sources on the link We have one more question How hard is to move the code from the simulator to a real device? Do we need to make any changes? No, you just need to copy paste Yeah, it that is fantastic for that reason you can play first with the Emulator learn and then just move it to the copy paste to your code Okay, thank you so much Maria super nice. Thank you


It is a combination of your traits, emotions, beliefs, behaviors. While every person and their personality is completely unique and one-of-a-kind, there have been some attempts to categorize different types of personality. Those types of categorization can help describe a person's strengths, weaknesses, or how others perceive them. If you'd like to find out which category your personality fits, take this quiz and find out. There is no right or wrong answer. Pick the letter that resonates with you the most and record each letter. Try to be sincere in your answers. Number one, what would you say is your biggest flaw? A, being very impatient. I just can't keep still and wait. B, procrastination. I always leave everything for the last moment. C, I'm a people pleaser and I sometimes forget about my own needs. Or D, being pessimistic. I always forget to look on the bright side. Number two, what would you say is your biggest strength? A, I'm rational. I'm not carried by emotions and I make decisions based on intellectual thinking. D, I'm easygoing. I always know everything will be fine. C, I'm organized. Everything has its own place and I plan ahead. Or D, I'm introspective. I like analyzing my own thoughts and finding solutions. Number three, what motivates you? A, money and success. I want it all. B, I can keep on going as long as I'm the center of attention. C, overcoming a challenge is what's driving me forward. Or D, stability and security. I just want to have my peace. Number four, how are you with other people? A, dominant. I like being the leader. B, friendly and charismatic. I know everyone likes me. C, controlling. I want it my way. Or D, shy. I get a little socially anxious, but I'm trying my best. Number five, which job would you like the most? A, I'd like to be a manager in a big company. B, party planner. I want to have fun. C, being an artist. I just want to create something new every day. Or D, I'd like to be a therapist and help people. Number six, what do you hate the most? A, long explanations or descriptions. Can you just get to the point? B, non-social people. I just think they're kind of boring. C, drama. Let me stay out of it, please. Or D, conflict. I don't really like arguing with anyone. Number seven, what type of friend are you? A, I work too much, so I don't have many friends. B, I lead conversations and enjoy making people laugh. C, I always give the best advice.  And number eight, what would you say other people think about you? A, that I'm too stubborn. B, that I'm arrogant. C, that I'm not very social. Or D, that I'm too quiet. Now, count how many times you chose answer A, answer B, answer C, and answer D, which answers appear the most.  If you're a type A personality, use that high standards for yourself and are extremely competitive. You love setting goals and you usually succeed in accomplishing them. You are ambitious and passionate about everything you do. You use your time wisely and you're always organized. When dealing with people, you're assertive, but dominant and highly competitive. This ambition can sometimes make you impatient and stubborn. If B appears the most, you're a type B personality.  You're relaxed, peaceful, rounded, patient, and easygoing.  You like having lots of people around you and being the center of attention. You are easily bored with routine and seek excitement because of that you're sometimes prone to procrastination. If C appears the most, you're a type C personality. If you're a type C, you're most likely a perfectionist, detail oriented and organized. You follow the rules and unlike type B, you need your well-known routine. You're very intelligent and analytical and you use that intellect in various situations, whether it's problem solving at work or school or giving advice to your friends. Sometimes you may be a people pleaser and because you need everything to be perfect, you might spend your time worrying too much.  Being a type D personality means you're very sensitive and emotional. Sometimes you might be a bit pessimistic and shy or even feel a bit lonely, but those who know you also know that you're very compassionate, trusting, observant, and sincere. You are very introspective and existential and you're always there to help everyone who needs it. So which type of personality are you or maybe you're somewhere in between two categories? Do you feel like your results actually fit your personality? Let us know in the comments below. As we said before, this quiz is just for entertainment. It's impossible to accurately describe a unique person and put a label on them.  Did this video provide some insight? If so, don't forget to leave a like and share with a friend. As usual, all references are in the description below. Until next time.


The SARS-CoV-2-Armicron variant has subvariants with divergent properties, but relative vaccine effectiveness has not been characterized. Here, the authors show that mRNA vaccine effectiveness is similar for the subvariants Ba.1 and Ba.2, with a decline three months after the second dose and increase after the booster. This article was authored by Hayam Khimaitali, Hussain H.E.U.B., Sorsan Olmukdad, and others.


one shipper 1000 here we're out on the boat and the boat is running awesomely crap it's running all right wide open but it it's just it's cutting out that's worse than a miss that means the whole engine's cutting out both cylinders but when we started it I was running all one cylinder and I had to rub it up neutral get it to blow out its throat and but uh yeah it's about time to rebuild that carburetor I think probably I'd like to rebuild the whole thing but I ain't doing that if I'm gonna spend money on something I'm gonna I want to get a 25 horse a monk with electric start and power tilt so that way I don't have to because we've just gotten some shallow water over there because of the the water changes right back here on this lake not the water really the the the lily pads and stuff and where we usually come into this area I'll show you here in a minute got it was real shallow they do a pretty good job of clearing it out though so I got some seaweeds and had to clean the prop off come around another way but this is pretty cool this is what I'm thinking right here I don't know if you guys can see that let me get my glasses on so I can see what you're seeing somewhat the big mound there I don't know if it's a midden mound or or what but pretty nice back in here the monkey said yeah just hang your hammock over there in your month because I shut the engine off and we just drifted you know just pulled in here and she's like all right I'm like yeah why she said just checking nice I said you know what I'm thinking don't you she's like yep put your hammock right over there there's a road here no maybe not I don't know comes another boat just had a pontoon come past follow this in here yes things running bad on low speed on like an idle just off an idle it just running real rough but I don't know yeah I'll have to we'll have to check this out some time hun monkey said it would have been a good day to be on the boat I went in got dressed I said I said I'm getting dressed she said you're where are you going so I'm going on the boat about 80 but it's a nice 80 yeah it's not a scorching 80 so usually when it's 80 degrees it's as you can see we got the top down we didn't even put the top up because we didn't really need it the Sun's not that bad and plus when we're not gonna be out long we just wanted to come out and check the boat out the car the carburetor was flooding on it the last time we went to take it out a couple weeks ago when I hit the primary bulb gas was running out of the out of carburetor so that was telling me the float sticking so I sprayed it down with some carburetor cleaner the other day and let it soak I didn't take carburetor off I just sprayed it down there's a little hole you can spray it into and I don't know it sometimes that makes it worse guys when you do that because it cleans out the dirt from one place and then clogs it up in another you know so it just needs to be taken off and cleaned up real good I'm still on the hunt for 25 Evan Rood Evan Rood Johnson you know something like that Yamaha would be alright I don't want a mercury I don't want a mercury but Yamaha Johnson Evan Rood something like that so anyway that's what we're doing we're just kind of hanging out here and get Bruno he was going back shit crazy to get out here so he heard boat he just started on nuts didn't he oh yeah and I said it low so he wouldn't hear me but he heard it when I told her I was going on the boat he just started going crazy he loves the boat yeah he likes jumping the wake don't he oh he sees another boat coming in the other direction he knows we'll jump their wake and he just gets all excited and gets ready and pins his ears back he's a true boy yeah jump it again dad so I got a little bit of water here yeah coming up in three right there I see it I see we're coming from don't have much back here just a tiny bit there but it's a boat it's going to get wet especially a 53 year old boat I'm on my well the engines are 63 well we've run the hell out of this it's all it's the only time we're island is when we're coming into a place like this other than that it's wide open all the time it's a 1963 the boats in 1969 so so the boat is how how does the motor then 63 it'll be 60 years next year and we're running it like it just came out of factory yesterday so yeah we're just going to be nice place if you're going to do you have to do it why water will go down you won't be able to get oh I can get back here yeah we've been back here we can get back in I can get back in here we did we went past here a couple times but I can't really use the trawling motor because it's got a one of the blades is broke off the prop so it's kind of for emergencies or just like backing out of here because usually will try we use the trawling motor and go way back in there's a lot of cool stuff back in there all right guys I'll be back with you all right guys so we made it back there's monkey it's easier it's easier for her to crawl through that hole than it is to get out of the boat on the dock for some reason but it's easier for her to get out of the boat here because she can just step out on the land there's no walkthrough here but she's going to go get the SUV in the trailer and then I'll back the trailer and load the boat and she'll pull me out so I'll film that for you I'm just going to wait here usually I take a trip around because she's got to go clear up here to turn around both areas so there was a bunk floating here earlier hope it wasn't ours we won't be loading the boat so yeah it's been a fun day I'll show you how I load the boat and then we'll go from there hey so this should be interesting the gas motor won't start so I gotta use the trawling motor with only two blades on it to try to load this thing up so this should be funny because this thing's not gonna have the power to push it up on like I need to okay now I'm gonna go up front and I'm gonna winch it up a little bit all right wasn't as bad as I thought it didn't get as close as I wanted I had to have her pull up just a little bit so the back of boat go down because it was under where the hook hooks I'll show you this was down under here so soon she pulled up the back the boat went down that means the front of the boat went up and it was fine but I mean it's not like hell I could have just if I had to pulled the boat around with the rope with a hundred foot rope we got there and pulled it up to the trailer and winched it on but so I was showing her I was like look this thing won't start one pulling it fired right up I sat out there for five minutes trying to get that thing to run so weird yeah it's been run hard we've got a good jump today didn't we yeah was you filming it I didn't get the job no I was holding on yeah we jumped somebody's wake and they seen me go wide and come straight like right behind them they knew what I was gonna do never watching it was like yeah I got a hold on the Bruno he loves it he hops up and down that was a pretty good jump well we we hit a swell when it was coming back up yeah that was fine yeah it runs good if it has full full blast full blasting yeah she means full throttle yeah when it's wide open yeah it runs great if you want it no it's having problems we're running around say that bass boat there for a minute yeah I was by myself I think I could have pretty much kept up with him yeah I think so yeah and if I didn't know all the weight issue yeah it's not running it's running fine it's not missing or cutting out or anything wide open but I don't think that's the right prop but it's fine like I said I want to get a 25 horse that way I can have an electric start yeah he needs it and I gotta lift that motor manually it's too much I mean they got them 25 horse powers now that are lighter than that 18 yeah yeah so it wouldn't be putting much more weight on us we usually carry three batteries in this thing so we were skipping along pretty good today when I got one battery in it so alright guys thanks for watching appreciate you bear the myth man legend gone for now month check the channel out she's got some footage some Harley's back here making a little racket yeah it's a great day to be out that is miss my bike they stopped and situated their bags all right guys we'll see you in the next one bye bye and take care