Greetings and thank you for attending this month's Science Seminar presented by the NSF's National Ecological Observatory Network which is operated by Patel. Our goal with this monthly series of talks is to build community among researchers at the intersection of ecology, environmental science, and neon. Today we're excited to have Mike Bell from the National Park Service here to present, but before we turn it over to the speaker, a few logistics. We have enabled optional automated closed captioning for today's talk. If you would like to use it, please find the CC or closed captioning button in your Zoom menu. The webinar will consist of a presentation followed by a Q&A session. As you think of questions, please add them to the Q&A box. We also have a meeting chat. Use this to share links and other items of interest with the group, but add speaker questions to the Q&A. We will facilitate discussion at the end and there will also be opportunity to ask questions over audio. Neon welcomes contributions from everyone who shares our values of unity, creativity, collaboration, excellence, and appreciation as outlined in our Neon Code of Conduct. This applies to Neon staff as well as anyone participating in a Neon event. The full code of conduct is available via a link that I will share in the chat in a moment and is also embedded in the Science Seminars webpage, which I'm showing on my screen, and I will also pop the link in the chat in a moment. This talk will be recorded and made available for viewing on the Neon Science Seminars webpage. You can access those by scrolling down to the list of talks, finding the talk from today, and when the recording is available, there'll be a recording available. You can go ahead and click that and watch the talk at your leisure. To complement our monthly Science Seminars, we host related data-skilled webinars on how to access and use Neon data. Registration for those is available on the same Science Seminars webpage below the list of talks. You can find the list of data-skilled webinars. There are also recordings for those if you didn't get a chance to attend and would like to watch them separately on your own. The next one will be coming up in March. Lastly, if you have ideas for a talk for this seminar series, nominate yourself or a colleague today by filling in the form on the Science Seminars webpage. You can go all the way to the top and here we've got our nominate a seminar speaker. So, without further ado, I'm going to turn it over to Teresa Berlingame to introduce today's speaker. Hello, everyone. My name is Teresa Berlingame. I work for Neon largely with instrument system data quality. I'm introducing Dr. Mike Bell today. He's an ecologist from the National Park Services Air Resource Division where he researches the impact that air pollution has on plants, soils, and waters within federal lands. He previously worked in the field at multiple National Park Service units before getting his PhD in botany from UC Riverside where he studied how desert plank communities change with increasing air pollution from Los Angeles. Today he's going to share how NPS scientists are relating air pollution data across the country to make risk assessments of sensitive species and ecosystems within NPS units and discuss how this data is used to guide conservation and management decisions. Thank you for joining us. Take it away. Awesome. Thank you, Teresa. All right. Well, everyone, thank you everyone for joining. So, I'm with the National Park Service Air Resource Division. A lot of my colleagues who are working on doing this work with are with the U.S. Forest Service and the U.S. EPA. So, it's a very collaborative process. With that being government agencies, the views expressed in this presentation are those of the authors and don't necessarily reflect the views or policies of the agency. So, to start off, I wanted to give a little bit of information about the National Park Service Air Resource Division. Mostly because I feel like most people don't know that we exist because I didn't know we existed prior to applying for this job here. Basically, our goal is we are one of 10 National Science Offices in the National Park Service. And our goal is to allow visitors to breathe easy, see far, and let nature thrive. We do this by monitoring air pollution across the country, calculating pollution levels where ecosystem harm is occurring, and synthesize this data to understand general risk of the parks.  And to really provide that expertise to parks that might have an air pollution issue that they don't have the local expertise to. Within this, the results and the information that we provide, as well as the other National Science Offices are really to guide management actions. And then within ours is review permits for new pollution sources that are coming outside of the parks, and then informed policy and regulations that the EPA is developing to reduce future air bluits. And as I mentioned at the beginning, we do this in a very broad interagency collaboration. So, each of these federal agencies have slightly different missions, but we're all trying to use the same data so that at least we have the same numbers that we're applying appropriately. So, the Forest Service and the Fish and Wildlife Service have similar, but different missions and responsibilities with a part of their goal being to preserve natural resources. The EPA is more focused on the science of this and developing policy and using that science that will help all lands and people within the U.S. And the BLM has a mixed mission that allows for some commercial uses like grazing oil and gas that generally have a negative effect on air pollution as well as some for conservation. So, the core questions I'm asking today and hopefully answering is how is nitrogen and sulfur air pollution harming sensitive resources? How do we then use this to influence management policy? And then what I'm really excited about with this group is to figure out how we can integrate NEON and other data sources into this analysis, both in the application of what we know, as well as generating new data moving forward. So, while most people think of national parks as these clean and pristine places, the air pollution levels that we're seeing, the threats from outside from air pollution sources are still causing significant damage to the parks. We have a variety of cars and agriculture. We can see the smog and then fossil fuels all kind of negatively impacting the visitor experience. So, this is a piece of EPA propaganda that I love to share that they really highlight the fact that, look, we've had a 300% increase in the GDP since the Clean Air Act was signed in 1970 and along with that a 78% decline in air pollution. So, we are seeing significant declines but my question always like what would happen if we actually tried to reduce some of these numbers, like in reduce our energy consumption or individual vehicle miles travel, we could have even a greater effect on some of this stuff. So, while this is great, the technology has improved and we're removing a lot of pollutants from the air, we had this opportunity to do better. And that decline in those criteria air pollutants is having an effect. We're seeing soils recovering, we're seeing fish return to streams where they were absent after long periods of acid rain. We're seeing tree species respond, forests regenerate, two levels that they hadn't been at since pre-industrial or since like the peak acid rain in the 70s and 80s. So, the first question is how much pollution is there? The National Park Service currently monitors pollution, some kind of air pollution in 67 parks. In addition, we have a set of special studies like when we know a new pollution source is coming in, like a big oil and gas development is happening, we'll do more refined studies in those areas to understand the risk of what's going on. Additionally, we collaborate with the National Atmospheric Deposition Program that currently has five different networks. Looking at a lot of it is either wet or dry deposition. The largest network has 261 sites that are currently active and collecting basically that wet deposition from every precipitation event that happens. A lot of this work that I'm going to be explaining today comes from this coordinated research through the NDP through the science subcommittees that exist there. And with that, the main one I am involved with is the critical loads of atmospheric deposition where we're trying to figure out how ecosystems respond at these deposition sites and at the areas between them. So, we have these 261 sites, but we need to know what's happening in between those as well. So, another science committee, the Total Deposition Science Committee at NDP has been developing these measurement model fusion products that take chemical transport models and modify them using that precipitation. So, they're a little more refined and hopefully a little more accurate so that we can do these analyses outside of the monitoring sites. You can see on the top row of figures on the left we have nitrogen on the right we have sulfur and sulfur deposition was extremely high in 2000-2002. Nitrogen deposition pretty much the entire east coast while on the bottom we have the most recent deposition maps available and you'll see with these regulations put on fossil fuel burning in the southeast, we have that steep decline in sulfur pollution and while you see some of that decline matched on the nitrogen side, you also see a lot of areas where no change has occurred. That's like in the agricultural hot spots of the U.S. because those pollutants aren't currently regulated from an atmospheric perspective. So, we have all this pollution, whoops this one is going into the sky, what happens when it comes down? So, mostly today I'm going to be talking about nitrogen pollution just because I'm limited in time but also have a lot of these same responses happening for sulfur, the sulfur pollution as well. So, one thing is you have a change in biogeochemical cycle. Add a bunch of nitrogen to the soil, to the water. It is eutrophying elements, causes things generally to grow faster, often bad things grow faster, so you have increased growth which leads to changes in mortality and shifts in species composition. Nitrogen especially causes leaf tissue, leaf chemistry to change, which can make the leaves more likely to be eaten by herbivores, pests, etc. So, we're seeing a lot of these, both small short-term changes as long as these long-term community composition shifts that are harder to overcome with time, especially with like annual plant species. And so, in identifying the rate of deposition at which any of these changes are occurring, we're using this concept of the critical load. So, this is the threshold of deposition below which this ecological harm does not occur. And generally we have four different responses that we see from deposition. The first is we have a decrease in risk. So, as nitrogen or sulfur pollution increases along the x-axis there, the ecosystem component that we're looking at decreases. One of the most sensitive species that I'll talk about later is lichen species communities because they pull all of their nutrients directly from the air. They're very sensitive to these changes, so any change in pollutants generally causes a quick decline in species richness. The second is an increasing. And I have this two different critical loads marked here with the circles, one at the bottom. So, this is like generally if you have like an invasive species in an area, that stark increase is you want to prevent before that exponential growth occurs. So, kind of setting it before large increases. While if these are more gradual increases of native species that aren't really showing ecological harm, we'll often either not set a critical load or set it at this higher level where we haven't like really reached that level at which things start to decline yet. The last is a threshold response. And so, this we have this initial increase in growth or survival with increasing deposition and then you start to decline. And we go back and forth with this one between setting it at the highest level which kind of marks that maximum growth conditions for a species and setting it at that level that's more equal to that initial growth space. And I think as we're advancing a lot of our sort of load applications to correlate with climate change, carbon storage and all those things, we're really we're really more interested in this kind of endpoint of like at what point are we reducing carbon storage past what it is and also looking at the benefits of carbon storage as potential offsets. And the last is when there's no relationship to nitrogen or sulfur and then we have to move over the graphs to make this a little clearer. But when we combine the expected level of response to those deposition maps, we can calculate a critical load exceedance. And so this is when deposition is greater than the critical load. The critical load is said to be an exceedance. So this increases the risk that harm will occur to that ecosystem component. And for most of these, we have a dose-response relationship so that the higher the exceedance, the more intense the response. And just to note is like we'll become apparent in some of the future slides. As with the previous slide, these critical loads occur at different levels of sensitivity based on the ecosystem, based on the species itself, etc. So first, so now with that, we're going to identify these different sensitive ecosystems. So the eight different categories that we have currently been classifying critical loads are alpine ecosystems, aquatic lakes. We generally use more mountain lakes that don't have upstream sources of pollutants. So it's pretty apparent that any changes are being caused by atmospheric deposition. We have herbaceous communities as a whole, then looking at herbaceous species individually. We have lichen community, specifically here, we're going to be looking at nitrogen sensitive lichens. We have tree individual tree species growth, individual tree species survival over time, and then micro-risal fungi changes in micro-risal fungi communities. So the point of this talk is going to be more of the outputs that we're generating rather than how the critical loads were set. So really, this is kind of all the data that goes into these different models. I just kind of want to highlight that most of these relationships are showing a decreasing response at some point in the relationship to nitrogen, while some of them are showing this increasing response. So for each of these, we are identifying the community at which they're happening. So within these closed vegetation, these are forested communities, lichen are generally occurring in forested communities. These are alpine lake responses. These are individual herbaceous species responses and individual tree responses. And we take those responses and we overlay those with either land cover data of where a forested or grassland, shrubland area occurs, or when we have data points within parks or within federal land areas, we can put species points directly onto the deposition map to show where the harm is occurring. And generally for the purpose of this talk, when you're looking at these maps, red equals bat. So that's where harm is occurring. Blue equals good. So that's where the deposition isn't high enough to cause harm. And then the yellow areas are kind of that, the edge of that transition. And so those those areas are really important to this so that we, because you can have potentially the most impact there, preventing ecosystem from starting to climb or reducing pollution so that we can allow for these ecosystems to recover. So now we're taking that national data and moving it more towards the local space. So the dots here are of class one areas within the US. Class one areas have special protections under the Clean Air Act that kind of give these federal agencies teeth and pushing back against the EPA and against these polluters in that these areas need to be protected from harm from any new pollution source that comes into effect. I'm going to zoom in on Iraqi Mountain National Park and kind of show these how kind of how these two different datasets look up close. On the left here we have the critical load nitrogen for a decline in insensitive lichen species richness. And this is basically a single value over the forest. And you can see that most of the area is in exceedance while there's a small area that is right around that critical load. Then on the right here, these are individual plot locations for herbaceous species surveys from which we then put the individual critical loads into these sites. And most of them you see are blue so they have not expected to shift the community dynamics while there's a couple hot spots with sensitive species that would allow directed management in these areas or maybe potential revisits to the sites of those species that are there are of importance. We then pull all the data together and we provide each park with a quick summary of the potential risk of to their site. And so here is like a this is kind of what we were working with initially which looked at the different critical loads relative to the total nitrogen deposition. And if it's red here the lower threshold just it means that every area in the park is going to be in exceedance. If it's blue that means it's above the highest threshold of deposition that's when you don't have to worry about. And yellow is like likely some areas of the park are in exceedance. We then pull all that together and we have this summary of critical load data. So if you have a regional biologist or someone from a monitoring network they can kind of pull out the parks they're interested in get a general overview of what's going on very quickly. One of the new tools let's see if I can do that. I just put some links in the chat where you can look at kind of some of the stuff that we're talking about if you're getting bored here I just want to put a putter about. We have our conditions and trends page which overall from the air resource division shows the current condition of different air pollutants in each national park and the trend of how that pollute the concentration or the amount of deposition of that pollutant is changing over time. So the this ecosystem response is a new component to the conditions and trends where we're using that model data to look at the maximum median and minimum deposition over time. In Iraqi you can see it's kind of the recent models are showing the maximum is kind of increasing while the minimum deposition seems to be slowly decreasing over time. So a lot of that has to do with the elevation range at the park where you're with at higher elevations you're getting more precipitation and thus more deposition. Then we advance those those previous figures into these that fair and poor benchmark. So where before you're saying some of the park might be in exceedance of that this this kind of gives you that that better reference of how much of each area is in decline. So of all of the alpine area like all of it seems to be above the lower benchmark while most of it is below the higher. While mycorrhizal communities you'll see only a small area is above the that lower benchmark even smaller above the higher. So you can kind of get a better sense of the broader range. I didn't put them in here but I put two other links in the chat as well that one is for mapping of the critical load so you can actually see the spatial distribution of the exceedances so you can really understand of the area that you're interested in has an exceedance you can even zoom into neon sites or anywhere else in the U.S. because all of the data sets are eventually going to be included in there. The third link is to these critical load summary reports. So if you're interested in exactly the amount of area the number of the the list of species that are occurring within these herb occurrences or tree growths and the number of them that we have all of that like very refined data is in there. So those are from more of the expert person rather than the higher level manager who's just kind of interested if anything is happening. Okay then we are taking all of that together and kind of evaluating the the parks or the in this case the class one areas in totality. So the first on the left is like where we have the most data and we had those eight different critical load categories so the highest number here is eight and then there's a handful where we have either zero one. Given that one of those eight is alpine areas as well as having aquatic resources you'll see the highest numbers around the Rocky Mountains and the Cascades and Sierras the West just because of those some of these components just don't don't have the opportunity to exist. We then look at the total condition of each of those resources so we can kind of get a sense of like where what parks are being most impacted by air pollution what and then where can we dive in to figure out what's going on what additional information we need to assess the like what like what is happening on the ground what like is it are there management actions or policy implications or policy actions that we can take to reduce harm to parks. Summarizing some of this data looking at the different class one areas we have some data on critical loads currently for almost all class one areas there's a handful of Fish and Wildlife Service sites and a couple of National Park Service sites where we don't a lot of these are more of the coastal areas that just are outside of the range of most of these larger data sets. We then have the count of critical loads and the the count of exceedances and again you'll see the Fish and Wildlife Service has the lowest number mostly that's because their air program hasn't had a biologist in place for a while who's been interested or has had the ability to pool data from those refuges they don't have a central database of plots available but otherwise we have four to five critical loads for National Park Service and Forest Service sites and currently the Park Service sites are slightly cleaner like having less harm than Forest Service. Same thing for critical loads of sulfur and we're seeing fewer critical load exceedances overall and that's mostly because that's steep decline in sulfur deposition that I highlighted earlier. So how are we using this data specifically? A lot of it as I mentioned we provide that science scientific expertise to MPS units and then we inform policy and we then help reduce the risk from new sources. We do that in part through that the MPS is going through a resource stewardship strategy development process where in the past like air pollution is something we would come in when a new source is outside of the boundary or just like in case of an emergency or someone came to us but with this we're able to kind of build risk from air pollution into their 10-year plan of managing the park. One thing that's been great by having these tools available is linking to connecting with park managers and biologists to have a place for them to put their data. A lot of times in the past when we say hey we're working on this big project can you do you have any data on x, y, or z there would be a little hesitation because the park service has been challenged in the past of having the resource to do something with it so it takes a lot of time to pull together and there's not often anything that comes back to power and now that we have this tool in place and it's like hey if you give us the data we can plug it right into this this tool and you'll have an output of which of these species which of this data is being responsive to your then just by prioritizing those areas and species that are at risk we can prioritize active management restoration mitigation and then work with local stakeholders to minimize emissions and potentially new sources of pollution. So I'm going to go through a couple of case studies. The first is a Great Smoky Mountains National Park. This was a collaboration with Sarah Goose University where they modeled the deposition level at which these stream the red streams here are those that are in exceedance of the of the critical low that have a pH low just low enough that fish and other invertebrates aren't able to survive in the waters and so we're looking to determine the level of deposition that would support healthy fish populations and the recovery of other aquatic invertebrates. So we're starting with looking at the long-term deposition of the site going from 2000 to 2015 and so when this was started we're at about 7.8 kilograms per hectare per year and based on current regulations in place we are expected by 2030 to get down to 6.2 which is still significantly above this natural background that we expect to be around one where these ecosystems evolved. So from that we set up these target looks like how can we get down to about 3.1 kilograms per hectare which is a 60 reduction from those initial levels and if we did that like this is based on that modeling you would see about 57 of those streams recovered by 2018. So this was a big undertaking bringing in the states in the areas and trying to get everyone on the same page so that those sources outside of the park were involved in the process and knew the value not only to people but also the culture and ecosystems around Rocky Mountain. I'm sorry Great Smoky Mount Sash Park and the exciting thing here is that within the five six years after we've actually significantly dropped below this target line and we're doing better than expected. So I think this is I can't say it's 100% aligned with just our actions but it's nice that when you're setting this glide slope of a long-term recovery to get below it early see it's not as much of a stress to respond later. The next is at Rocky Mountain National Park kind of a similar issue where but here we have emissions coming in from the Greeley or Collins area that you have a lot of cattle a lot of agriculture there that handful of times a year you have these east east to west storms come in blow all of that pollution from the valley up into Rocky Mountain National Park and causes additional deposition. So here we look at all the critical loads so here we have the x-axis is nitrogen again the y-axis is kind of that level all of the different ecosystems that you can see and you can see that with our current deposition you have a lot of areas that are in exceedance and we are trying to move to this target load where most of these ecosystems are not going to be impacted and a lot of this is based on these like the diatoms in the Alpine Lakes that are most sensitive to pollution and so here we started meeting with farmers we started meeting with the local communities and tried to develop a a set of best practices in an early warning system so if the forecast called for one of these storms it was coming through what actions could farmer state to reduce their emissions from their sites that would then blow to the river. So this started in about 2006 and between 2006 and 2012 we were looking right on the glide slope or making good progress and then had a couple of big rain years had some just things outside of our control that seems that led to kind of an increase in deposition miss that slope started coming down again and then we're going back up and so this one's a little less obviously successful but the relationships that we've built and the connections we've made both within the community and within the park and has been really valuable and like spreading the word of the connectedness of our actions and not just be this is happening here the parks are protecting over there but we're all in the same like world we're in the same ecosystem and it's made it a lot easier for us to communicate kind of around the topics and help advance the science even more both in the transport and deposition of pollutants. The next is a more that direct to EPA method so every there's I think it's every five years they're supposed to reevaluate the science to make sure that the current national ambient air quality standards are still protective of human health and the environment and this is like where this is based off the Clean Air Act and setting these numerical increments of pollution both for new sources modified sources as well as looking like and using the data to determine that causal relationship between pollution and welfare so a lot of this work goes into filling these boxes in the integrated science assessment the policy is based off of when I first started here back in 2015 there was a lot more hashed lighter colors that they're showing that these relationships were more suggestive or likely causal but based on the research and based on the guidance from the EPA of like hey this isn't strong enough yet we've been able to show that there are these causal relationships between nitrogen sulfur deposition especially and ecosystem responses. So recent rulemaking the recent updates to the NACs were actually were released last week and there's some disappointment that even though all these boxes are green you'll see on the bottom for nitrogen like nitrogen concentrations there was no secondary standard set to highlight the fact that these things were occurring but I don't know why I'm going from the bottom up but sulfur for the first time set a secondary standard that is different from the primary standard for a criteria pollution so it's exciting that they're taking a step forward unfortunately the standard they set it at is currently below any level of that position that we see in any class one area or any park so we're getting there but not quite and then lastly the primary standard for PM 2.5 is being decreased from 12 to 9 and this is going to be hugely beneficial for human health but also a huge component of PM 2.5 are these ecommonia agricultural emissions that will result in a will likely result the client in nitrogen so it is a secondary effect to PM but should have should improve general so we're excited and supportive of those things happening and then lastly it's like so when there is a new pollution source coming out we work with the park to pull together data and kind of identify what is at risk and how things are at risk so quickly there was in Alaska a natural gas pipeline that was being posed outside of Denali National Park and the pipeline was going to be along the eastern side of the park our NNEP site here is in one of the cleaner areas there was kind of a way from where this pipeline was going to have an impact so we use these deposition models kind of highlight what the the current level of deposition is and then with the park biologists identified the lichen species that are occurring there those that are potentially likely to be impacted by deposition and so in conversation in the permitting process we kind of highlight it's like hey we have an endangered lichen it exists in this community these are the critical loads and we are able to use that data to convince them or assist in their decision making to put additional controls on the facility so that less pollution would go to the park and there would be less of an impact on these lichen species potentially so this is like well I was really excited and when I first signed up to give this talk I was hoping to collaborate in advance and pull together a little more data from the neon sites but alas life and other projects got in the way so I did a quick analysis of all this data from the different sites within the contiguous US and hope that we can use this as like a guiding structure for future collaborations getting more information on the onsites so first just pulled the deposition data on sites there are many of them that are kind of above this 7 to 10 threshold that we often think of is when large shifts in ecosystems start to occur and then pulled critical load data from overlapping from the neon polygons as well as for some of them where we had species data having a buffer around the spot just to pull in some of our our nearby data that were species are likely to occur at the neon site as well and I think most importantly the herbaceous species presence in trees like I assume that all of your sites have vegetation in plants this is our data set is is is pretty sparse in the western US so it's pretty clear that those are likely going to be missing and then trees I'm sure existed a higher number than we have here but yeah so like just pulling out we had really good data on on these more consistent data sets across us and in general we were seeing higher conditions for these higher critical loads of herbaceous species and lower for the more sensitive ligands and mycorrhizal species and trees were we're looking at trees and herbs from what we had were pretty good so the looking at the looks putting those conditions map the most uh healthiest sites relative to air pollution were these southwestern sites for the most part and in some of the plains when you get higher in the mountains you're getting more deposition more known ecosystems that are sensitive so you see some declines the midwest here is where we're seeing that higher deposition load and then along the ablations in the east also more in the mountains so seeing like having this list of the these are the sites with poor condition that had the most critical loads that I had so with that I'm hoping to develop some collaborations with NEON as well as other partners to expand the data that we're using these analyses maybe develop some first for application of like hey where do these species occur then use that data to develop new models especially for species that didn't have a lot of points for and hopefully new critical loads that can help us be more protect park resources etc in the future so yeah I want to include data from the NEON surveys I can give a more accurate representation of what's going on then compare compare that long-term data looking at how species and communities are responding at these sites of varying deposition to see if it matches like all this data is going to be outside of our current data set so we can like really test and confirm what we've been saying and then hopefully integrate that into into these models in the future so that I will take any questions if you want to email me directly emails here this is a picture of me searching for air pollution at the bottom of the Grand Canyon by collecting like in a couple of years ago so it's the nice thing about air touching everything is you get to go to cool places to look for it so thank you very much and look forward to the questions fascinating that was so cool to see where the NEON sites fall even though it was very preliminary everything you say yeah great thank you so much Mike I can start with the chat here it looks like there are already a handful of questions let me expand on that a little bit so I can see it better um the first question that came in was what are all of the pollutants that are being monitored by the NPS oh goodness um we we do it like there's a lot of there's nitrogen there's sulfur and white deposition as well as base cations etc we do visibility through particulate matter look at various stages we have expanded our purple air monitoring it's like a cheap and easy particulate monitoring in parks ozone is another big one looking both at the human health effects of peak ozone levels as well as the the continuous mid to high level ozone for vegetation impacts mercury has been increasingly important over the years both in looking at mercury within bio indicators both in insects up into fish and then we have been expanding and interested in micro plastics and PFAS and pesticides and other toxics that are coming in as well um so we have a very broad measurement program monitoring program uh some more expensive than others great thanks Mike felt like that one was a little bit of a pop quiz that earlier you thought it was out my boss they want to see what if I knew what was going on all right the next one here uh how do you decide the critical load thresholds for different pollutants does it vary with tree species versus herbs and does it vary across ecosystems and or parks if I go back to this the other way um okay um so basically we develop these models that integrate local conditions temperature precipitation soil ph etc and looking look at responses with nitrogen and sulfur across them so in this case there's nine like this is 71 of I think they're up to 145 different tree species that show different types and levels of responses this is I think 350 herbaceous species in each one of these the different type of response so you have different levels of sensitivity where they start declining different rates of decline and um so yeah each of them kind of responds individually some of them will have like a temperature and like temperature by nitrogen precipitation by nitrogen response so we're able to quantify that critical load when um ground conditions or environmental conditions are changing too so it's like it's an ever-expanding data set that as we do more of these analyses gets more complex and how and where we're applying all the data okay thank you um let's see are these data publicly available as shape or CSV files and if yes where can they be accessed yes um let's see I'll put it in the chat in a little bit when I can when I get my screen back um but yeah the through the entity and the critical loads of atmospheric deposition program we've developed a national critical load database and so this is a mix of shape and CSV files that um have all like we we try to get as much of the published data um into it as fast as possible we um have been suffering through staffing issues and or behind a couple of years so not all of this is in there yet but we're hoping to have everything I presented here and there shortly additionally the the mapping website that I put in the chat should have access to downloadable files for at least leggings, trees, and aquatic data that we'll be getting the rest of it in there soon. Awesome thanks I think definitely relate to uh too much data not enough time yeah and then let's see one more here it says uh sorry I may have missed this at the beginning but do the critical loads only include wet deposition or are you also measuring dry deposition with these numbers if it's only wet does that mean what does that mean for dryer sites? One of the challenges of critical load science is that we've pulled this they've been developed over the last 10-15 years or so the quality of our deposition information is better today than it was 15 years ago so some of the original ones were just based on wet deposition those were going to be more of your okay kind of those aquatic sites where we were seeing very obvious responses at the beginning more recently we've based them off of these total deposition measurements so it is incorporating usually modeled dry deposition which is has some uncertainty inherent in certain bees itself I'm combining that with measured and modeled wet deposition so we are getting a better sense of the total amount that's coming down it's like one of the big questions I have and I'm I'm really interested in pursuing especially with climate change in the next couple years is uh how the timing of deposition and time like aligning with timing of precipitation is impacting the response of the ecosystem so I did a lot of my work in joshua tree in southern california if you have no rain from june to november when the highest deposition is occurring you kind of just get this layer of nitrogen on the surface and then once the first rain comes like is all that nitrogen actually being bioavailable is it being processed in minted as gases is it washing off into the the rivers etc so we're really trying to refine some of these analyses to get that temporal component involved as well right thank you um it looks like that was all that was in the q&a but there is one in the chat from sam simpkin um great talk mic what do you think the prospects are for a knock secondary standard in the next five years or so and then I'd also personally like to tack on if you could um add a little bit more definition to the difference between a primary and secondary standard okay yeah the primary standards are said to protect human health and so those are required by law like based on the most recent science what level of pollution causes people to get second dying basically so we're getting like each of those most years they get a little bit stronger as the science gets a little bit clearer that what we're currently doing is still causing a lot of hurt secondary standards are meant to protect human welfare and they they can be said at the same level of primary and welfare is a very expansive definition going from how people enjoy uh the outdoors and how that contributes to our our life to um just other secondary impacts of pollution um etc so one of the big challenges in setting a secondary standard that relates to ecosystem health is that EPA is currently unwilling to consider a deposition based standard their interpretation of the clean air act is that it needs to be aligned with concentrations in the atmosphere and because of these this variation in wet dry deposition variation deposition rates from one ecosystem to another you it's a lot more challenging to relate a single concentration to these impacts and so we've been trying to advance that like there's people within the air resources division who are looking at that question how can we better relate concentrations to deposition with a single value across all of these data product see that one of the problems with this last assessment is a lot of this data you'll see is from 2017 to 2019 and the cutoff for references included in this last analysis I think was 2017 because partly this is pandemic delays partly it's just the way things are but it yeah I feel like we're getting closer I mean I feel like they a moved the goalposts every time where 10 years ago they were just like oh do x y and z we did x y and z and they're like nah maybe you need to do a b and c is we did a b and c and like oh well now we have this whole deposition concentration issue so um I think it's going to happen but one of the big challenges and one of the things I'm interested to see with the sulfur secondary standard is there because a secondary standard hadn't previously been set we don't like it isn't clear how they would enforce it um so I'm hoping that this allows for some of those early questions to be asked like if this is an exceedance how how would this be implemented what um what's like the the consequence of exceeding it and then I don't know I'm always helpful I wouldn't do this work but I didn't feel like we weren't we didn't have a chance to make a difference but as um with the case studies that I showed I think one of the biggest one of the most important things for us to do really is develop these relationships with the local communities and sources the more people care and understand and see that relationship between both of our consumptive actions and our daily um movements mobile actions the more likely that we're going to be able to develop the ground swell the to make shifts and improve the quality of the air so great thank you um well that was all the questions we have and we're near the end of our hour so I'm going to let uh Sam take it from here for some closing notes great yeah thank you for a wonderful seminar that was extremely interesting especially thinking about giving us food for thought how the neon data might contribute to these efforts so we look forward to learning more about that in the future like please keep us keep us in dialogue um our next science seminar is going to be Tuesday March 12th where we're going to hear about leveraging neon airborne sensing data to better understand how ecosystems are responding to disturbances so please join us for that um and in the meantime take care thanks again for a great seminar bye thank y'all for having me dutch y'all soon


Hey Alina. Hey Carter, how are you? Good, how are you? Good. Hopefully they're going to show up today. I'll see. Let's see. I know 8 a.m. is the time that works like for everybody in EU, China and U.S. But I fear that sometimes it can be too early for people in the United States. Yeah. I think especially people in engineering and like they, some of them actually start working a little bit later, like maybe nine or 10. Is that too young? There is. Hi there, how are we doing? Hi Adrian. Can you hear me okay? Yeah, we can. I can hear you and. Another couple of minutes and see if somebody else shows up and we can get started. See if I can find the minutes. Yeah, I just posted them on the. Zoom chat. Okay. So I think we can start. People are. Maybe going to show up a little bit later, but. Yeah, so, so thank you for taking the time to. Present a trout excited to be here. So the presentation will be recorded. So it's, you know, other people can actually watch it later. And yeah, and then happy to learn more about like how you implemented a container registry in Rust. Yeah, cool. That's good to hear. Do you want me to start now or do you have any business? Okay, cool. I did prefer a few slides. I'll share those. I am quite keen to have, you know, a discussion as well though. So like, if you're ready to stop me or whatever and ask any questions, I'm really keen to get like feedback on the ideas and so on. Yeah. I'm okay. How do I, I'm not. There we go. Big share screen, but probably help. And then I'm a bit worried you'll lose it when I click present. Can you see the slide? Yep. Cool. Yeah. So I work for container solutions and we have a product called trial, which is an open source registry implementation. And yeah, as I was saying, I do want to kind of a discussion about things. I thought it might be interesting to sort of first talk about what's going on with like registries and so on in general. And also I kept this talk fairly technical given it was that the Sig runtime, which I assume was the right decision so you can, we can talk about standards and stuff. Yeah. There's a few things that are going on in the registry world, which I think are quite interesting. And it's, you know, a space that's kind of need some updating because not a lot has really been happening until the last year or so. Yeah, really, you know, it's not changed much since the initial versions of Docker distribution, or at least since it moved to V2, which is a good few years now. So what's happened recently? Well, Docker distribution, as I'm sure you know, was donated to the CNCF. So I'll be interesting to see where that goes next because it was, you know, it wasn't something dogs squirming about. And it was in a state where people were asking for updates. And to be frank, Docker weren't doing much with it. Like there was being very little progress on it. So it'll be interesting to see what happens now. That's part of the CNCF. And a lot of registries. And I'm particularly thinking of things like the Google was artifact registry and Azure have one. And so they've all started moving towards supporting multiple artifacts. So registries are no longer just for container images. There are also for things like Helm charts, OPA config files, Xenab bundles, things like that. I guess cloud native stuff. It's probably an argument that we've really recreated FTP servers, but that's maybe a bit cynical and added a rest front end on the top. There is, as I'm sure you're also aware, a standardization process of the OCI. So you've got the, I don't know what it's called now, but effectively distribution spec. I'm talking to remember the official title, but there is a spec and it's also conform suite. So you can like verify whether or not a particular implementation conforms to the standard. I'm starting to talk about doing extensions. And in particular, when the most important things that's being talked about is notary v2. So you're probably aware of notary v1, which was how we did signing or like how we did signing, but was an implementation or signing for container images. So people could sign image and then people who had that image could verify that it came from who it claimed to come from effectively. And also it was quite impressive implementation because it had all the update framework stuff in it. So it could also verify that it was up to date and things like that. Now there were a lot of problems, or there are problems to the first version of notary. It's not seen as much uptake as we like. And there's issues like we can't, you know, signatures don't travel with images. So one thing we'd really like to see is if an image is moved from one registry or another, you can still somehow move the sign with it and still, you know, tell where it came from. And that's the sort of stuff that's been worked on in notary v2. And I know both Docker and Justin Cormack and Microsoft and Steve Lasker and people are working heavily on this. The interesting thing is they've kind of, notary v2 is very different from notary v1. It's not, you know, they've kind of moved away from the first version of notary, which I thought was an interesting decision, but you know, it maybe makes sense given the problems they were trying to solve. And the reason I'm bringing this up in this context is because it's going to be very important for registries, and I think the kind of sign that is going to affect how things are going forward. And that leads me on to the other point that I think is going to become very important over the next few years. And that's supply chain security. And some people have started looking at this. You've probably seen projects like Intoto and Grafias. And I think the Google Cloud platform has even integrated some of those solutions. I've not really played with what exactly they've done yet, but I think this is going to be quite a big thing. And, you know, you'll see more sort of solutions and people talking about this, particularly in the light of things like the, what was it, Cloud? I forget the company recently that had an enormous breach that affected Microsoft and everybody. SolarWinds, yes. I'm sure why I'm saying Clouds. You're right, SolarWinds. And you know, a lot of that was all about supply chain security and being knowing where stuff came from and being able to prove where it came from, basically. Okay. So the other question you can ask yourself is why, what's the point in balding and the registry given we have Docker distribution and so on. Well, the first thing I'd argue that it's not actually that many open source registries. The two big ones are Docker distribution and key or quay or however you're going to pronounce it. That, you know, was CoroS and it's now Red Hat and I believe they open sourced it. I don't know how many people are running the open source version of, I struggled to say quay, but I guess that's the official pronunciation because as you probably were in the UK and Europe, it's not my finance key. And that one's written in Python. Docker distribution is obviously very popular, particularly because it's used in Harvard. So if you use in Harvard, you're really using Docker distribution plus a few other things. Yeah, we had a comment. So we had quay also present a few months ago and Harvard is also another CNCF project. Yeah, I'm not, yeah, I think they're, I'm not knocking any of them. They're all fantastic. I'm particularly interested in, I wanted to like dig into key a bit more or quay and figure out how I did some of this stuff because they did some interesting stuff with like disputed downloads and things. Yeah, and Harvard has added on a whole bunch of stuff that's very important, like vulnerabilities, and a nice GUI and things like that, and the things that are sort of essential for enterprise. But the thing is with trial is I've kind of focused on slightly different things. And the way I started describing it, I'm still kind of working on how I describe it and how I think about it. So I'm very interested in the feedback. But I sort of started talking about the working set. So most registries at the minute, they're designed to store all your images for all time if you like. So you push all your test images. You know, you have old versions of the images dating back to V0.1 of the software and they all live in your clusters. You can go back and get them and check whatever's going on. But with trial, I'm thinking about things a bit differently. And what I want to focus on was like the working set of images. So I'm being able to sort of securely and efficiently deliver those to the nodes within a cluster. And so by working set, what I mean is just a bare set of images that are required to run your applications or your system. So it's not the full history. It's not like all the things going back in time. It's just what do you need to get your application up and running? Maybe like a version back for rollback or whatever. But it's a much more constrained problem. And leading on from that, the design that I know you can use is just a registry. So you can do what you like with trial. You could store everything and there's absolutely no reason you can't. But the way I sort of designed it is it's normally we'll run inside a cluster. So typically a Kubernetes cluster. So if you have a system of multiple clusters, you'd have multiple instances of trial. And those instances of trial could then talk to, you know, another registry, which may be storing all your images, for example. So it's not that. So in a lot of cases, try might not replace harbor or whatever it may be. It could work alongside it, for example. I have, there is no choice of storage back ends and try the minute it just saves to file. That was deliberate decision. I might revisit it at some point, but I definitely want to keep the simplicity of that. You know, there's a lot of problems in Docker distribution because they support S3 and things like that. And the sort of guarantees that S3 gives you a very different. I'm creating a lot of complications. And that's, you know, one of the reasons that deleting stuff is so hard in Docker distribution. Yeah, I also really want to think about security and auditing. So one thing I really want to talk about is a little bit later, hopefully, is when I'm thinking about auditing, you know, the registry, if it runs inside the cluster and then the registry should really give you a good overview of what's happening in the cluster. I should be able to look at it and see, okay, what are the images that are currently used in the cluster and how they've changed over time and who made what changes and so on. So I think there's a lot of benefits to an approach like this for auditing and security. And finally, lightweight. So, you know, it needs to run in the cluster or intend it to run in the cluster. And so I don't want to consume a lot of resources. And I'm not, you know, I'm thinking like CPU as much as anything else here. And that's one of the reasons that I chose Rust as you pointed out earlier. So what's some of the current features? So at the minute is OCI standard compliant. It does have the catalog API, which is the thing that lets you say, you know, list all the repositories and images within the cluster. I also added what I call the tag history API.  I can say, you know, if you ask for that tag, it will give you all the chance of all the images that I've ever pointed to that tag, for example, which again can be interesting for history. One of the things I've been thinking about is like how you can integrate better with clusters. So one of the first things it did was add some image controls. So the idea is... So what I've got at the minute is an emission controller that you can spin up. The emission controller talks to Trout. And so if you create a new deployment, the image controller will check the images in the deployment. And by default, what we'll say is if this image does not exist within the registry, then disallow it. And you can also expand this with Regex. So you can say things like, okay, if the image exists in this local registry, allow it, but also allow official images from the Docker Hub but not user images and things like that. So I tried to make it easier to add controls like that. You can also do some very similar things with OPPA. So that's another way to go for that. Proxen Docker Hub. So that's a thing I implemented at the end of last year. And that's another thing that I see as an essential feature for really to try and take, try forward is sort of being able to proxy and cache images. So this goes back to working alongside other registries, if you like. But the proxy in the Docker Hub was, as you're probably aware, there was the Docker Hub added limits on how often you could download images. So with the proxy in the Docker Hub thing, just allows you to have a local copy and therefore control or reduce the number of times you need to go to Docker Hub. A question. So when you proxy Docker through Docker Hub, do you keep track of the limits or you don't yet? So like somebody wants to keep on pulling images from different versions. Does it have a mechanism to throw back or doesn't yet? No, there's nothing like that. But having said that, you can associate a user. So I mean, and that works both for, excuse me, for pulling private images and for the limits per user. So like if you authenticate the Docker Hub, you get like a higher amount of limits. So you can use a certain user. So the limits like, you know, it's, I can't remember, is it per hour? They're a bit odd. So it's actually, and also they don't enforce them strictly. But there is a way you can ask the Docker Hub, you know, what's left of my current quota and things. So I could actually do something like that. It's not something I really thought about, to be honest. Got it. Yeah. And I think the limits are more for free users. I think if you have the pay version then. I mean, if you're using the proxy, if you were proxying with something like try, I think you'd be hard pushed to, to hit the limit, to be honest. I could be wrong there. Thanks. Yeah. The other thing is, yeah, it's written in Rust. I knew I chose Rust at the start. And it was out of, I nearly went with go, but to be honest, I wasn't not a big fan of go. But I am happy that I chose Rust for like the safety and the speed things. I think it potentially will give us the ability to create a very efficient solution. It's not that efficient at the minute. I have a lot of work to do there. But the potential, I think is pretty good. The issue of choosing Rust was web frameworks and stuff. So I have, the libraries, especially at the start, they're not that strong. It's actually getting there now for a lot of them. But I think it's the right choice for like low level common components. And I think you'll see a lot of sort of cloud native infrastructure and possibly being new stuff being written in Rust. Yeah. Yeah. So to install it, I created like a couple of different methods. There's a quick install method, which I can, I can demo if you're interested. There's also a standard install methods. The first one I did was with Customize, which I really quite like, but everybody wants to use Helm. So I've had to start trying to do support that properly. And there is a Helm install now. But the quick install is quite interesting because normally when you install a registry, you have to faff about setting up a domain name and pointing it at it and so on, which is quite right. But you know, if you have just a development cluster, you probably don't have a domain name or you can't be pointing it at a domain name. So the quick install has some hacks that kind of gets around that. Yeah, we happy to see the quick install demo. Yeah, let's do it. Cool. I won't take too long. And it might give you a chance to ask any other questions. Right. So let me see if I can get this right. So just before I started this, I did, from the Zoom window, I did spin up a Kubernetes cluster. I've not even connected to it yet. Let me see if I can share my... I think it's this one. So let me just grab the gcloud command. Oh, Jesus. It's kind of a bigger cluster than I meant to connect. So, so can you see my terminal? Yep. You can see, you're actually using the Rust 152, which is likely to be the 150th stable release. Yeah. So that actually comes back to, like, I've been using Rocket, which is a Rust web framework. And it's been pretty good. But I'm actually in the middle of trying to move off it to possibly to Actix because it's a lot faster. But one of the problems with Rocket is that I think that maybe in the latest versions of Rocket, it's maybe changed, but it was nightly only.  I would much rather have been on a stable version of Rust. Okay. That's me connected. So this is a completely fresh cluster. I hope it works. There we go.  And you've used to be less there, I think. Okay. Apparently it's got stack driver. I'm sure that's costing me a fortune. Anyway. So this is a, you know, that's all, you know, that's only the stuff that comes by default. I don't have anything going on there at all yet. Which directs right away. So this is a fresh check out. You know, I created a new check out of the repo, new get clone, just so that I didn't affect the branch that I was working on. And inside here, there's a quick install directory, which has this installed SH. And if we've run that, it tells you a little bit about what it's going to do, which is, yeah, create a service account, associate roles or trial, create a Kubernetes service deployment. And the interesting thing is it handles all this TLS certificates and actually uses the Kubernetes CA. And then it will copy that certificate to nodes and also to the local laptop. And that's what lets you get around the, you know, not setting up a domain name and using something like a certificate. I can't remember.  But it tends to be annoyingly complex, especially for just developing. Yeah. If you're not in JKE, you need to run this. And this I've done it before. So I don't need to, one of them is just to open the port on the firewall or Kube CTL. And there's other one. Yeah. Also do with writes. Yeah. So this script is very hacky, but it's kind of cool. You can set the namespace you want to install. And for some silly reason that I installed, to keep public by default, I think that was a mistake. I should probably have created a trial namespace. This step, I should push this a minute ago as well, because this step takes a little while. I've never really figured out why, but for some reason, when you submit a certificate to the Kubernetes CA, it takes a little while before it approves it. Oh, yeah. It's already created a bunch of the deployments, the service, role bindings. Yeah. I think this is, you know, what sometimes we complain about with Kubernetes, you can kind of see it there just for, all I'm really trying to spin up as a single container, but you end up with like a whole bunch of effectively config around about it as well. Okay. There's the certificate. So what we insert, it's the knowledge is really a bit of a hack. It arguably shouldn't be allowed. I think that you can do it. And also this bit, when installing a certain, this host and sitting up Etsy hosts. So it points to the, to the remote cluster. So where do these certificates live? They live in the container and the pod or. Yeah. The way that, like this hacked version only works with Docker. Like if you have a container D based, Kubernetes distribution, then it's actually going to break. I need to figure out a way to, to make things easy and container D as well. And it's a do with the, where the certificates live basically. So what I've done here and all the nodes I've configured to know this trial.cube public address. And I've copied the certificate to Docker directory. So in container D, that changes to be a different, it's not even a directory actually. You've got like, set it in the config and it's, it's a bit of a mess actually. But in Docker, what you can do is you can just put the certificate in a specific Docker directory and Docker sort of picks up at runtime. So I don't have to restart Docker or anything. But that's not the same with container D. So it's a bit of a problem to be honest. I think they're actually changing that, but I'm not 100% sure. But anyway, so it's, it's copied the stuff gets to the Docker directory. I can't remember the exact name of it. One question here. So the, when you modify the Etsy host and the nodes, I guess you have to assume that you need to have a usage access to those nodes, right? So from the installation, I think it's even worse than that. I can't remember how to look exactly what I did. I think I, it creates empty dirt. I can't remember is it's possibly a security poll actually. I mean, I've not done anything to this Kubernetes cluster. This is like a default Kubernetes cluster. And it's actually surprising what you can achieve. Yeah. Okay. That's what it is. That's what the GKE right? Yeah. Yeah. It's a default GKE thing. I wish we'd remember the details basically. Yeah. You can edit Etsy host basically for the node. Could you just mount it? I think. I can't remember the details, but it's a while ago since I wrote it, but it stayed, it's kept working for a couple of years now. But it's a hack. It's not, this is purely for setting up a development cluster. It's not something you should ever do in production. Okay. So the other bit I've got down here is, yeah, we've added to local laptop. So this is the, just adding it to local laptop. So try to keep public. Yeah. Can be, can be rooted. But this bit is a bit more interesting. Try with the validation weapon. So that's the admission control I was talking about earlier. So I'm going to say yes. If I said no, then it'll let any image run. If I say yes, it's only going to allow images from the, the tri-register to run in this cluster. Oh, and I had to like, I actually, I lie a little bit, I had to special case, given that these images, because I didn't do that once and you couldn't update or anything. So that was a, a very bad scene. Okay. Yeah. I think you couldn't even add new nodes. So you have to special case some stuff. Okay. So what we can do next. So say we pull an image. We're going to tag it. I've run this before. So I should be in my history. Right. So I've renamed it to try. You public port 31,000 slash test, which is, you know, where try was running in this new GKE cluster. That's set up to root via my Etsy hosts. And we're calling it tests engine X, Alpine, and we're calling it tests engine X, Alpine, so I should be able to push that now. Oops. Yeah. I've got two things in there. That was a bit silly. I should have just searched for it in my history. Okay. So that looks like it's pushed. Um, that looks right. Yeah. So we can create a deployment to kind of try test. And we're going to use this image. And that should. Come up pretty much immediately. Yeah. So that's up and running already. Um, now, because I put that admission controller on, we should find that if I create a deployment. Two. Oops. And this time, we're going to use this image. And that should come up pretty much immediately. Yeah. So that's up and running already. Um, now, because I put that admission controller on, I'm going to use this image. And this time we can point it to, uh, An image on the. Docker hub. So I can just say. Redis. I might come over and say docker.io. Redis. Um, and hopefully. So I'm expecting this to be refused because it's not in my registry. Oops. Yeah. So that looks like it has been refused. It's a little bit clunky how you can get the error message because I think it's actually on the. Um, replica set. So not, not on the deployment. Yeah.  Well, we can look at that and you'll see what I mean. So if I go to the replica set. Then you get quite a good error message. Um, you know, error creating admission, where to try to deny the request. Remote image. Redis is this allowed as it's not in this registry and not in the loudest. Um, you know, that's, that's the. Air message that tribes sent to Kubernetes. You like when it. Um, denied the request. Um, but if you look on the. Deployment. Yeah. Yeah. Yeah. Yeah. Yeah. It'd be nice if it was there as well, wouldn't it? But you got to dig into the represent control to see the proper error message. So, uh, where's, uh, so how many replicas of trial do you have running on a cluster? So you said that it's redundant, right? Or is it a single instance or no, it's at the minutes of single instance, there is like when, it's again, like, uh, my ambitions kind of get ahead of me sometimes. So when I designed it, I did design it for the idea of being distributed. You could have multiple instances for H and so on. Uh, but I've not really got that far yet, but it's, it's actually quite nice. It's all the same because, um, it's all based off disk at the minute. So, you know, if you, um, pause it or restart it or, you know, just move it, the, the disk somewhere else, then it will all, um, just start up and work. It's quite nice. So it is fairly reliable. And you can just put it in like a, a volume and attach it and things. Um, yeah. So any other questions about trial itself? I've got a couple more slides, but they're not particularly interesting. Is there anything you want to see in a demo, I guess? I can always come back to it as well. I'll leave it open. Yeah. Where's the trial deployed and what, uh, you, uh, is that in cube public and the. Yeah, that was. Can we see the login or. No, I said type in Docker. It's just been a while since I played with a Kubernetes. I'm normally just working in the. And VS cause. I think it was cute public. Oh yeah. Sorry. That's going to be in the video now. Um, yeah. So that's it there. So that was, you were asking about how I copied the search. It's actually a job that goes and copies the search onto each node. Um, in a slightly hacky way. And so that's those ones you can see completed there. And there's our deploy. How do we get logs again? Ctl. Yeah. Yeah. I think I'll need to do. Public. Um, Yeah, that's very apparently this isn't an issue this. I actually opened a bug about this error message. It's apparently nothing to worry about, but it goes everywhere, which is very annoying. Um, but yeah. So. When it starts up, what you see is starting trial, the version. Um, Port. Yeah, it explains because we turned on the. Admission controller. It makes it explicit, like what's alive. So we can push anything that's prefixed with Q and X at GCR.io. Um, Oh, and myself, I think that was another problem I had. Um, You know, you need to be able to pull yourself in some cases. Yeah. It's update and so on. And you can also say things like, um, This is specific images explicitly allowed. So that would be like a full image name, or you can say an image of the prefix is allowed. So you could say, um, this repository on the docker hubs allowed. Any image underneath it. If that makes sense. Yeah. Where's the, The mission hook. I mean, Cause he, I mean, on the previous example, you specified readiness, right? And it was actually denied it here. So, but then. When. What makes it so that every deployment. Can. Go through that admission. Controller. And then basically be prevented from pulling. Yeah. I mean, that's pretty standard Kubernetes stuff. Um, Yeah. Um, We'll describe work here. Validating admission. I hit the wrong button there. I've got a new keyboard. I'm so used to it. Here we go. Nice. There it is. So yeah, you've got this validating web configuration. And that should be pointing. You have to go and look at the YAML web. Here we go. It's got a whole C. Oh, actually just looks at the sale. It just looks for the service, I guess. And the thing and then it causes validate image. Um, It's actually important for three. Um, and if it can't read it, so that's quite interesting. If you can't reach it, then you fail. Yeah. Got it. Got it. Cool. Thanks. No, that's a good question. Yeah. I mean, that's one of the interesting things in Kubernetes, I think because the second people start adding admission controllers, especially mutating ones, then you end up with like very different clusters. So what's something that works in one cluster doesn't necessarily work in another cluster. Yeah. It's something else you'd like to see or really finish off the slides or. I don't have any more questions here, but I don't know. I'm asking all the questions. So. I don't know if anybody. I like the questions. Okay. I'll tell you what, I'll go back to the slides for the minute. Okay. My zoom is gone. One question I had was regarding, um, un-tagged images. If, like, you know, image manifests were to remain to set something up. So I think that's a good question. If, like, you know, image manifests were to remain to set something trial would help, you know, purge or is there some policy, you know, like administrative good set for that. Um, to be honest, that's not something I've implemented. Well, actually it is a little bit. There is. So. It's actually a little bit strange because in a standard, the distribution standard, there is a delete command. So you can call, you know, from like a. Sort of rest command line. You can do an 82 delete and give it. A shot. And that will delete the associated blob. Um, now that's obviously quite a low level way of doing things. Um, it's also a bit dangerous because you can delete blobs that are used by more than one image, for example. Um, and for that reason, several registries don't actually support the method of deletion. And I think it's probably going to be changed a bit in, in the standard. I'm not quite sure what I should go and check exactly what, what the situation with that is at the minute. Um, but it arguably makes more sense to, uh, doing a pretty much the same thing that Docker does. So if I say Docker delete, uh, an image, I give an image tag, uh, and it will only actually delete the underlying resources. If there's no tags that point to the underlying resources, if you see what I mean. So there's two tags pointing to resource and I delete one of them. It doesn't delete that resource until a second tag is deleted. Um, and really I think we should probably do the same thing with Docker distribution, not Docker distribution, the distribution standard, but I think the reason they wanted to allow things to be deleted by Sha was say you upload some sensitive content by accident and you want to be able to immediately delete it. I think that was the thinking. Um, but it's probably not. I think that was possibly overthinking things rather than, uh, an actual good idea. If you see what I mean, but I really would like to add, um, you know, methods for automatically cleaning stuff up and deleting all the images and so on. One thing that we're working on at the minute is actually a GUI. Uh, and I think that would be a nice place to surface things like, you know, old images and stuff that could be cleaned up and how much this space you could save or how much you're using at the minute and things like that. Yeah, absolutely. Um, and then there was something that I saw at an OCI meeting regarding registry benchmarking. I don't know if you had come across a project like that. I wanted to go to that. That was like only a week or two ago, right? Yeah, it was fairly recent. So I just was wondering if, um, I just briefly looked over the results, but I didn't know if they had saw, you know, or had done anything with trial specifically and was just curious to see the performance there. It's well, I'm not sure they have. Um, so at the minute, like I mentioned before, there was, um, we've been using rocket and I'm in the middle of trying to change to a different front end and refactor a few things. So at the minute tries pretty slow, but it's purely because of some arguably bad decisions are too great. So it's quite reliable at the minute, but it's slow. Um, but what I'm working on at the minute would, would be like an order of magnitude speed up, or I think it might actually two orders of magnitude speed up. And in which case, I think try, well, at that point be very competitive. I think it should be possible for try to become one of the faster implementations once I've done a few changes. At the minute, it won't be though. So I'm quite happy it wasn't included. Okay. Yeah, thank you. Sorry, my son's with me here in the background. Nice, but no, thank you. Appreciate the insight. No, no worries. Okay. I'll, I think I'll share my couple of last slides and then we can, there's any more questions or things you want to talk about? That'd be cool. Alina, you saw me for a second. Did you? And I just wanted to say that I had a same situation. He's in the background.  Thank you for the presentation Adrian. It's pretty cool. No worries. Thanks. Okay. Yeah. So what's happening in the future? One thing is vulnerability scans. And actually that's one of the things that harbor has already, but one of the very nice things they did was to basically create a standard. So there's basically standard in harbor for how to connect new vulnerability scanners. So if I, the idea is that I can implement pretty much the same interface in through and then you can plug in whatever vulnerability scanner you'd like assuming it implements the interface. And GUI, that's actually been worked on a minute. But when my colleagues, so I'm very keen to get that working and usable. There is a question about whether or not, you know, we should do a GUI that's usable by any sort of OCI compliant registry at the minute. It's just compatible with trial. But, you know, it's definitely something to think about. I'm a full audit log. Yeah. I talked about that earlier. I'm very keen on this idea that, you know, we can look at trial and see what's happening in trial. And that gives us a very good idea of what's happening in our clusters or should just very good idea of what's happening in clusters. Mutable tags. Yeah. So that's actually really interesting with relation to Kubernetes. You know, when you do like Kubernetes, like the first time you spin up a cluster, you probably thought, right, I want to update this image at some point. And so you just push a new image and then you're sitting thinking, hang on. How do I, how do I do that?  And then happened because the YAML hadn't changed because the image name hadn't changed. And that's because Kubernetes effectively sees tags as immutable. Right. If you give something a name, it expects that name to only point to this one thing, which isn't the same as Docker, where you can have like the latest tag, which changes over time and so on. But it would be nice to be able to at least support immutable tags and registers. And I think Haber already has this, but I'm not quite sure they did it because I don't think Docker distribution does. But yeah, it'd be nice to have some support for mutable tags. So like anything under a given or anything with certain names can't be changed once you push something to them. The other thing, and this was really where when I started dry was the main thing I was thinking of when I still not got there, but ahead of time image distribution and sort of faster dispute images. So, and that goes back to the idea of the working set. So if I push a new image and I know what's going to be needed in my cluster, why don't I send it to the nodes in the cluster before they even do the kubectl deploy and start calling stuff. And you can do nice things there also using stuff like BitTorrent or similar algorithms. Oh, I could have presented. And as you're aware, as you're probably aware, there's already a couple of projects, one of which is CNCF, which is the Dragonfly one. And it's also the cracking one from Uber for that. The both seem quite large scale projects though. So they're both around this idea of like distributing images quicker and using sort of BitTorrent style distribution. They do seem quite large projects intended more at the extremely large scale of clusters. And I would like to try and keep things perhaps a bit simpler, if anything. So they're also useful on the smaller scale. And I could be wrong there. I might be disparaging Dragonfly, for example, and I don't want to do that because it's certainly an interesting project. So I come backwards. But yeah, that's pretty much all I have. So thank you very much for listening to me and seeing more questions. I'm interested here. I'm also very interested here, just your thoughts on trial and what you think of the direction. Adrian, thank you for the presentation. I have a question is about about your users. Who currently, who's currently using your service? Yeah, that's a good question. There's not a huge amount of users. There is a handful. I think it's, I actually think a lot of people have tried it out and played with it in development because it's very quick to spin up. And I think a few people are using it in like CICD. I've not really got to the bottom of why people needed a registry in CICD, but they did. I guess, you know, it's made people push an image and test it in the later part of the pipeline. But no, there's not a large number of users. Yeah, I'm interested in the thoughts on how I can get more users. I think there's a couple of features that really need to be implemented first, especially around proxy. For I can really address the use cases that I've been talking about. If you see what I mean. It's a one more question. So, so yeah, and more about the differentiation with some of the other projects, right? So, I mean, you have written traveling rust, right? So one of the things is that maybe it's faster, but, you know, and, and then you're saying that maybe because it's in Kubernetes, then it's with the mission controller, it has those capabilities and some of the other registries don't necessarily have that. So those are the only things that, that, you know, we're crowds actually trying to differentiate itself. I'm just thinking because of there, there's a lot of different projects. And I think, you know, all of the four projects want to bring some value and make the users want to use that project. Right. So do you have any ideas or what might actually be other differentiation factors for trial or. Yeah. Yeah, I saw. I'm slightly scared to repeat myself, but I was kind of, so when I started, I was very much what happened. I had a previous project called image rule that was just about, you know, proven you could use like bit torn to speed things up. And I used the Docker distribution and basically created a hack that did that. And that was my intention with trial was to do a sort of production version of that. And unfortunately I never quite, I've not still not quite got as far as I would like with that. And now, of course, we have projects like Dragonfly and Kraken. I should really look into those. I think, I guess the main differential I see from like harbours, harbours a lot larger, more heavy weight.  The other thing I want to look at is sort of security and auditing. I think we're missing like stuff there around auditing and the supply chain and security and so on. It's not clear to me if anybody really shares my concerns though. Certainly people start talking about supply chains and notary a lot more. Yeah, so one question about that. So, I mean, a lot of these other container registries use maybe third party scanning tools. So for container images, right? So maybe one way to target different types of users is to have that integrated into the registry. And yeah. And then maybe you talked about notary V2 and maybe that could be something that could be used more directly with a container registry to sign or verify legitimate images, right? Yeah, I think that's actually potentially quite a big area, like if we can offer better notary integration, excuse me, or support than other registries.  Yeah. Yeah, and then I'm just kind of put in my advice role here a little bit. So, you know what? I appreciate that. Yeah, what would be best for a container would be best for the project. I mean, to differentiate itself, right? So to make people, you know, want to use it, right? So do you have any plans to at some point donate this project to the CNCF or some nonprofit or? We'd certainly be up for that. Yeah. I did consider a start in the process, but I think we really need to have a user base before considering that. Yeah, because we have the sandbox stage and that's actually more of a playground, but I'm not really sure if I don't remember exactly. There's like a requirement for number of users. So eventually when it goes into like the next stage of incubation, obviously there needs to be some amount of users. I mean, yeah, but that may be a good place to get traction. I mean, I'm talking about sandbox, right? But I don't know. You have to look at what benefits you could get from that yourself, right? That's a project, right? No, I think it might be a good way to like find new users and stuff. So I think it's a good suggestion. It's something I thought about and perhaps should it be more proactive and done already, I'm not sure. Yeah, but some of the questions will be, you know, about differentiation with other projects.  It's a graduated project, right? And then also the question comes up, you know, how is this, yeah, how is this going to be better in the context of like the CNCF, you know, having all these projects to help end users, right? And then when you have, you know, too many projects that are doing the same thing, it may not actually look beneficial for end users because that may end up being confusing them, right? So like, which one should I use, right? Then if there's more distinct features, then there's more of a story right behind like, okay, you can use trial for this type of thing, right? So it may actually not even be about the technology. It may actually be just about the messaging, right? About, yeah, so like how you position it. Yeah, yeah, just my thinking as well. So at the end of the day of, you know, any registry is going to store images and basic use case in some ways. It's just about, yeah, specializations and use cases, I guess. Cool. All right, so thank you very much. I think I don't have any more questions. Thank you everyone for attending. Do you have any questions for us or anything that. Thank you answer my questions. I was looking for some advice and you gave it. So thank you very much for that. Yeah. So yeah, feel free to retail. I mean, we're all on Slack or anything. So if you needed me, thank you. We're happy to help you. Cool. All right. So enjoy the rest of your day and thank you. Okay. See you at KubeCon maybe. Yeah, yeah. I've been to quite a few looking forward to being in person again. Yeah, me too. So I'm waiting for this pandemic to be over. Okay. Cheers. Bye.