Now I This is sort of a challenge. I just don't are there any amateur magicians or professionals as a matter of fact in the audience today Let's see some hands. Oh, we've got a few here. Oh, I'm sorry. You're that close. I got the vibration. I didn't know what they were coming Okay, I'm gonna tell you You ladies and gentlemen of science that I do this next demonstration just to make the magicians nuts Because this is something that they have not solved. It's not on sale It's not in any of the catalogs or nothing like that none of the instruction books and I've never shown anyone how to do it But it's a very simple demonstration and it involves some mathematics. I'm sure you'll forgive me these That I have in my hand here are what they call the ESP cards the circle the plus mark the wavy lines the square and The star these were designed by a man named Zener a psychologist in Switzerland many years ago who made up these cards Usually they're much smaller. These are the display kind so the whole audience can see them clearly He made these up for tests in psychology particularly in parapsychology to test ESP powers of predictive powers and and Of reading powers of telling what people were looking at now. I have also here a Brown Manila envelope with a class one at this time That's good and a piece of black paper of photographic quality Which is quite opaque and I'm going to take this whole works and I'm going to give it to someone here in the audience Where is it? Well, they can give it to this Starling's woman right here. If you don't mind would you okay? I want somebody sufficiently far away from me So I can't peek now. Here's what I'd like you to do sir I'd like you to take the five cards and mix them now. I should say shuffle them But it's very difficult with only five cards, you know So just take them and face down shuffle them up So they're thoroughly mixed in such a way that you and people around you that no one will know which card is which when you've done That let me know Okay, that was quick now.  You must not know what they are I want you to be sure that you don't know what they are But here's the tricky thing look at me for a second You got the two cards look away and turn the two of them quickly face-to-face. I Think I heard that yes, okay take that little package of cards You have that pair of cards put them inside the piece of black paper just unfold it put them inside the piece of black paper Okay, and take that little package and put it inside the envelope and Use if you will both the glue and the and the little see if they glue is really nasty I tried one of those previously, but glue the envelope and use the little Catch on it as well if you would Got it. Okay, so it's all sealed up now now make sure that when I approach your chair I can't see the other cards that are underneath hold your legs in front of them or put something on top of them because if I were able to see what they are then I would know what the two in the envelope were right Okay, now let me have the envelope. I'll keep looking away from you and make sure I don't fall off the stage here There we okay now this will call the front of the envelope. This will call the back This is a technical thing. I want to get clear from the very beginning. All right now What are the odds and this this is the the big question? Where's my pen there? We are the big question right now is what are the odds of me being able to tell what one of the cards inside the envelope is This is the easy part One-fifth 20% one in five. Okay, that's it You suspect me of skulled-uggery you're right No, I don't know this gentleman. I haven't met you before on my corrector. Okay The chances of my finding out what one of the cards are correctly that is is one in five What are the chances of my finding out what two of them are come on? This is just testings. I know you hate it, but you have to do it every now and then What are the chances of my knowing what both cards are inside the envelope? One in 20. Okay, how did you get that one over five times one over four? uh-huh What are the chances of my knowing? What the two cards are without knowing in what position they are though think about this for just a second for years I was going around giving people the wrong figures the chances of my finding out what the two cards are by Some super power or something like that Are not as easy to calculate as you might think you might think it's one over five times one over four But to tell you on which side of the envelope they're located That's a different matter all I used to double. I used to say one and twenty. No, it's one and forty. It's actually What one and twenty if it's on which side of the envelope they are if I just say I've got a and B And I don't say in what order they are. That's a different matter all together Funny, huh Now this is the back of the other because you can see the class right here And this is the front of the envelope very obviously I'm going to tell you right now that I know what cards are in here for example and on the back of the envelope here I have a sneaking suspicion that there we have the plus mark and I think that on the other side Of the envelope we have the circle. That's the easy one and it just to make sure of that I'm going to draw a circle on here and I'm going to draw a plus mark on there. Okay now This is what we call the moment of truth I'm going to open the envelope very carefully and who sticky You really licked that didn't you? Making sure that no time to my fingers leave my hands And remember I said that on this side we had the plus in this side We should have the circle and let's just see how correct we are and indeed when I open up the piece of paper We find that we do have All right, we want to take money on it. Let's put money on it Who's gonna back me come on let's let's get some calculations going here You what you see he was right When I asked what are the chances of my guessing what these cards are he said 100% That was my line that I'm supposed to come up with at the end of it all you see After they had done all the calculations just the chances are 100% because this is a trick now Wait a minute. There's another possible solution here. I took the envelope from the gentleman like this, right? And I walked across here with it. I Might have just very quickly just gone in here and done a switch for an envelope that was already inside my jacket Well, that's not true because you can see How can we prove that that's not true? Look at the other three cards of course Let's see the other three cards if you would please sir and hold them up above your head and show them the Ah, we got the wavy lines. We got the square and we got this circle the star right hey very good Okay, now this is another example of what they call in the trade Mentalism it appears to be done with the mind, but it's done by sheer trickery I have had solutions for this offered me by scientists to say oh, there's a computer chip buried in the envelope And there's a scanner inside there little camera on the end of your finger here And when you know I've had every kind of solution offered me. It's actually very simple. You want to know how I did it? tough For more of James Randy and the educational foundation make sure you visit Randy.org


This paper reviews several metrics commonly used in polyphonic sound event detection systems, which are designed to evaluate performance in realistic scenarios where multiple sound sources are active simultaneously. These metrics include segment-based and event-based definitions, as well as instance-based and class-based averaging. A toolbox containing implementations of these metrics is provided. This article was authored by Anna Maria Messaris, Tony Heitola, and Tuomas Vertanen.


Okay, our next speaker is Robert Foss. Who's going to talk about running Android on the mainline stack? Hi, so I'm Robert Foss and I'm not named after open source software my mom's also named Foss she does not do software in any way Unfortunately for me. I work for Calabra and we're totally hiring in case you're looking for something open source related to do Just come talk to me or look at the website And if you want to get a hold of me, I'm on Twitter. So, you know, just shoot me a tweet Let's get into it Today I'm going to talk about running Android on the mainline graphic stack, which Sounds maybe easier than it actually is. It's a little bit complicated, but let's get into it so we're going to talk about the Android history with respect to open source and also How it's actually done how you run Android on the mainline graphic stack And what the current status is as well as maybe the bigger picture What's happening where? Android is going where open source is going with respect to Android Yeah, so if we start with the history This is sort of what it looks like. This is the number of lines of diff against the Linux mainline kernel. So this is for Qualcomm. They're just, you know, a vendor There's a bunch of them, but chances are that you're using a Qualcomm SOC now most of us are so Most of these vendors have a diff of around one million lines at the very least and as you can see Qualcomm is between like 1.5 and like 3.5 million lines and This may be a slight like downward trend. Maybe it's too early to tell. I guess we'll see when we have the sources for 4.14 of the kernel Anyway, it's kind of interesting to visualize what's going on So this all sort of started or this talk is starting where Android forked the Linux kernel and That was in three ten days and they did it for Yeah, for good and bad reasons, I guess But they really needed a better graphic stack So the current one that was in the kernel the ABI was just not good enough. It didn't suit their use cases. So There wasn't enough support for the low power use case, which obviously is important on a cell phone you don't want to burn through your battery in an hour and Also, they didn't support Atomic operations and atomic operations are When you change some settings, for example, let's say you change the resolution of your monitor and maybe the bit depth at the same time you want to change both and With atomic operations, you can sort of do both at once and either both will fail or both will succeed But it prevents you from ending up in a really weird like unknown state where some things have been applied Maybe some haven't So atomic operations was definitely definitely needed for for their use case And as far as the low power use case goes There wasn't much support for like exotic hardware like dealing with the low power display use case. So display Managing hardware of different kinds had pretty poor support So they really needed something better So they introduced the Android atomic display framework or adf as you'll see it called No one really explains what it is. It's just adf and the the adf was written by an Android kernel engineer Greg Hackman and It was sort of written from scratch. So it wasn't built on top of the current or then current Graphics ABI is provided by the kernel. So he just did his own thing Which made it possible for him to get this working quickly But it also ended up being a little bit problematic so Adf ended up being not in terribly Extensible or generic. So it suited their use case of mobile hardware Well and did everything they needed but for the generic maybe desktop use case. It wasn't enough It also didn't really support like all kinds of different hardware So there was it was kind of limited in how it was designed For example, it didn't support atomic operations for for all parts of the subsystem so in the kernel, there's a bunch of different like logical components like There's the connectors which are you know connectors like the DRM port or the the VGA ports or the HDMI ports or the display ports There's also planes planes that are like buffers with some properties attached to them So it's basically what you see like here's a plane of pixels And there are like CRTCs, which are CRT controllers there It's maybe perhaps a bit a bit of a misnomer nowadays CRTs monitors aren't really around but CRT or monitor controllers still are and in the kernel they're referred to us the CRTCs so anyway all of these components have properties and They need to be changed in an atomic way in order to reduce or to avoid flickering and avoid getting into an inconsistent state So that's why you want atomic Operations, but just having them for planes is not really good enough like sure it solves some problems, but it doesn't solve all of the problems Also Also, it wasn't built on top of the current KMS API Which was problematic because that meant that every driver that existed for Linux didn't support this like none of it did So what happened was that all of the proprietary vendors went away and Got busy coding and they all implemented ADF. So for example Yeah, let's just go with arm and Molly like they have an ADF driver everyone has an ADF driver if you're shipping a cell phone and That's entirely separate from from what's being implemented for the open-source mainline kernel, which is unfortunate So this wasn't really upstream of all while it was an improvement in some ways It was not really good enough for being accepted upstream so instead a bunch of people Daniel better specifically worked a lot on on implementing the KMS atomic API, which is Pretty much the the same ID, but a bit more generic So it's the atomic API Built on top of the previous KMS drivers. So there's a pretty smooth like upgrade path you have your KMS drivers that you've always had for like the Intel drivers or whatever and then you start adding support for the atomic features and You don't have to throw all of your driver away Which is pretty nice because it turns out riding a driver takes a lot of effort and time and money So people aren't too keen on doing it And it supports all of the ADF use cases and it does it in a more like generic way And it's being generic through adding Properties to these different modules like the planes and the CRTCs and The connectors so there there are these properties. They're basically key value mappings like you'll have a string Go with like name and then you attach a value to it and that's basically it's very simple so you can inject whatever property you want and user space can read out these properties and Understand what's going on with the hardware and Now like no as in currently it is displacing ADF from the vendor drivers It's still very much like a work in progress and their drivers are still very much not open source for the most part I'm still talking about The mobile vendors here, which they're notoriously not so great at this I would say But internally they're switching from using ADF to to using Atomic KMS, which is very nice because it's the step towards open source It's not perhaps very tangible yet, but it's a step in the right direction so Let's have a look at what the Android graphics stack actually looks like It's a bunch of stuff On top of which we have the apps and this is the stuff you actually care about like like really This is what it's all about And below these apps and there's like a bunch of apps There's not just apps that you think of as apps, but there are done a bunch of different applications doing But yeah stuff like running the the status bar for example updating your clock Below that we have surface flinger and surface flinger sort of takes all of these Surfaces that apps draw so let's let's speak about The parlance here so there are surface surfaces there are planes and there are layers and these are all the same thing So for various first for some reason every vendor has chosen their own word and Now we have a bit of a confusing word salad going on, but the surfaces our planes our layers So surface flinger basically deals with all of the planes and layers and surfaces that Applications draw to and then combine them into something do something useful with it And then sense it onwards so for example if we look at this Android desktop It's just an ordinary Android desktop in portrait mode. No landscape mode and on top here got the status bar and As you can see it's like mostly transparent. It's pretty skinny. It doesn't require like a full buffer like a full resolution like 1920 by 1080 or whatever resolution buffer to to represent it And then there's the navigation bar, which also is pretty small like it doesn't require a full buffer to represent it and they sort of overlap here and as As you can see there's no problem there and then there's the background Which is rendered obviously for this for the most for this most in the back And it does require a full buffer and in order to handle this and like render it properly you have to pay attention to Well where your surfaces are supposed to go and they have to be organized somehow and that's basically what surface flinger does so it takes all this this mess of surfaces that applications create and then Gives it to the hardware and And that's basically what it does so it takes the surfaces Communicates them over a protocol called Hwc the hardware composer API and talks to the hardware composer So what's the hardware composer? It just receives layers from from surface flinger through the Hwc API and then it optimizes them We'll get into that and then it outputs it to the display hardware And that's basically it. It's it sounds very straightforward. You take the layers and then give them to the hardware But it gets kind of messy in that hardware is not like ideal it's it's not ideal hardware, so if you have a a piece of silicon that supports Outputting stuff to your display it probably doesn't support Infinite amounts of layers because that will require actually having infinite amounts of memory Which hardware vendors are very much not into so there's sort of a sweet spot around four layers. That's what Android Google and Android Tells the hardware vendors to implement. It's not too much memory, but it'll cover most use cases and In return Android will try to not have more surfaces than four because it gets messy So what happens when you have more than four Surfaces if we look at the or think about the the background image or the Android desktop image We were looking at we listed three surfaces But the icons weren't listed. So that's another one and what if you get like an error message or something something pops up? That's five. That's more than the hardware can support and this is where we get Into optimizing layers for display. So now you have more layers than you actually can output And you'll have to do something about it. So you'll have to smash some of the layers together So that you'll actually reach them the magic number of four or less and The way you do that is sort of important You can choose which layers to combine intelligently. So maybe you'll choose to Combine the very the smallest layers you can find just combine them and do as little work as possible outside of the display hardware and just Output the remaining combined layers to the the hardware So this sounds really messy and it sort of is it's definitely complexity and there's a good reason for it so oh There is a good reason for it and the reason is power savings So the display hardware is far far more efficient at at doing this hardware composing work than your CPU is and also than your than your GPU is and furthermore, it's not just about power efficiency, but Removing work from the GPU and moving it to the hardware Display hardware means that your GPU can do more work.  It's the use of space part of the driver and it implements the hardware composter And it also implements all the good stuff that you're used to like open GL or Vulkan and implements memory allocators all kinds of little parts and Below it, of course, we have the kernel has to be somewhere so Part of the driver also most likely lives in the kernel or definitely lives in the kernel But we'll get we'll get into that So So now that we have like now that we got like an atomic KMS the atomic KMS API for talking to to the graphic subsystem of the kernel we're full of the happy fuzzy feelings and What Google actually did? Was to ship a device using KMS. So they took their own framework Android atomic display framework and just threw it out and Built the Google Pixel C which is an interesting device because it uses the KMS API But it also runs a close source Nvidia driver because there's no sufficiently good Open source Nvidia driver for their part so They actually needed something to implement this HWC part Or HWC API because there there's nothing in the open source stack that Implements it like Mesa doesn't implement it the kernel does definitely not implement it. So something has to implement it and What they came up with or rather Sean Paul at Google came up with was DRM hardware composer and It's an it's a hardware composer built on top of the normal Everyday Linux desktop stack and Let's have a look at that So this is the same stack we were looking at before but the open source stack is is a little bit different So if you want to replace this proprietary blob with with something we'll have to figure out what something actually is It has to implement HWC to which is the API currently used and It does that using DRM hardware composer, but there's also more to it We need more parts the the driver Does have a few moving parts in it and The the biggest parts are its Mesa Mesa implements OpenGL and APIs like that, and there's also DRM that's the kernel DRM subsystem So that's where your kernel drivers live for your graphics card And in order to talk to DRM or the DRM subsystem in a convenient fashion There's lib DRM, and it sort of abstracts away some of the pain of talking to the kernel When you interface with the kernel you'll talk I octals and I octals are no fun to program and So lib DRM abstracts away a bunch of that and just gives you nice functions nice Functions that give you the warm fuzzy feelings, and it also abstracts away some some other boilerplating stuff Which you're not particularly interested in But there's then there's more there's even more then there's a growlok It's sort of It's one of the I don't know sort of pain points in the stack There is currently as far as I know at least four open source implementations of growlok And they all basically do the same thing, but they're slightly different so There's the DRM growlok for example, and that's the old open source implementation There's GBM growlok, which is the new cool one that we all use and love and then there's what chromium OS ships Which is mini GBM, which is probably even nicer And then on top of that Intel has their own like fork of mini GBM called just Intel mini GBM I guess Which is a support for even more features and they need features to enable their hardware So that's very understandable, but now we have four four implementations of basically the same functionality So it's a slight mess And we're working on that we're gonna see if we can shrink it down to one again. We'll see So yeah, anyway, that's what the entire stack. It looks like I've omitted basically nothing.  Let's talk about some some recent developments, I guess Sometime I'm not sure when it was introduced in an Android, but a Bunch of years ago Android introduced a feature called fences or buffer fences and it's a very nice feature it allows you to have a buffer and then sort of associate Events to it so you can wait on the buffer to become available which means that you can do stuff like Just communicate buffers between processes in a secure and reasonable manner you can get you'll always get the expected results and You can also synchronize buffers Which means that you can have a part like for example the the webcam it creates a buffer like it takes a picture creates a buffer and then touches like a fence to it and With that fence it can then send the buffer before it's even done writing it out to the GPU and The GPU can go. Okay. This fence isn't ready yet ping me when it's ready and When it's actually ready and all of the pixels have been written out to the buffer the GPU will be poked and then it can use the Buffer immediately for like as a texture and do GPU stuff with it So it allows distinct pieces of hardware or processes to communicate in a nice way and it Really reduces complexity for hwc Or for hardware in the hardware composers previously you needed a bunch of threads to do like to like Paul buffers Have a look at them and then some some u-texts and semaphores, and it was like a slight nightmare But with fan says it's a lot simplified. You can just wait for the fence and do and it's done. It's done and The user space implement implementations sort of just shrink and the complexity really shrinks. So it's very nice in that respect and Mainline received support for fan says in 2016 thanks to Gustavo over there and As a part of developing support for Francis the orm hardware composer also received support for for Francis and hardware composer too So it's sort of a I shicken in the egg problem where if you want to upstream a feature to the kernel You have to implement it somewhere can't just upstream on tested code. It has to be implemented somewhere So the orm hardware composer was chosen because it's a relatively small implementation of Client to these a bi's so The orm hardware composer implemented support for Francis and hwc2 and then the kernel got explicit fencing implemented or upstreamed Yeah and the current status for a The orm hardware composer is that we were just moved like a few months ago Google Allowed us to to move from Chromium OS like the project was created as a part of the Chromium OS project A lot of good interesting stuff comes from there But it was also hosted within that project which made it kind of hard to contribute And as an open source project you kind of want to lower the barriers of entry to zero And we moved to free desktop org where most of the You the Linux desktop graphics projects actually live like Mesa for example lived here. I'm all this good stuff lives at FD. Oh And I'd like to just thank Google for it. They didn't have to do that and It's certainly inconvenient for them Now they have an external dependency instead of an internal and it just makes their workflow More cumbersome. So it it wasn't nothing for them to do. So I appreciate it Sean Paul who created DRM hardware composer pushed for this Pune Kumar and Marissa Wall also helped out. So thanks guys. It's very much appreciated And furthermore We're creating a GitLab instance for really for all FD. Oh projects, but hopefully a DRM hardware composer will be one of the first ones To to move and Also further lower the bar of contributing just have an interface. That's What people are used to seeing I guess Make it simple as simple as possible We'll see exactly how how it turns out if we'll keep mailing list development or not, but We probably will we'll see how it goes Anyway, so we've covered what it is and and why and how we got here. Let's have a look at where we are and There's a few platforms that have been tested and I said I say tested but that we brought up There's the IMX 6 Which is a very common embedded platform It uses the the vivante GPUs the 3000 series or some of them use the 3000 series And last last year like for most of last year, we were working on on bringing this up and thanks to the The vivante etnavib graphics driver. This is finally possible Like a lot of really good work has gone into reverse engineering the vivante GPU and it's like in a really good shape now like More so than than most other graphics drivers actually so that's very nice Lucas stack christian germiner Vladimir van der laan Were amongst those that helped out doing this or actually made it happen And I I just used their work. So I'm very thankful There's also the Dragon board 410c. It's based on the Qualcomm 410 So it's an old cell phone so see that they sort of made into An embedded system because I guess that was the the simplest way of doing it And it runs an adrino GPU. So adrino GPUs also have Rather good driver support in the freedrino project and the freedrino project was Created by rob Clark and he's sort of been pushing that far that ahead at Like an alarming rate. He's incredibly productive and so bringing That android graphics stack up on this device wasn't too hard The the gpu support was already there And that brings us to what's being worked on currently it's the high key 960 it runs the I think it's the high silicon 960 so see Which has an arm GPU and there isn't really a viable open source driver for the The well basically any arm gpu But specifically not For the g71 which is their latest architecture that it's called bifrost and there there's a There is a project for creating a driver, but it's still in the very early days. I really hope to see it Push ahead because it would be nice to have a Truly open source graphic stack running on this but for now we're stuck with proprietary drivers And currently Lenaro is working at bringing Android up on this device John Stoltz is doing a lot of really good work And it shouldn't be too long before this one is in the the verified Column So hopefully they'll work out Yeah so That brings us to the last part the big picture what's actually going on here and there's There are some conclusions we can draw So new features seem to get introduced into android and some of the features are like like really good like Solid improvements from the current status quo And those features eventually get moved into the kernel So that that's true for the fences we looked at And that's also true for the atomic display framework. Like it was not moved but Re-engineered like it's it was a good idea. So we did it again properly And now the kernel is way better because of it so When you think of android It's obviously like a mixed bag. There's lots of closed source stuff in there But it does push us forward like if nothing else through Just doing their own thing that maybe is actually better But this isn't necessarily true for all parts of the kernel If we look at the diff again, here's the the qualcomm versus mainline diff for version 4 9 and There's lots of stuff like mostly drivers that Never really will be moved into mainline And that's for various reasons like there's maybe a lack of incentive on qualcomm's part Or maybe the driver is only available for this one so see one time So if they take the time to upstream it it'll be sort of Not so useful going down the line But if you look at this graph About two-thirds Our drivers and there's some other stuff in there, too Much of it's multimedia related so Graphics or or video Not all though Yeah And the diff seems to be like fairly constant like if we go back to the the graph we had a look at initially It's not a clear trend here like If we look at at the 318 bump here, that's The the diff from 314 to 318 is mostly drivers again like Drivers can get added drivers get removed there seems to be a lot of churn for their uh, associates Which is an interesting data point but Uh Maybe it isn't the most optimistic or or it doesn't cause a lot of optimism not that a point like there's churn. I'll probably Never be fully like mainline the stuff But it's interesting nonetheless to in terms of painting a bigger picture um and also We've seen That open sourcing graphics drivers has been really like Pushing the development speed forward in terms of like You creating a new device and you already have 95 percent of of the hardware supported And maybe you have some quirks, but if you just can get started and see something like render on the screen That's a pretty good place to start you can fix what whatever is remaining and uh, it It isn't too much work Whereas if you have a proprietary driver and it doesn't work like that's that's unfortunate That's uh, there's not much to do about it except for like calling the vendor and hoping that you're Like big enough fish for for them to care, which may or may not be the case It also lowers development costs for vendors. We've been seeing this recently with uh with qualcomm and the adrino drivers They're actually contributing to the free drino driver because it is good enough that it is valuable to them So they're pushing support for their latest or upcoming gpus into the free drino driver So that it can be used, uh, which sort of means something And it's also interesting Um, also we've been seeing like a nice bumping in driver quality And if something is broken, it's easily fixed. So that's in very much in our interest Uh, and uh, and lastly all of this sort of sums up to pushing open source forward Uh, at least in my mind, I see like compelling evidence for features being moved from the proprietary domain Into the open source domain and then even being main uh, mainline, which is what we all want like that That's what gives us the the warm and fuzzies Yeah That's that's it for me. Uh, if you have any questions, just go ahead and ask Any questions from the audience? So do you think the reason that um, some vendors are beginning to pick up and uh, use the existing stacks is because There's a lot less for them to develop I think uh, the reason is that they're seeing the man like people use this stuff and they wanted to work Well, like out of the box, there's there's value there to them. So That's why they would be inclined to to contribute. I think so if you create something that's valuable enough They will be interested and they will contribute if if they have the resources If you look at a vendor like vivante, they're like pretty tiny like it's a very small company Maybe they don't actually have the resources to push for something open source themselves But on the other hand, we're pretty far along in terms of support for that platform. So that's good Hi, you mentioned that uh hardware composure Also does some squashing For the layers, right? You mentioned that the hardware composer squashes layers. Um, yeah Does the drm hardware composer do that also? Yeah, but maybe poorly so When you have too many layers, uh drm hardware composer will Fire up the gpu and uh through open gl smash some of the layers together It won't be particularly clever about this. It'll just grab some layers But maybe what you really want to do is grab the smallest layers because you're doing expensive computation And you might want to minimize it if you can do it more efficiently somewhere else Yeah What's the status of uh vulcan support and where does it Where does it stand in the stack you shown? Uh, so vulcan support as for the status. I'm the wrong guy to ask But it's implemented in mesa and uh also in the kernel drivers But you mesa would be what you would be talking to so mesa implements lots of these apis It's basically like a sort of a catch-all project for many of these. Uh, thanks Any more questions? Okay Thanks very much


In today's video, we've got another location where you can get yourself up to four very easy shinies in your copy of Scarlet and Violet. But before we get into the video, please subscribe to the channel. Remember, you can always unsubscribe later if you'd like to. We've already covered a couple of really good locations in the Piled Air region where you can go and catch multiple shinies from one spot. Today is no different. We're going to continue that on. We've got another location. This time, not as many shinies in this specific location is easy to get, but a really good location with some great shinies that you're going to really enjoy in your games. So if you open up your game, you're going to be wanting to head to the West Provence area one and it's going to be just beneath the ice shrine. So if you don't have the ice shrine already unlocked, it is this location here on your maps and the nearest Pokemon Center is going to be the West Provence area one central. So once you're at the Pokemon Center here, you want to take a northwest kind of trajectory away from the Pokemon Center. Just head up this bank here. If you've marked the location like I have done on the map, it's pretty easy to get to and you should have no trouble at all. But you want to be coming past these windmills here and then you'll see a couple more windmills in the distance. You want to just fly over this ravine or walk around it if you haven't got the flying mechanic yet and then just come around here and you'll see a big cavern area as you come to the end of this kind of cliff edge. But it's not in the cliff edge. It's not in the cavern here that you want to come to. You want to hop up onto this hop ledge here and when you get to this area specifically there will be a Brassilize Wild Jolteon. And so before you start anything, you're going to have to defeat this Jolteon and remove it from the field. Now once you've removed the Jolteon, you want to just position yourself next to this windmill here. You'll see the windmill right here, but you want to just position yourself about this distance away from the windmill.  And like you'll see here, we've got the Chargedet hopping in in this location here. Right here, you're just behind the lighthouse if you're looking at it and you've got to kind of just in your peripheral if you're looking straight ahead. So this is the location you might have to play around with where you're standing to get the desired results, but ideally you want the Pokemon popping up in the middle of the screen right in front of you in this area where you can see the Chargedets are popping up right now. So before we get into this video itself, I'm going to just go through a few things that are going to be quite useful for you through these hunts. Now, a lot of the Pokemon that we're going to be hunting today are going to be quite small and hard to see. So you're going to want to use your camera function, which does give you a bit of a zoom and you can press up to the right again and you will get a further zoom on it. If you want an additional zoom, what you can do is hit your home menu, then come down into your system settings down into system and then down to the zoom function here and just make sure this is toggled on the zoom function here. Once it's toggled on, you'll be able to come back into your game. And if you double tap the home button on your controller, you'll zoom in even further, which gives you a really good view of the small Pokemon, in particular Chargedet that you're going to be looking for, especially when they spawn in. So what you can do is just set your picnic up. Like always, it doesn't matter on the hunt. And this can be applied to any other shiny hunts that you do. Just despawn your picnic. Then the first thing that you're going to want to do is just get your camera out here. You're not really getting a good view here. You can go a little bit further. Yeah. And then if you double tap that home button, you're going to get a really good view. And for in particular, shinies like the Chargedet that are really difficult to spot because of their subtleties, it's going to make it a lot easier. And if they're spawning in, in this one place as well, it does make it a lot easier. So just a couple of tips before we get into today's video. So the first Pokemon we're going to be going after today is going to be manky, so you can get yourself a shiny and Nile air key. So once you've got your position sorted here, as you can see, this is the location again, just to remind you where we are in the West province area one. So just make sure you're here. Make sure you kind of get yourself lined up in the direction that we are with the lighthouse. And then the first thing to do is drop a save.  The reason for setting up a save is because if you do these sandwiches with your Herbomistica and you don't get a shiny in the 30 minutes that you're allotted, then at least you can just reset your game, make the same sandwich again and try for the shiny once more without wasting any resources. So that is the main reason. So once you're here, the first shiny that we're going to go for in this location is going to be manky. So you can get yourself a shiny and Nile airborne in the brand new Pokemon to Scarlet and Violet. So as always, I will throw up a list of sandwich ingredients on the screen. It'll be linked down in the description as well. If you want to take a closer look at it for yourselves and we are going to be creating a sandwich with the encounter and sparkling power for fighting types. And as you can see, we've got that sparkling and encounter power for fighting types. So we're all ready to go once that is set up. You want to just take down your picnic and then you're going to be able to see if you're in the correct spot, you're going to be able to see the manky spawning here and they're going to come in at a decent rate. You're going to get a lot of monkeys spawning in at once and then dribs and drabs throughout the rest of the time until the maximum amount of about 15 spawn into the field. So you want to be just paying attention to this area where the monkeys are and then the manky that you're going to be looking for the shiny for this one is going to be a green color. So really obvious to see compared to the normal ones, which are that more white creamy color, it will stand out really easily and you'll not have any trouble spotting it. So what you want to do if non spawn in that are shiny, you just want to set your picnic up once again. Despawn everything that has spawned in and then take your picnic down as soon as it's set up and then they will spawn back into this way. You're going to get a lot of Pokemon spawning in at once, meaning that you're going to get through a lot of Pokemon, giving you really good chances of getting the shiny with the sheer amount of Pokemon that you've got with that sparkling part active. And after a little while of doing this reset, it did take a while for us to get it.  It's one of my favorite new Pokemon in Scotland Violet. So this is probably the best location I think in the games for getting a shiny monkey. Super easy and it is just like that. The next Pokemon that you can get from this location very easily is going to be rock rough.  But this time when you set your picnic up again, just remember to drop a save before you start this and then set your picnic up and make a rock type sandwich for the encounter power level three and sparkling power level three. Again, just a reminder that the sandwich recipe list is linked in the description as well to give you examples of how you can mix and match Herbomistica to get the sparkling and encounter powers that you're looking for for this method. So you can see there we've got that encounter and sparkling powerful rock types. You want to just take your picnic down and the rock roughs will start spawning in. Doesn't matter what time of day it is either. They will spawn in day and night. And again, another really easy one to identify when the shiny pops in, it will be a bright blue color.  And again, just like you've done with the monkey example, you're going to just wait for them all to spawn in till no more starts spawning in in this location. And then you're going to set your picnic up, despawn everything on the field and then take your picnic down for more to spawn in. And hopefully the shiny doesn't take too long. And there we go. We've got the blue boy. It is here and we can go and grab ourselves a shiny rock rough. So this is actually quite interesting because I went to Liverpool Regionals and I used Lycan Rock in my team that day. And I really wanted a shiny to take into the tournament, but the night before I tried and I just could, I had no luck and I wish I'd known about this location beforehand, would have made it really easy for me to come to and just get a shiny Lycan Rock. At least I got one now though. And this is just the quickest method I feel for getting a shiny rock rough. Now the next Pokemon that you can get here is going to be Ghastly. Now you can get yourself a Ghastly. Now it is argued that Gengor isn't the best of shinies. It is very subtle and Ghastly is quite a difficult one to spot. I'll put the shiny up on the screen now for you so you can get a good look at Ghastly and it's shiny form so you know what to look for but it has got a bit more of a purple hue to its body and a pale blue to its kind of cloudy aura that it's got around it. So that's what you're kind of looking out for. But again, for this location and the sandwich powers that we want to set up are for the poison type. So don't set it up for ghost type because you'll get a mix match of Ghastly and Drift Blims and you don't really want that if you're just going for the Ghastly. So if you set up a poison sparkling part and in counterpart sandwich like we're doing here again just refer to the list of recipes in the description that'll help you out a bunch. And then you can do the same method here but the thing that you're gonna have to do is make sure that it is night time in your games. So to keep this in mind the night day cycle is about 35 minutes. So depending where you are in the game night day cycle you can close your game down and then advance your clock forward a few minutes half an hour if you want and that will change the night day cycle in the game when you boot back into it. You wanna be preferably doing this when it's just ticking over tonight if you can do that. So if you can get your clock set to around dusk and then when it ticks over tonight set your sandwich up then and you got the full 30 minutes to take advantage of the night time cycle and no worries about that turning into daylight when you do this. So when it is night time in your game like I say you wanna set up a poison encounter and sparkling power sandwich for the ghastly. Once you've done that it's gonna be the same method as before you're gonna just set your picnic up and then take it down and watch the ghastly spawn and keeping a close eye out for the shiny one.  I think it makes it a little bit more difficult but it's definitely a shiny I wanted in my games. I've got shiny Gengar from other generations but shiny Gengar is just really cool as subtle as it is. I do like it as a shiny at least to have anyway. So this is how you get yourself shiny ghastly and this one did take us quite a while. We nearly run out of our sandwich power and our first time round getting the ghastly before we actually bumped into it and it took me a minute to actually identify the shiny for this one but we did manage to get it and this is probably a nice location to get the ghastly if you are hunting for it. And the final example for today is gonna be for a shiny chocolate in this location probably the most renowned location for chocolate and an easy one for you to do. You'll need to set up a fire sandwich for the sparkling and encounter part in this location but once you do that, again just refer to the recipe list that I've got linked in the description. You'll be able to apply the same method as we have done with the other hunt but this time it is probably advisable to use the additional zoom function with double tapping your home button menu once you're in the location that you need to be in for the chocolate to just spawn in that one spot and they will just continue to keep spawning in at a good rate giving you a good amount of time to just take a look at them. Shiny chocolate gonna be identifiable with their blue eyes that is the only way you're gonna be able to identify these Pokemon as shiny so not the easiest to spot but like I say if you go in with your camera first and then you double tap with your home button if you've got that zoom function on like we mentioned earlier then you're gonna be able to see the blue eyes really easily and then they're gonna be about a maximum of 15 spawning in at a time so when no more start spawning in you wanna just set your picnic up and despawn everything on the field and then just rinse and repeat this process until the shiny comes in and there we go, you can see we finally got the shiny chocolate and this is on my first sandwich as well so hopefully you have the same amount of luck as I have in this one and a really nice shiny to get as subtle as it is it could have been a lot better of course but it is a nice shiny to have for the collection nonetheless but friends there is four Pokemon that you can get from one location very easily in your copy of Pokemon Scarlet and Violet and all really nice Pokemon to get as shiny as well although two of them are pretty subtle to say the least chocolate though is a really nice shiny and then you can evolve it into shiny armorus and Serellege and then obviously with the monkey as well you're gonna be able to get yourself that shiny and eyelid which again is a really nice shiny ghastly as well one I haven't seen covered too much but just make sure it is that night cycle when you do go for this hunt and Shiny Gengar is always a cool Pokemon to have nonetheless for any collection I hope you found today's video useful thank you so much for tuning in as always if you have found it useful please drop a like it does massively help out the video and do subscribe to the channel for more of the shiny hunt videos as well as that other Scarlet and Violet content we do here on the channel have a great rest of your day and I will see you all in another video very soon, until then friends take care of yourselves and bye bye


Welcome to OSF 101. Today we're gonna go over an basic introduction to OSF. If you have questions now or at any point feel free to use the Zoom Q&A. If you have questions after this webinar we have an actual human person that answers email at contact at sos.io. We would love to hear from you whether those are problems or suggestions or just things related to open science and OSF that you'd like to discuss with the Center. You can send everything to that one email address contact at sos.io. So I work at the Center for Open Science that's the sos.io part of the contact email.  I would be remiss if I did not mention that as a nonprofit we are always welcoming for support from the community whether that takes the form of charitable donations, examining the tools and services that we have to offer, perhaps discussing them in your department or online. We're here to help and we're just trying to spread the word. With that said our mission is specifically to increase the openness, reproducibility, and integrity of scientific research. We say science in a lot of things. It's in the mission statement. It's in our name. What we actually mean is research broadly. Whatever your field, whatever your discipline, our tools are designed to be discipline agnostic and we want to try and help. The biggest thing that we build and maintain is the open science framework which we just call OSF. This is a free and open source tool. As I mentioned all disciplines are welcome. This is what we're going to be digging into today. You can always access it at osf.io and this is completely free service available to researchers as part of our nonprofit mission. There are no special hidden accounts. There are no paid features. This is an open and free service. The way that OSF is designed is we're trying to make it easy to practice open and reproducible research practices at all stages of the research life cycle. The research life cycle is long and there are many steps throughout it. What most often comes up in terms of discussions of open science and reproducible practice is a lot of focus at the very end. Once it comes time to publish a report people start engaging with the idea of what other materials should we share, how should we spread this knowledge more widely. That can be time-consuming and sort of error-prone as anyone who has spent hours in the middle of the night digging through email chains to try and find versions of files that were sent around months ago can readily attest. The goal of OSF and a lot of the methodology and practice suggestions that we make is to move some of that work earlier in the process so that it can happen more easily and more efficiently. First thing that we're going to do is just take a look at an example project. This is a live research project that's available on OSF. Let me just load up this project here. This was a paper put together. You can see the DOI and the preprint are prominently listed on the page. What we have here is a lot of information about the project. We start off with the title and date. We've got a list of contributors here, some information about when the project was actually created and when it was last updated. There's information here in the wiki about the actual stimuli that were available, as well as the preprint that I mentioned. We scroll down. There are some files made available as part of this, including some GitHub connections here. We'll look at all of these different capabilities in more detail. Down here there's a list of all the activity taken place on this project. You can see what happened when it was last updated. Looks like they were connecting the preprint. We've got some different sections of the project over here under this components tool, including the stimuli and some various experiment data. Up here, if we expand this, we've actually got a citation widget that presents all of the basic information about this project in a number of easy citation formats for quick reuse. This is just an example of what researchers are doing on OSF. We're going to go ahead and now create our own example project so that you can see how to build up this kind of a structure and what considerations go into it as you design your own projects. I'm just going to go to sign in and connect here. Some of you may, if you don't already have OSF accounts or even if you do, you may have an institution. Perhaps you work at one of the, I think a few dozen OSF institutions. You can also sign in directly through your institution that way. Check on that list. If this is the first you've heard about it, it may not be relevant to you, but it's a very handy time saver. As well as you can sign in with an ORCID ID, which, independent of all of this, strongly encourage you to get. I'm just going to sign in with my OSF account here. That's going to take me to put on the OSF home. Here's my project dashboard. When you first log in, if you just go to OSF.io and click sign in, it brings you straight to this dashboard. What this is is a list of all of your projects and your project components arranged in order of what has most recently been edited, what is being changed most recently. This is just an easy way to quickly get back to the things that you were most recently working on or in a collaborative setting that allows you to easily see what sections of your projects your collaborators have been working on as well. For this webinar, we're just going to create a new project. I'm going to hit the green create new project button. Then I get the option to put in a title for my project. Projects on OSF can be basically anything. I'm going to show you what a project structure looks like for an individual research paper, much like the example we just looked at. We can also easily create structures for an entire lab or line of research or for large multi-site sort of complex projects. We have some example projects that showcase those different features and structures. If anyone is interested, you can search for OSF example projects or I can share some links a little later. I'm just going to give this one a descriptive name. This one's going to be political science related because those are the example materials I have. Then I'll hit create. I can either keep working here and make some more projects or go to the new project, which I'm going to do. Now we've created a new project on OSF. It has all of the same basic tools available that we shall use in that example public research project. Because OSF is designed to be discipline agnostic, we don't create a structure that we think is going to be useful in your particular research collaborations. We give you these basic tools so that you can build up whatever structure is most useful for your existing workflows and partnerships. Up at the top we have the basic project name. If I wanted to change that, I could just click on it and change whatever I want in the field here. I forgot the capitalized income, so I'll go ahead and make that little change. We have the list of contributors, which is just me at the moment. Some basic information about when the project was created. I can add a description or a license to my project. The first big tool on the page is the Wiki. The Wiki is a collaborative text editing space. You can use this in any number of different ways. You can have a shared to-do list or the sort of abstract from a paper. This can be just sort of a project read me space to help direct people around the rest of the project, whether that's you or your contributors or the public. Should you make any of this public? It's important to note at the very beginning that everything on OSF is private by default. Every project that you create. We've got a make public button up here and a private button. At the moment, I'm the only one that can access this. Anything that I add to the Wiki is going to be for my internal organizational practices. If I want to make this public later, then I can always change what's in the Wiki to better suit that wider audience. Underneath the Wiki, we have a section for files. This is where I can add and interact with files on OSF. You can add any type of file that you want to OSF. We actually render a significant number of them directly in the browser so that you can see the contents of all of the files on your project without having to download all of them and interact with them locally. That extends everything including common office documents all the way through to .stl3d renderings and some other much more complex file types that you may not have ready. Viewers installed for on say your phone trying to identify a file to send to a contributor. We try and make it as easy as possible to just interact with everything directly through the site. The only limit on files for OSF is that each individual file you add has to be five gigabytes or less. There is no restriction on file type. There is no restriction on the total amount of storage that you can use either within a project or across OSF. The only restriction is that each individual file has to be five gigabytes or less. Over on the other side of the page, we have a recent activity widget. Here this tracks everything basically that can be tracked about a project. This shows when it was created. It shows that I changed the title. This is going to be a great sort of rolling log of everything that I and my contributors do on this project so that we can see exactly what changed when and who changed it. We have some tags that we can use up here to enhance discoverability should we make this public. We have a component section. Components are the primary way that you add logical structure to your OSF project. We're going to be creating some of those in just a second. As we saw, there is a citation widget to make this page very easy to site by other people so that if I choose to share this, I can easily get credit for the work I'm making public. As I mentioned, there's a make public button because everything is private by default. I also like to point out the sort of invisible feature of this page which is the address. Each project as well as each component in a project and all files in a project gets a unique five character. We call it a GUID for globally unique identifier. That's the part that comes after osf.io in the address. All of these things have very short permanent addresses that will always uniquely identify this particular project or a particular component or a particular file. That's just to make it really easy to direct people to exactly which portions of a project you want to show them. Whether that's just for coordination purposes while you're collaborating privately or if you choose to make any of this public later on. It gives you some really short addresses that you can use in a CV or a lab website or even just directly in figure captions to direct people to the specific data set or the specific analyses that created that particular chart in a publication. They're short and easy to use and it's sort of an invisible feature. I just take a second to highlight that. To start with, I'm just going to add some logical structure to this project. I'm trying to build out a structured workspace. I'm going to start by adding a couple of components here. If I hit add component, I have the chance to put in another title here. This one's just going to be my data component. I'll hit create and keep working here so that I can create another component. This one's going to be for materials and create. I'll keep working here. Now I have a couple basic components that I can use to organize my material and data files and just keep everything sort of neatly arranged. If we take a look inside the data component, you can get to that just by clicking on the name. Now we're inside the data component. There are a couple things that you're likely to notice. The first is that this page looks almost exactly the same as the main project page. Components have all of the same tools and capabilities as the project page itself. The only real indicators that you have that you're inside a component are up here above the component name. You can see the main project name in the top left. And above that on this main project toolbar, there's a little up left arrow in the top left corner. Both that and the project name allow you to get back up one level to the main project page. Importantly, components can have their own components. You can have components within components within components, as many levels as you need to create a structure that fits your particular research needs. Components can also have different settings than the main project for things like public and private. So you can make just your data component public and not have to make the entire project public or just your materials component public and not have to make the rest of your data and project public. Components can also have different contributors. And so I'll go ahead and click on the main project name and show you how we can add some contributors to this project at the moment. It's just me. And I would like this to be a collaborative project. If this was just for my own private research note organization, I may not want to add anyone. There's no obligation to make any of this collaborative or make any of this public. We've just designed it to be as easy to do those things as possible for you. So if I want to add some more people to this project, I'm going to go up to the contributors button on the main project toolbar. And here you can see I'm the only contributor. And then I'm going to hit add here and bring in a couple of my coworkers. So here I've got a search by name option. For privacy and spam protection reasons, you can't search directly by email address. So you need to search for the names of your colleagues. In this case, I'm going to add Courtney. And you can see it automatically lists the number of projects we have in common. It also lists information from Courtney's OSF profile. Both of those are great ways to help sort through the contributors that show up here. If you're working with people that have relatively common names, there aren't very many Courtney Soderbergs out there. So she's relatively easy to find on OSF. So I'm going to click the big add contributor button next to her profile. And then I'm just going to search for another one at the same time. Add David here. And again, I'm going to click the big green button next to his picture. Once I found the people that I want to add, I've got a couple of different important decisions to make. The first here is this bibliographic contributor box, which is checked by default, which means that by default, when I add them, they will show up in sort of the bibliography. What this means is, do I want these people to be publicly visible on the project page as contributors? And do I want them to appear in the citation? Because this is all for a private project, this distinction may not matter as much at the moment. But if we're designing with an intent towards making any of this public later on, this is a very useful feature to have. If I uncheck the bibliographic contributor box, they'll still have the same rights and permissions. They just won't show up publicly as a contributor to that. So whatever the norms for appearing in a citation, and then the authors list are in your particular field. That's what guides the sort of bibliographic contributor settings here. If you're working with graduate students who aren't making a significant enough contribution to appear in the authors list, or perhaps you're just dealing with some administrative staff that need access to expense reporting or other things, and you want to bring them into your OSF project, but not have them appear as contributors to the research outputs. You can just uncheck bibliographic contributor. What rights and permissions these new contributors have depend on this second list here, which is the list of permissions available. There are three main permission settings in OSF, read, read right, which is the default and administrator. If you ever need a refresher in what the difference between those are, you can hover over the little question mark in a black circle, and it will spell that out for you. This is generally true across OSF. If you see a little question mark in a black circle, and hover over it, hopefully it will give you some useful information. So the different options are read only, which just allows people access to the project, because this is a public, this is not a public project. The only way that people are going to be able to gain access to it is if I actively add them as contributors. The default level, which is the next one is read right, that allows them not only to access the project, but to make changes to it. So they can edit files, they can add and delete content, they can make new sections, etc. The highest level of permissions is administrator. This is what you start out as when you create a new project. This allows you to do everything that a read right user can do, and also to make decisions about whether something should be shared on a project. So administrators are the only ones that can decide to make part of a project public. Administrators are also the only ones that can add other contributors or change the permissions that existing contributors have. So by default, we just set it to read right so that you have to make a conscious choice to add other administrators if you want them to be able to make things public or to add and manage contributors on a project. I'm going to leave both of my contributors here as just read right and then click next. What I get here is a list of all of the components in the project. As I mentioned, components can have different settings from the main project page. So they can be independently made public or private. They can also have different contributors and contributors can have different permissions in different sections. So if you're working with someone who is just uploading data, they may need read and write access to the data component, but you can give them just read access to the materials component. Or perhaps they don't need access to the materials component at all and then you would just add them to the data component. I'm going to go ahead and add both of my contributors to all of these components and hit add. And so it's adding them to those different sections in the project. Here you can see all three of us are listed. And if I go back to the main project by hitting the name in the project toolbar, you can also see that they appear in the list of contributors under both of my components. We had that handy list where we could just select the components when adding contributors because we had those components already on the project when we added the contributors. If we want to add some additional sections to this project, so if I go back to add component and this time I'm going to add an analysis scripts component, this first option here add contributors from and then the name of my main project. What I'm going to do is click that and that is going to pull in all of my contributors at this main project level and give them the same permissions to the new component. So depending on which order you do things, we try and make it easy to manage the contributors to each independent section of the project. So if I hit create now and keep working here, you'll see that the new component has been created and that all three of us are there. If I add a component without checking that then by default I'm the only one that has access to it because I'm the one that created it and I'd have to go back through in contributors and add those contributors inside that new component. So we have a project structure now with some different areas that we can organize our research materials. I'm also going to go ahead and add some information about just what exactly we're trying to research here so that it's easy for us to distinguish the different topics that we have going in the different attempts we have to answer some of these common questions. I'm going to do that in the wiki and I'm going to get to the wiki here by clicking on this little box with the arrow next to it in the wiki section. So that brings us to the wiki tool. There are a couple sections of this page in the middle here is a preview which is empty because there's nothing in the wiki yet and over here on the right hand side is the actual wiki text area. This is a plain text area where we can add our research questions, sample size planning for instance. This is plain text but if you want some additional formatting we use a plain text formatting convention called markdown. If you know markdown you can feel free to just start using it. If you don't know markdown you don't have to learn markdown in order to use the wiki. This toolbar up at the top will handle all of your basic formatting needs. So if I want my research question for instance to be in bold I can just click the bold button here and you can see in the preview that is now bold. If I want to remove that bold I just hit it again. I mentioned that it's markdown because I think a markdown is an interesting thing to learn but mostly because I want you to not get confused if you use the formatting bar and then suddenly these asterisks start appearing around your text. That's just how markdown indicates bold in this case. We can also create lists and other kinds of formatting. The important part about the wiki perhaps the most important part about the wiki is once you have made a change you need to scroll down to the big green save button at the bottom. I cannot emphasize enough the big green save button at the bottom so I'll just hit save here and now my edit box has disappeared and my preview shows the actual contents of the wiki. If I want to get back and make additional changes to the wiki I go up to the top right hand corner here and I can hit edit and perhaps I want to add a third list item here and then I will scroll down again to the big green save button at the bottom. The wiki is a very flexible and useful tool in terms of general knowledge collection and organization around a project. One of the really powerful things that it does if we click back on the main project name in the project toolbar we can see that the first section of a wiki is directly included on this main project page so that makes it really powerful in terms of both contextualizing what it is that you're trying to do in this particular project or on a particular component as well as just helping people navigate the rest of the project because it's prominently displayed and you can use whatever sort of links you want to help people navigate around. So however you plan to use the wiki I strongly encourage you to try it out and see how useful it is to have that kind of a signpost right at the top of your project section. Okay so just in terms of helping people navigate around a project a new feature that we've recently implemented if I go to my data component again so now we're inside the data component I mentioned that you can have a description for your project you can also have descriptions for different components so here if I add in just a little description about what exactly this data is and hit save if we go back up to the main project just click on the project name there you can see over in the list of components that this description is directly included under the list of contributors for that data component so in addition to the wiki having descriptions attached to your different components can really aid in navigating especially if you build more complex or multi-level project structures it's always better to have strong cues about where you're going and what these materials are so encourage both wiki and description use for those purposes okay so we've got a project structure now we've got a little bit of information about what we want to actually do in this project and we've added some contributors so this is a genuinely collaborative organized research space it's still private only my contributors and I have access to it and you are seeing it through my screen at this point we're going to try and actually add some content to this by uploading some files uploading files to osf is pretty straightforward you can see down in this file section on the left hand side the main project has an osf storage icon underneath it and then we have this sort of hierarchical list of the different components each of which also has an osf storage underneath it in order to add things to the project you just want to interact with the osf storage for whichever section of the project you want to add things so if i go to the main project osf storage and click on it you can see a bunch of buttons have topped up up at the top one is just an upload button so if i go to my example materials i can just select all of them and hit open and it will upload all of those in parallel and give me a little message when they have been successfully updated there we go so now i added all of these files to osf but ideally i'm going to want to use the project structure that i created to organize and sort of administer these different files that means i need to now move them into the different components moving files on osf is really straightforward you can just click on them and drag so i've got my questionnaire here that's a material i'm going to drag that to the osf storage under materials i've got two r scripts here for my analysis i'm just going to control select both of those or just do it one at a time drag down my two analysis scripts and then i'm going to grab all of my data files and move them into data so now i've organized all of my files in the relevant sections having them in components like that makes it really easy to administer who has access to what so that graduate student i mentioned who's going to be interacting with the data they only need to be a contributor on the data section they're not going to have access to the questionnaire or the analysis files i could also have some researchers on the team who are just working on the analysis files and they can just be contributors on that particular analysis script component that not need access to the data which perhaps they would need to go through some additional clearance to get so adding files to osf is pretty straightforward as i mentioned you can add any file type and the only limit is that each of these individual files needs to be five gigabytes or less if we look at a couple of them you can see that we render them directly in the browser as i mentioned i'm a particular fan of our csv view which allows you to actually sort and search through the different contents of csv files we click on the data dictionary which is a microsoft word file you can see that we render this directly in the browser as well although that takes a second longer than the csv's each of these files also has its own unique GUID which is that five character string in the url i mentioned so i can directly link to any of these different files with a unique permanent identifier i go back up to the main project one of the things that we all know about research is that the materials and the data and everything else that we're dealing with are not static they're going to change over time and one of the big things that we advocate for is the use of version control so everything on osf is version controlled automatically that means that we keep every copy of every file that is uploaded to osf there are a couple of different ways that you can interesting there are a couple of different ways that you can interact with those files the first is that plain text files so for instance our our files are plain text files and they're going to be able to be edited directly through osf so if i click on my analysis file it's going to display that here with some helpful syntax highlighting for the r language just like in the wiki if i click edit i get the contents of that file in a little plain text box and i can just add in a comment that i'm loading libraries and click on the big green save button at the bottom so now my comment is in the main file uh since osf keeps every version of these files i can actually just click on the revisions button up by the edit one in the top right corner and what i get is a list of both versions of this file that have existed on osf i've got the exact date that they were made who made the changes i've got a download button for each of them and if i want to just view the old versions i can actually click on the version id which is a link to that version of the file so here's the version without the comments if i go back to revisions i can click on the second one and now you can see the version with the comment at the top by default osf will always show the most recent version of every file so this version two is what people are going to get to if they just click on the file name at any point after it's been created so plain text files that's pretty straightforward if you have more complicated files on your project for instance if you have one of those data dictionaries in microsoft word you can't edit the file directly through osf what you do is you edit it on your main machine the same way that you created the file so i'm just going to make a change locally and then hit save and so i'm going to save it with the exact same file name and if i go back here to osf storage this is the osf storage under data so this is where the data dictionary file currently lives and if i hit upload and add my newly changed data dictionary because i'm adding a file with the same name to the same section of osf osf recognizes that this is a new version of the file so you can see here that this is version two and you can see the make a change that i added to the top of this file if i click on revisions we can get back to the list of versions and we can look at the original version of this file without my make a change comment up at the top so whatever type of file you have as long as you have the capability to edit it you can just save it and add new versions to osf the goal here is to avoid using file names as an ad hoc version control system it's just an error prone and sort of inefficient method far better to have a tool whether that's osf or any other tool of your choice that will automatically manage these versions for you so if we click back up to the main project page that's how you upload and manage versions of files on osf you may already have tools that you're using to store your data or to manage version control for that data over time one of the big advantages of osf is that we are designed to integrate with as many of those different tools as possible so that you can keep using the tools that you already know or that you may be required to use and still get a lot of the benefits of using osf and the way that you do that is through the add-ons tool add-ons is right in the main project toolbar so if i click add-ons you can see the list of services that we currently integrate with uh there are a number of direct data storage services like dataverse and google drive and dropbox there are some version control specific ones like gitlab and github and bitbucket and a couple of different citation managers you can use zotero and mendelay and integrate those directly here um i'm going to go ahead and connect a google drive uh so if i click on enable next to google drive what i get is a list of terms um this spells out everything that's possible to do when i connect google drive and osf i'm building a bridge between these two services and what it's possible to do over that bridge uh is generally just determined by what in this case google drive will allow us to do on your behalf uh so in this case it spells out that i can add and update files on both sides so that i can add files to my google drive and they will immediately show up in uh the portion of my osf project where i've connected them similarly i can add files through osf and they will appear in my google drive uh and for google drive at least that is also true for deleting files i can do so on either side uh so this is an important list of terms to read if you're going to connect any add-ons uh it's different for each add-on service that you connect i'm going to hit confirm here and now i have a configure add-on section here where i can import my account uh which just is a confirmation uh and then i have the ability to select my different google drive folders i'm going to pick one folder out of my google drive list it's important to know that this is my full list of google drive folders uh you are only seeing it now because you're actually looking at my screen my contributors on this project are not going to see this list they're not going to know if i've got thousands of folders for cat videos or whatever else i'm using google drive for uh they're only going to see the individual folder that i'm actively selecting here so if i hit save and now i go back to my main project page here you can see in files that in addition to the osf storage uh i have a google drive storage um i don't actually have any files in that google drive folder as it turns out uh so if i just go ahead and drag one of my analysis scripts up to that google drive folder um that script is now on google drive it is not in my osf storage for analysis scripts anymore it has actively moved over to my google drive uh if i were to load up google drive you would see it in that folder um so that just to emphasize that these really are two different services but you can seamlessly move things back and forth um if we look at that file even though it's hosted on uh google drive that's where it actively lives um we can still view it through osf so even for files that are actively stored on another service we will still render them for you um we still maintain the permanent unique UID uh GUIDs for each file so this can be a very convenient way to get short IDs for files on other services you can still see the different revisions for it um as many of the benefits as we can give you of osf even though the file is actually living on google drive that's how you can create a structured project uh add some information about it to the wiki and to the descriptions for different components um add and manage files as they change either directly through osf or one of the companion services that you can connect through an add-on um all of this is done completely privately uh if you choose to make it public process for that is you click on the make public button and you can do that at the main project page or in one of the individual components if you just want to make that component public if i hit make public here i get a warning that i'm going to put things on the internet and then i should take a second and make sure that i want to do that this is actually a great warning because i'm going to hit cancel um you may have noticed that inside my data component i have a file called raw data i don't actually want to share the raw data file for this project so what i'm going to do here is create another component for it and i'm just going to call this one raw data i'm going to hit the add contributors button again because i want my contributors from the project to have access to it i just don't want to make this file file public so i hit create and keep working here so that i can just drag my raw data file down to the osf storage for raw data so that is now moved out of my main data component and into this raw data subcomponent if i go back up to the main project page now i can click the make public button with confidence because i know that that raw data file is in its own separate component so if i hit continue here you can see that i get now a list of all of the different components and again each of these components has its own separate ability to be public or private so i could make all of these private and then just publish my analysis scripts i could make all of this public in this case i'm going to make everything public except my raw data component so that will remain private to my contributors and i so if i hit continue here it gives me a list of all of the components that i'm going to be making public so that i can confirm this is a great reason to use nice descriptive names so i hit confirm and now my make public button has been replaced by a make private button and the little lock icons next to my different components have come off if we go to the data component you can see that the lock is still there for the raw data component so only my contributors and i will have access to that even though this main project page and all of these other three components are now publicly available because they're publicly available you can get to them now you could get to them through the GUID the unique url for the project you could go to osf search and search for them that way you get to search from the main toolbar at the very top of the screen everything that is publicly available on osf is also going to get indexed by google so this will relatively quickly be added into the main google index for the web which can make it very easy to find things if i go ahead and go to google and search for daniel locken's effect size you can see that his osf project relating to effect sizes is actually one of his top links so this is his public project he has used some tags here to help make this project more discoverable those are used both by google and by our internal search and because this is publicly available there are a couple of additional features that are relevant if you click on the analytics page the analytics tool in the main project toolbar you can see the internal osf connections to this so people may have linked to this project or actually made copies of it you can also see the public activity from the last 30 days so these are the number of visits and when as well as how people got here in the top referrer section there's a section on which pages are most popular which is just a way to help show the concrete impact that your work continues to have over the course of its public lifetime this project was actually made public about five years ago and you can see that this is just the last 30 days of activity so this is just a great indicator of the continued interest that people have in this work and that you can continue using this so i've just clicked on the files page up here where you also get a list of the total downloads for the files related to this project and so you can see his preprint has been downloaded some 6 000 times and each of the supplemental calculations sheets that he's provided has also been downloaded thousands of times so great concrete indicators of continuing effect of your work go back to our project page one of the other great features when you make something public is that a new button appears inside the main project sort of biography information over here there's now a create doi button any public project or component on osf can get a free doi we're big fans of the very short permanent urls but if you need a doi for your particular discipline or reference needs when you make something public on the osf you can get that for free thank you very much for attending if you have questions at any point feel free to email contact at cos.io all right everyone have a great day