Hi, welcome to our talk. I'm Lou. I'm from the Robin Hood markets. I'm in the container orchestration team as a senior software engineer. Hello, my name is Madhu. I'm also in the same team as Lou. I'm a software engineer on the container orchestration team at Robin Hood markets. Our team is responsible for building offering and operating the compute platform for all of Robin Hood and our compute platform of choice today at the company's Kubernetes. In this talk, we'll walk you through how we adopted CLM in one of our environments, the challenges that we ran into and the lessons we learned from the challenges and how we adapted and then how we now live happily ever after with CLM in that environment. Next slide please. So, before we get into any of the details, I want to clarify or explain what near production means here. Like pretty much every other company, we have multiple environments. There is a production environment as an actual production environment where all our user-facing production traffic is served as all the production services are run. And then we have a bunch of other environments, but there is this one specific environment where we run integration test and personal development namespaces for the products at the company. We call it as near production because this environment is treated at the same level of seriousness and has the same response SLO SLAs as production because it's critical for the entire company's engineering and development. If this environment stops working, the entire development at the company hard, so if there is an incident, we take it as at the same level of seriousness as a production environment. The only reason why we might prioritize it lower is if we are also simultaneously having a production incident at the time, although that has almost never happened since I joined Robinberg. With that context, I also want to explain how this environment is different from the production environment. Because of the nature of the workloads that we run in this environment, which are integration tests, for most part, integration tests are set up, infrastructure is brought up for them as in the pods are kicked out for them, data is set up for the integration test, the tests are run and towards the end, everything is completely toned down, including the namespace that was brought up for that particular integration test run. Because of this nature, it's a very high-chair environment and the challenges that we face in this environment is different from all other environments. Next slide, please. So what exactly is high-chair? Before we even get there, let's look at some of the SLO prerequisites, Kubernetes upstream projects defined. So if you go look at the SLO definition pages in the SLO MD for six scalability on one of the Kubernetes six scalability repositories, you will see these two specific lines there, which is on the left here on the slide. The prerequisite state that for any of the SLOs to be applicable, the Kubernetes cluster should be available and serving, which makes sense. And then the second prerequisite talks about the cluster shell that is considered to be a prerequisite. Before looking at the number, let's look at what the definition of churn is. Kubernetes upstream defines churn as number of path spec creations updates and deletions per second towards the number of requests that users make to the system in a given second. And Kubernetes requires this churn to be lower than 20 for SLOs to be applicable. Now, if you turn right and look at the graph that we are sharing here, you will see the term patterns for one of the clusters that we have here in the environment over a typical 30-day period. You can also clearly see or say which tell which of these days are workdays and which days are not workdays because we told you that this is used for integration testing and personal development. So we expect traffic to be higher on workdays. So you will see five peaks followed by traps for a couple of days and then five peaks which follows the pattern of five workdays and then two weekend days. You clearly see that on workdays, the peaks are typically over 30 many times over 40 and it peaks almost as high as 70 pot creations and deletions per second. And in this graph, we are not even considering the user originated requests. These are just pot spec creations and deletions. So this is the level of churn one cluster in this environment goes through. Next slide, please. So given all these things, what exactly motivated us to adopt CLM, especially overlaid based networking in this environment? So before we even get there, let's look at what we had in this environment before we adopted CLM. So to begin with, we have AWS case CMI as our CMI plugin running in all the environments. That was the case before we adopted CLM in this environment. The CLM, the case CMI plugin allows for a flat networking model that we use in all the other environments or in all that we used to use in this environment, including all other environments, because in many other environments, we need cross cluster networking. So it makes sense. But in this, in this particular environment, the traffic is mostly isolated within the namespaces. So cross cluster networking is not required. Like even within the cluster, the networking across namespaces is mostly not required for most cases. So all networking works fine for this model or for this environment. In addition to that, the case CMI model with flat networking works well for stable production environments, but has limitations on more bursty environments, which where we need higher port density and have very high churn like this particular environment. So to go further, go a little bit further. The number of ports per node for us is limited in the flat networking case CMI model AWS case CMI model because of the limitations that EC2 imposes on the number of secondary EMI's that you can attach to EC2 instances and the IPs that you can attach to the EMI's. Because we can't go over that number, it leads to very low CPU and memory utilization because the parts that we spin up here are for integration tests. So they don't have high utilization and because utilization is so low and we cannot pack more densely, it leads to very poor cost efficiency model. So we were evaluating various solutions and we wanted to adopt a solution that allowed us to get higher port density and we knew that we wanted to adopt overlay networking for that. And then we looked at various solutions and we wanted to make sure that we did not significantly sacrifice the performance by going to the overlay model. Although this is integration test, performance is still important in this environment. So not sacrificing performance was an important goal here. We looked at EVPF and it looked like a very strong candidate and the moment we knew that we wanted to use EVPF, the solution of choice was CELium because this was the most adopted solution that was out available out there. Next slide please. So with that, how did our migration actually look like? We started from CELium 175 and then we quickly adopted or we quickly had to jump to a much more modern version or a much more newer version of CELium. So we went through three version bumps. The way we did this was we initially brought up a new cluster. We decided that doing this kind of upgrade or change in place was not viable. So we brought up a new cluster for personal development and another new cluster for integration test with CELium overlay networking model and then we ran a lot of load tests against these clusters. And once we reached a stage where we felt confident about the norms that we had to tune and everything, we started cutting over workloads onto these new clusters. Interestingly though, personal development in spaces were more or less fine but in integration test environment because of the high churn, we ran into a number of challenges that we were not expecting. It caused a few incidents or quite a few incidents. The term that we use here at Robinford like many other companies can be industry sales. So we ran into a number of sales and we had to go back and forth between our old clusters that use black networking model and the new clusters that used overlay networking model with CELium. Eventually we were able to migrate all the workloads onto the CELium clusters. Next slide please. Overall, if I were to talk about the efficiency that we have achieved because we have adopted CELium with overlay networking, at the end we were able to pack at least two X more pods than we were able to pack in the flat networking model. In the flat networking model, we used to set our number of pods per node, the pod density per node to 110, which is what Kubernetes generally recommends. When we adopted CELium, we went all the way up to 250 but it caused a number of issues. So we slowly dialed it back down to 180. Although the number was previously set to 110, we never actually hit the number 110. Our utilization of density was more around 90 to 100. Now we are comfortably able to reach 180. So we have doubled the pod density of our clusters. With that, I'll hand off to Lou to talk about the more specific challenges that we ran into. Lou, take it away. Thanks, Madhu. So as Madhu mentioned, this migration came up with a few surprises. For example, it revealed several previously hidden bottlenecks because some other factors became new bottlenecks with much higher pod density on each node, such as the excessive API server requests, the CPU memory and the month exhaustion on the node, and imbalanced workload distribution made things even worse. We also encountered a few CELium stability issues. Although version bumps of CELium fixed most of them, it was kind of costly and tricky to root causing and fix. The CELium's throttle and the timeouts in the high-trend environments is also a challenge and we had to build custom scheduled extensions to work around it. So in the following presentation, we will select a few interesting stories to share in more details. So let's take a look at the new bottlenecks first, which is actually the first few surprises we got. With the abundance of IP addresses, we decided to consolidate two integration test clusters into one to achieve better cause efficiency. And in the meanwhile, the Qubelet on each node became much busier with more pods packed onto each node. As a result, the API server got overloaded and couldn't keep up. As a result, we couldn't bring up new pods, new namespaces, and essentially it means the integration test environment got broken, and we had to migrate to the previous clusters. For the mitigation and fix, we set up another CELium-based cluster for the integration test environment. On one side, it relieved the API server by reducing half of the pressure, and on the other side, we got more resiliency and redundancy. We also moved from the deployment spec to pod spec for integration test namespaces because essentially those deployment spec were the single pod deployment, and we didn't really need the auto reconciliation feature of deployment for the integration test. So it further reduced the API server pressure. Last but not least, we routed requests from the Qube controller manager to the network load balancer instead of to the local API server. We removed the stickiness, and thus the request became more evenly distributed across the API servers instead of concentrating on the one which co-locates with the leader controller that prevented the hottest API server get crashed. Another bottleneck is the data plane node resource exhaustion. The nodes of the new CELium cluster somehow became more likely to encounter resource exhaustion, such as running out to CPU or memory resources or has too many months. Pots on such nodes were stuck at creating or terminating. To make sense of the words, those nodes will be churned, and pods on those nodes will have to be rescheduled to the existing nodes as new nodes have to go through the initialization warm-up phase before joining the cluster. And the migration of the pods on those churned nodes into the existing nodes just makes them worse because it put more pressure on some of the already kind of overloaded nodes. Thus, more nodes will be too hot and become turned bad, which is essentially a cascading effect. As a mitigation, we initially tried the Kubernetes system resource reservation, basically reserved the system resource for Kubernetes demos and the system demos. However, it turned out that it wasn't a one-size-fits-all solution. It has some own implementation limitations, and as Mandu mentioned earlier, the way we use the Kubernetes cluster exceeded the prerequisite for SROs, so it also makes sense that the simple resource reservation couldn't solve the entire problem, although it helped a lot. Thus, in addition, we audited the applications, especially for those heavily used applications in the integration test environment. We right-sized the resource request and limits parameters, because in some cases, those requests growth with time, and eventually, the actual usage is way beyond the request, causing the cluster to be much over-committed, and as a result, it is easy to get burned out. In addition, we also made some performance optimizations for those applications on the cluster to reduce the resource over-commitment problem. In addition, we also made the scheduler training and added some scheduler extension plugins to target for more evenly distribution of the workloads across the cluster. If you turn to the left, the ABAP2 graph shows the CPU and memory usage across the nodes on a typical day before we had any of those optimizations, and the bottom two are the newer distributions with both tuning and plugin of the scheduler extension. As you can see, the workload distribution for both CPU and memory are much more evenly compared with before. Thus, we will have less to-hot nodes, and much fewer nodes will encounter the resource exhausting problem. Switch to another topic, which is the CELIM stability issues we encountered. One of the most costly CELIM bugs we encountered was the CELIM identity collection bug. When we were running the version 1.11.6, that bug caused the exhaustion of the CELIM identity, thus we couldn't bring up new paths and blocked all integration tests. What happened was essentially the garbage collection was not functioning as expected, thus none of the CELIM identities could be removed to make space for the new ones, and once it reaches the max count, no new paths could be created. And what's tricky is that the problem only started to manifest almost one month after the initial deployment of this version. On the other side, for the personal development, fortunately, because the chain is much lower and it uses much fewer CELIM identities, so even though the CELIM bug was there, the identity wasn't garbage collected, it was not impacted. In fact, it still had a few months or even years of headroom before the personal development cluster got hit by the CELIM behavior. So what are the lessons from encountering this bug? First of all, if we could understand the key components of CELIM better and deep dived into how it operates when we are adopting CELIM, it will save us a lot of time to identify the problem and fix the bug or just version update to the new CELIM. Also, it will be important to properly set up the monitoring and alerts, which could help us to catch the problem earlier before it actually starts to impact the near production environment. CELIM provides a lot of great metrics out of the box. However, it's kind of overwhelming in the beginning and had to understand which ones are the real important ones, thus we didn't have the alerts for the CELIM identity counts. And coincidentally, with the change, there was a rename of the metrics, which removed the total post fix from the metrics name. And we didn't notice the change lock during that version update to 1.11.6. As a result, when the issue occurred, when we looked at the GC interest dashboard, it was empty that as more difficult to identify the problem. And the graph to the left actually showed how slowly the amount of CELIM identity accumulated over the month period of time and eventually kind of reached the limit and it began to hit us. Another problem we encountered was the egress broken on some nodes. And it only happened on a few non-deterministic nodes when we scale up and could always be mitigated by a CELIM agent restart. So it was a mystery for us. We did a fired an issue to the CELIM community and we got as a suggestion to update to the latest CELIM version. In the meanwhile, as a mitigation, we implemented auto-coordinate for when the problem occurs on the node as a stop gap. And interestingly, with the Kubernetes version update from 1.15 to 1.18. Although, even though before we actually update the CELIM version, the problem no longer shows up. And to be honest, the exact reason is their TBD. One issue that CELIM bothers us is the CELIM throttling and timeouts. It still kind of happens from time to time, although much infrequent now. What we see would be the rate limit error that in the logs we will see a lot of 429s with signature like put endpoint ID to many requests. So we kind of understand it was due to the rate limit. Thus, we initially tuned the adaptive rate limiter. After that, we indeed see much less 429 errors. However, it was discovered that they essentially turned into the CELIM API client timeout exceeded error, which is even worse because that clearly indicates CELIM couldn't handle the burst of requests. So, even though it can serve here slowly, but it still cause test failures, especially it's difficult for CELIM to keep up during the pod creation. And the IP addresses will not be assigned timely, causing the pods not healthy before test timeout. So as the mitigation, we had to introduce a new module, the burst control in the customer schedule extension to avoid scheduling too many pods on the nodes at once. To conclude our talk, here is some of our key takeaways. First, CELIM is a great technology that we love a lot. We achieved a much higher cost efficiency and EBPF opens doors for a lot of great possibilities like the observability, security stuff. However, just solving the networking problem won't be the golden ticket. To operate CELIM at scale is not sufficient to just adopt it. We really need to have a good understanding of CELIM under the hood, specifically how it operates and set up monitoring and alerts appropriate. So that's about our presentation. Thank you for the time to come in to our presentation and appreciate your interest in this topic.


First, who am I? So I've been with KDE for a long time. Yeah, the KPDF, which you probably don't know anymore, because that's how we used to call it, Ocular, 20 years ago. I've been doing translations, releases, working KDE games in KDE. I was the founding president of KDE Spain. I was part of the KDE, or I'd done a little bit of everything. And the most important part of this slide is that I'm not a security expert. So I'm going to talk to you about something which is security-related. But it's just something I've been doing lately. So if you have questions, I might not have answers for your questions. So just be aware of it. So which kind of security issues am I going to be talking about? So it's going to be mainly related to wrong use of memory. So using an initialized memory or using memory that was already freed. This means the application will either crash because you're doing something with memory that's not yours or that wasn't anymore or whatever, or that will behave unexpectedly because your variable is not initialized and then things happen that you don't expect them to happen. People that are more experienced than me in security say that any memory-related crash can be turned into a code execution exploit. I've never seen this happening. I don't have a clue how this happens, but that's one of the mantras there is in the security community. If you're crashing because you're using an initialized memory, that means someone can put code there and make it do things they want and not what you want. So it's very important to fix this kind of bugs because it can basically be code execution and we don't want to be doing code execution. So which tools do we have to dictate that you're doing either wrong memory use or using your memory after it's been freed or whatever? So the first and very basic tool is the operating system. Your application might crash if you're using the memory wrong. It doesn't happen all the time because the operating system and the C library and whatever, it's sometimes a bit too lazy doing things and it will give you more memory than you need and then if you use that memory that is not really yours but the operating system gave it to you because whatever, it will not crash. But yeah, so yeah. Then we have Balgrind, right? So Balgrind will help us find these kind of memory errors. The problem with Balgrind is that it will take 10 days to run your application if it's a bit complicated, right? I've tried that with Ocular and PDF parsing sometimes and I got bored after a day of having it running on my computer, right? For some things that are very long, it's just not feasible to do. And then one of the modern tools which is similar to but Balgrind does but it's just so much faster is the compiler sanitizers, right? So that's something that as far as I understand Google has been working on and there's the other sanitizer, the memory sanitizer and the undefined behavior sanitizer and basically what they do is they add code to your application that checks for all the things that can go wrong but since it's inside your code it's much faster than Balgrind. Balgrind pretends to be a virtual CPU kind of thing so everything is so much slower because things don't, they are intercepted by Balgrind, right? So that's one of the things that makes the memory sanitizer like the compiler sanitizer, sorry, much faster. It's also a bit harder to use because you actually have to link to them and you need to know how to do that, right? Balgrind can't just run your binary. But let's assume you know how to do that. So what is fuzzing?  So that way you make sure that whatever the input is your application will not crash. So one could do fuzzing by hand, right? You could just start with PDF info, for example, which is a binary, if you give it a PDF it will tell you the title and the outer and whatnot and you could just starting echo A, echo B, echo C and D and E and just like try all the possible inputs, right? That this is very basic, nobody does that but it's one of the ways you could do it, right?  So what is osfuz? Osfuz is the main topic of this talk. Osfuz is a fuzzing engine developed by Google. Actually the fuzzing engine is not called osfuz, it's called the Vuzer, but osfuz is like the bigger term that you're using everywhere, so I'm using that too. So basically it's a very, very smart fuzzing tool, right? It's coverage based, which means it knows, it understands your code and will minimize the randomness of fuzzing, right? So if you have a function where there's an integer that has an X and then you check for X being bigger or smaller than 50, it will not try 51, 52, 53, right? Because it knows that 51, 52, and 53 it's just, it will execute the same code, so try all those, right? So it is really, really advanced. I don't know how they actually do that, because when I think how to do it, I don't have no idea how good I do it, but they do and it works. I mean, it's really amazing. So what is osfuz number two? So the problem with, for example, the sanitizers and clang and whatever is that you really need the latest version because they are constantly improving. So sometimes if you want to run this in your distribution it will either not work or it will be hard to set up or stuff like that, right? So they basically have a set of Docker images which are updated to the latest everything, right? So this way you just run, download the Docker images, run a command and it will start fuzzing the project and it's like almost effortless, right? It's like, so at this point there are like 240 projects in the osfuz GitHub repo if we can see them here. So yeah, there's like lots of things, right? Like there's VC, there's ClamApp, the Antivirus thingy, there's Cool, David, which is like the new video stuff. There's FFMP, MPH, there's File, there's Firefox, FreeType, GoScript, like lots of lots of projects are in osfuz. What is osfuz number three? It's also a software as a service thing, right? So they have, Google has lots of servers, right? So they basically give you a thing that will run everything for you, right? So it will get the Docker images that you created, run them for a while, find a bug, tell you you found a bug, right? They are very strict on the bug policy. So when it finds a bug, it will send you an email saying I found a bug, this is the bug trace and the file you can use to reproduce it and whatnot. You have 30 days to fix it. If you don't fix it in 30 days, they will make the issue public, right?  The good thing about this is that all these software needed to run this thing is free software. So if you really wanted to do that in your project because you're crazy, you could do it, you will need lots of processing power, right? I mean, like doing fuzzing basically means running software for a long time. So I mean, if Google is doing it for free, why would you not let them do it, right? And that's what's fuzze number four, right? So basically that's an image they have on their web. So how it works is that you write a fuzzer, we'll see some example fuzzers I've written for KD staff recently. It's not very hard, at least the ones I wrote, I guess you could go into more detail. You write a fuzzer, you commit, it builds in Jenkins, blah, blah, blah, it finds bugs there and it tells you, right? So it's basically that.  You put it on the web, run for a while, tell you and then you have 30 days to fix it, right? So what do we have in KD and OSS Fuzz, right? We are actually running OSS Fuzz for K image formats since January, for K codecs since February and K archives since April. Kind of health related to KD, we are also fuzzing Poplar, which is the PDF library we use since May last year and LibEcal, which is for the calendaring staff since April. What all these have in common is that they will be probably used without you wanting to use them, right? The typical example is K image formats, right? Somebody will send you an email with an image and it will run code because you will preview the image in K mail and if you have a bug there, it will crash K mail just because somebody sends you an image with a malformed, an email with a malformed image, right? So the idea here is that we have to be very, very cautious about things that run without the user even pressing any button, right? So I'm gonna show you now how the K archive, oh, that's something in Spanish there. I give this tag in Spanish first, so there's like one line in Spanish, whatever. Do you see this? It's big enough, right? I guess. Right, so this is what we have in the OSS Fuzz GitHub for K archive. It's very easy. Let me open the few files. Right, so first the Docker file is relatively easy. We have to check out everything we need, right? So we get libzip, sorry, zeta lib, libzip, bzip, exit lib and then we get Qt, ECM and K archive itself, right? That's the things we need to be able to fast K archive itself. Then we build it, right? It's not very hard. You have to build everything, but it's like configure make, configure make, configure make, configure make.  It's not the rocket science and then the fuzzer itself. So how it works, if you have to write a function whose input is basically a byte array, right? So it's a car pointer and a size. So what we do there is basically I create all the possible archive files that character could be, right? So seven zip, tar, tar with gzip, tar with bzip, tar with exit, zip and r and I just run all those codes, right? And these found quite a few things, right? If we go to the K archive log, K archive log, right? So you see my name is here, don't assert, don't assert, don't assert, don't crash, blah, blah, blah, right? So it found a few things, yeah, more here, yeah. I need to analyze memory leak in bad memory, right? So K archive, which I'm sure it's something that people have looked at the code very closely and it was written carefully, still had a few bugs, right? One of the random bugs we found, which is kind of interesting, let me find here, is K archive and very long file, right? So K archive has a recursive function in which it will try to, if you give it a path, it will try to find to which folder it belongs, right? So it will go up, up, up, up, trying to find the folder it belongs. If you get a path, which is longer than for like 5,000 characters and basically being ABA slash A slash A slash, right? So it's like very short name directory names and just one inside the other, this thing will recourse too much, it will end up exhausting your stack, right? So basically the stack will just grow too much and it will crash. So we did a very poor man solution which is just don't recourse too much, which in this case, it should work because I found out that only, like even with a small stack, it will crash after 1,500 recursions, which is like a very long path. I think like Linux actually doesn't let you have a path that long between like the path max is 4,000 characters. So even if you do like one directories of one character, you still need another one for the slash. So that should be fine, hopefully. Otherwise somebody has to rewrite this to not be recursive, right?  Let's not do that. So yeah, so that was K Archive. K image formats is basically the same. If you see the fuzzer, yep, Lou, it's the same thing. You get the data, you create an image, you read it, right? It's nothing very complicated. So, yeah, sorry, yeah. We've found lots of bugs in our image formats, which are like the very random thing this we have. So if you look at our image formats, we have readers for things like Brass and RGB and TGA, and that's the GIMP thingy, but we only support the very old GIMP format. So yeah, it's not very useful, right? But if you look at the log, yep, I did fix lots of bugs here, right? It goes after the first page, and then I think a bit more. Yeah, so basically we were vulnerable to people sending us random images and crushing everything, right? Actually, that started because somebody sent an email to security at K.org saying, I have this image that crashes everything, and then I started running OSSFuz, and it was like, yep, there's a few more images that crush everything. What's even more interesting is that it found issues in the PNG handler, right? So what we're fuzzing there for our, we're only fuzzing our own code, right? So we're only sending, like the inputs we have is a GIMP file or an RGB file or whatever, but since it's coverage based, and it also saw that it could end up in the PNG, it was able to morph the file enough, so it ended up inside the PNG file handler inside Qt itself, right? I found that in lots of cases, this was being used in an unutilized manner, which is bad, right? But that shows how powerful the thing is that you start giving it a GIMP file, and it will morph the GIMP file to be something the PNG handler half of understands and then fails reading it, right? So it is really, really, really very powerful. So future work, we should fast more things, right? We have more things in KDE that are run automatically, right?  That has to be made sure it won't crash, right? Because yeah, that's a good, same thing for K file metadata. More things PIM related, like I'm pretty sure that when you get an email, lots of things happen inside PIM that we should make sure are not crashing. Yeah, the problem is somebody needs to work on that, right? It's not very difficult as I showed you, but only, like it's very easy to do if your input is a byte array, right? If your input is a byte array, that's easy. Like you can plug it in the function and it will be trivial. If your input is something else, well, there's more work that needs to be done, right? Yep, and that's my talk. We have some time for questions, I think. Baloo has a question here. Thank you. So considering that is not that heavy running this fuzzer and you need to run in a way, it's not possible to actually add in this unit tests. So at the point that every function that it has and it passed the fuzzer, so it already having the incompletely built system and can guarantee that all the frameworks by default been tested. Sorry, I didn't get your question. Yeah, so it's not possible to put in this unit tests by default. Well, it is, I mean, it needs to run for hours sometimes to find a bug, right? So like you can't really, I mean, you could add unit tests for every single crash you found. That's something we could do. That's something David wanted me to do for a K archive and I didn't do it because there's like 20 or 30 files that make it crash, right? So it's like, and this thing just still runs every day. So if you regress, it will find it, right? I mean, it will take a while. It will not be part of a unit test. We could put it as unit type. We could put unit tests for all the cases we found. So to make sure we don't regress, we haven't been doing that for now, but I mean, David wanted to do that so I could be convinced otherwise. Any more questions? Okay. Ooh, almost. I was going to say thank you, but I waited half a minute, half a second more. Yeah, thanks for that. Unfortunately, I missed the beginning of your talk. Do I understand correctly that you add this code to some Google repository and they run the stuff, right? So all you have to do is provide the code. You only run the code, you upload it. They will run it every day for a bit and they keep the state, right? So like tomorrow they don't test the same, they just continue. So yeah. And you get notifications whenever they find something. Yeah, you get an email. You get emails or something. Because it's related to that question. How do we ensure no regressions in the long run? So I'm wondering if we can treat it as CI as in two years. If we reintroduce the bug, they will find it through the magic of randomness, right? They have to somehow try the same file again. Right, right, right. So there is, so the public bugs, you can see them. There's a bug tracker somewhere. I don't have a link here, anyway. There's like the, so when it finds a bug, it will give you 30 days to fix it. And if you don't fix it, it will be public. So the public bugs, you can go to a webpage. It's a bug tracker and it's like, everything, this is everything public. Okay. And the ones that you fix, I think, are also public. So one of the things we could do is go here, make sure there is no, like as a part of a release process, go here, make sure there's nothing new. We can also add more people to the emails that I received, like at the moment only, I received the emails. Problem, the only problem, it needs to be a Google email. It's a bit, for that. I like the idea of having to check a webpage before releasing. I do check already, CI and a few other things. I could check the fuzzing thing, that sounds good. You'll send me links and look into it. There was also a question back there. Do you have some sort of stats, some kind of hall of fame or hall of shame? How do KDE libraries compare to other open source projects in terms of number of issues or like code coverage, things like that? You can see the code coverage, but no, actually you can. So you can only see the code coverage for your own project. So I can see the code coverage for K much format, right? But I can't see it for Firefox. So they don't have this kind of gamification thing in which you can do. I don't see it. It must be somewhere else. I don't know where it is. Right, maybe they do have it internally, but I'm not sure if that's public. All right, if it is, I will be interested to know where it is. I don't know where it is. Question here. Hi, so I came late to the talk, so maybe you already talked about it, but the fuzzing, is it just a stream of random bytes that come in? No, so it is, it's a very smart thingy and it's basically coverage based, so it gives it a random number, right? And then it flips one bit, and then it tries to see which variable changed because you flipped that bit, and then if you have something like this, right? And also it knows that the only interesting values for X are 49 and 50, right? Because it's the two values that will run the both branches. So it's not, I mean it's random at the beginning, but then it learns about which bit influences each variable and it will not be random. I mean, it's half random, it's smart, let's put it this way. And can you also kind of define what kind of inputs come in? So for example, if you have a HTML pass so you don't want random bytes coming in, because- Right, but you do want around- Yes, there is a way to give it that dictionary of kind of like, those are the keywords that you should be flipping or working on, right? Like, you can give him some direction. I really haven't done that, but I know you can kind of instruct him what to focus on. Okay, thank you. More questions? Well, okay, thank you, Albert. Yep, thank you.


Hello, everyone. Thank you very much for taking time to listen to this presentation. Let me start with just a couple of words of apology. Firstly, to colleagues in the fish sector, because I don't think I've done a terribly good job of representing that, so please do improve on this by adding your comments. Secondly, to Stuart, I'm not sure I've quite followed your instructions, but hopefully this will work. So firstly, what are the big issues and trends? We know it well, demand for livestock and fish doubling, especially in Africa and Asia, meaning that by 2050 each year we'll need a billion tons of dairy, 140 million tons of fish from aquaculture, and 460 million tons of meat. We know as well, livestock and fish play key roles in the livelihoods for millions of people, about a billion in the case of livestock and a quarter of a billion in the case of fish. And there's also other livelihood dimensions in terms of the environment, of course impacted by the production of animals and fish, but also impacted on by changes in the environment. Livestock and fish products really important for food security at household and national levels and as an integral part of producing food, often in mixed systems. And of course the issue of healthy diets, how much is enough livestock and fish products? A little piece of meat each day or a half a glass of milk or a small tilapia would be enough and many people in the world of course consume far more than that each day and even more people consume far less. And income, selling animal products and fish products provides income that can also of course contribute to food security as well as a whole host of other livelihood dimensions. In meeting demand, this huge demand for animal and fish products, there's a number of different scenarios that we can consider and each of them have a different set of implications for these livelihood dimensions. Of course demand in the developing countries can be met by simply importing products. Big implications for that in the countries where they're produced, but also in terms of livelihood opportunities in the countries where they're being sold and imported to. I've heard even a minister say that when you import these things it's really like you're exporting your own people in terms of their labour. But demand could also be met by importing the production know-how so that the systems in developed countries get imported and set up large scale in developing countries and maybe that will happen after some time. But all the evidence we have certainly is that the small scale producer is going to be part of the picture for quite a few decades and that's where our opportunity lies is to meet the demand by transforming small holder systems in a way that does address these different livelihood dimensions. And one other issue, one other trend rather I should say that we've seen just in recent months really is that livestock and fish really are starting to appear on the global agenda. We had an opportunity with the Economist recently to be part of one of their events and to have an op-ed as well but also we've seen a number of calls and had a number of visits but on the way. Who's doing what? Well I've put a few thoughts here. I don't think it's comprehensive and probably people would like to add lots more in the comments. Firstly at sort of regional or global levels we have of course the sustainable development goals. Little mention of animal agriculture or aquaculture here and there as mattering through but right throughout those 17 goals and many of the indicators we can see a relevance for these different sectors. So we've got a case to make there I think. Of course the CGIR, the strategy and results framework and the IDOs and for sure in the coming weeks will be, well weeks and months perhaps I should say will be articulating what is our agenda that really does address the different IDOs. Here in Africa we've got the CADAP agenda setting a framework for agriculture in the African countries and very recently the African Union's been involved in preparing and launching a livestock development strategy for Africa and we see this as a really good opportunity for us to engage with priority countries in Africa. You've got a strategy, the ministers, you've approved it now. Here's something about implementation that we can really help you with. So a tremendous opportunity. I don't know what that looks like in Asia and maybe again this is something where people could add some comments and help us to understand the context, some of these in Asia as well. We've also got the global agenda for sustainable livestock some more than 2,000 people engaged in this from right across developed and developing countries as well as the range of private NGO research development sectors about seven different groups if you like represented there and we're part of this and it seems to be something that's growing momentum but especially important to say that it's also coming together on a common narrative around the potential of animal and I hope to see fish in there soon agriculture to address development challenges. And then of course in the different places we work we've got opportunities of private sector of working with organizations like FAO the different governments, NGOs, investors in development such as the World Bank and IFAD. One of the things we've seen in private sector engagement is that an increasing interest from the Alankos and the Cargills and so on to get involved in developing countries and potentially a role for us in helping translate their know-how and their commercial orientation to things that really work for the systems we have on the ground today. What about position in livestock and fish? I already mentioned a little bit in terms of the strategy and results framework but here's a couple of key things that I think should underpin where we are and where we're going. One is we cannot address global development challenges without paying attention to livestock and fish agricultural systems especially in developing economies and that there's potentially different trajectories depending on economies, commodities and so on a range of issues. And that those demand different research for development priorities. And here's a table that you're probably familiar with at least familiarly, we've used this in our strategy to try and typify what might be different trajectories for today's systems over the coming few decades some of them growing and intensifying very fast where the focus of the livestock and fish agenda has been up till now. But other areas where it's remote or very susceptible to climate change or whatever it's not going to intensify but there's issues of reducing vulnerability and improving resilience that can be addressed in these systems as well as potentially providing ecosystem services. And then those systems that have already gone to a high level of intensity not necessarily industrial systems where challenges about environment and health and the policies around these are really paramount. I'm not sure what this would look like if we were to try and interweave the potential trajectories for example of the aquaculture sector and that might be something we'd want to think about as we go into the second phase of CRP so that we have a really comprehensive narrative. I hope that's given you something to think about and thank you very much for listening.


You two team keep it clean. I love y'all and I appreciate y'all. Good morning I hope everything is going really good for you all, but I got a lot of work to do. I am very behind I'm trying to get caught up. I think I should be good to go by tomorrow But anyway, we ain't got no time to waste. So let's jump straight into it first and formal shout out to my boy Ron Wilson and coach Mark they hit me up on Twitter because this is a story that I had to heard about when it first came out early this morning because I was up very early working and But I was that was just cool on I was like whatever but then my boy Ron Wilson one Ron Wilson said what are your thoughts? This could be a solid veteran edition high reward low cost I'm sure you'll touch on it in a vid today. Lol, and then my boy coach Mark He said I'm expecting the vid on this soon and it was about mr. Percy Harvin. So Percy Harvin He was a wide receiver He played for the Vikings. He played for the Seahawks helped him get that Superbowl He played where they blew out. Who was it the Broncos? He played Broncos, I forgot who it was. I think it was the Broncos over anyway. He um He played for the Bills. I think he played for the Jets and Maybe some oh, yeah, and I think that's it but regardless his best years came when he was with the Seahawks and with one Percy Harvin he hasn't played since like 2015-16 and He was he was a decent receiver was he all that? No, but he was an explosive receiver with the ball in his hands And he could make some stuff happen But he hasn't played and like yeah three four years now But the question is should the Ravens make the move and sign one Percy Harvin because he said he did retire Some years ago, but he said he never filed the paperwork and he said um his he's in a better headspace right now So for that I'm super happy for him said he's in a better headspace He hasn't been getting the migraines anymore. He said he's because that was something that he struggled with throughout his playing career so now He he said he got the edge to play again. Maybe he got a little motivated from Rob Gronkowski even though From the video, I know y'all saw the video by now Percy Harvin like working out and stuff and he looks to be in some pretty good shape But being in shape is not the same as being in football shape. It's a big difference But he said that he feels his services are available for any team especially He's I mean he's taking advantage of the situation man I'm trying to try to get a nice little check taking advantage of the situation because he said he's looking forward to Providing his services to a team that's in need of a veteran wide receiver Because you know, you know, it's gonna be things are limited right now with everything going on with everything being limited then teams are not gonna have that same level of practice and that same level of communication that They would have when they bring in whether it's free agents or even rookie wide receivers So there's gonna be sort of a not necessarily a bridge But there's gonna be sort of a struggle there, but I'm sure they're gonna figure it out So he said hey you could bring me on and I'm a veteran wide receiver. I know what the NFL's like already So that is one positive about if the possibility of a team bringing on one Percy Harvin and When you look at the Ravens Again, like my god, Rome that he did say low risk potential high reward Because again, just like I mentioned with Antonio Brown video coming out either later today or tomorrow just like I mentioned with Really a lot of wide receivers. No, it's not a lot but any that hasn't played in a little while And one it's the ones that have been out of the game for an amount of time. There's Bryant. That's another one You could bring them in Low risk deal you ain't even got to include any guarantees in it bring them in on this low risk deal a super prove it deal and If it doesn't work out, okay, thanks, but no thanks. Goodbye. We appreciate you, but we wish you well in your future endeavors Simple as that so with the Ravens one could look at it like a Ravens are in win Super Bowl now mode not in win that win Super Bowl now mode and They want they need more explosiveness On the outside even in the slot just throughout they need to be more explosive with their weapons So could Percy Harvin feel that role a 31 year old wide receiver being out of the league for three four years. I Wouldn't I wouldn't be Opposed to it to a looksie, but I wouldn't be like. Oh, yeah, okay bring in Percy Harvin All right, we straight we set. Let's get it Because yes, he is technically a veteran wide receiver in the NFL But at the same time he's been out of the game for so long not to say that he can't come back But he's been out of the game for so long and with him having been out of the game for so long Then again, he's not in football shape Because again, it's different like somebody could be in some good shape running running running running running have good stamina Whatever but taking them hits Going through them practices training camp The whole ordeal that's a different animal in itself and I mean the Ravens conditioning test That's that's tough enough. I would love to take it one day. See how many times I could fail but anyway With Percy Harvin he I almost feel like again I know he's a veteran wide receiver But I almost feel like he would be in the same predicament as a rookie wide receiver coming in because They would have limited access to the playbook. They would have limited access to coaching They would have limited access to the team because of everything going on right now So, I mean you could do it, but I Don't feel like there's much advantage that he would have over a rookie who is in football shape Who has been taking football hits? Just a couple of months ago when it was still when the college season was still going on So that that's why I say I just I wouldn't be against it But I'm not gonna be I wouldn't be clamoring for it either I do hope he gets a shot with somebody so we can see what he's got But if it was if it is the Ravens or not, I'm super indifferent about it. I'm very indifferent about it Because I feel like like I said with with a rookie wide receiver I feel like it would be the same thing and And this is different from Like when we spoken about Antonio Brown, this is different from when we spoken about the Dez Bryant like Percy Harvin, he's been gone for a minute minute For for a minute minute like 2015 2016 That's a long time. It's about this 2020 in four years four years So with that being said that like that that's that's a long ways Well, just to step away from the game for that long and then try to bounce back again not saying that he can't do it but I just Like I said, I think you you could but in this situation I would probably just rather them draft somebody because again, it will be the same thing to me So the only advantage that I think right now is that he's been through it before But his body your body responds to your actions, man And if your his body yet again, he's in some good shape probably But he hasn't been taking though. He hasn't been getting tackled. He hasn't been getting popped Something we'll see I'm sure somebody's gonna give him a shot now. Somebody's definitely gonna give him a shot No questions asked about that Who's it gonna be though? I don't know. So anyway, like Percy Harvan did with retirement He came out And I'm going to love y'all see you soon cuz we got oh, we got a lot of questions from subscribers I'll see y'all in a little bit


I am continuing in lecture 24 studies with neutron reflectometry technique. In the last lecture I discussed with you how we could interpret the alloy composition in a nickel-aluminium multilayer, though we use PNR but there it was more of physical density. Before I go on to polarized neutron reflectometry studies which is the most interesting thing for the condensed matter researchers, I must briefly mention you neutron reflectometry for liquid-liquid interfaces. This is a branch of studies which has gained popularity in last I should say 20 years or so where we study the interface between two liquids or interface between liquid and air with various chemicals like we can study interfaces of a liquid possibly with surfactants sticking out from them. I use this example because we have studied myself form from surfactants in science technique. So similar studies in reflectometry for these interfaces are very much popular presently and such studies have become so much in demand that there are dedicated neutron reflectometers of an unpolarized neutron reflectometer where you can have physical density profiles for proteins on liquids or polymers on some kind of interfaces. I will use only one example to highlight the role of these studies. This study I have chosen is with liquid-liquid interface with neutrons. Such interfaces can also be studied with x-rays and have been done also. But in case of neutrons the interesting thing is that I discussed with you earlier that we can play with the D2 OH2 ratio in the solution or if it is water then in the water background or the water substrate on which we make spray these chemicals so that I can get a very good contrast that is the advantage. So here I am just showing you one example of nitrile reflectivity data for WIC, poly cation, PDMA, EMA, poly dimethyl amine methanolic that is one polymer and spreading of such polymers are important for biological samples because polyethylene oxide brushes and how they interpenetrate this is important these studies are important because protein spread or protein unfolding on such medium are of interest for biological studies. So here this example deals only with an example of PDMA, EMA and PEO brushes and this study highlights how these brushes they interpenetrate actually they have been stabilized with a hydrating solution at pH 5, pH 5 and pH 10 so depending on the pH value we know that pH is the negative logarithm of hydrogen density and pH 7 is a neutral solution so pH 10 is alkaline and pH 5 will be acidic that is the thing and we have just showing two data unpolarized reflectometry but if you look at this schematic or the cartoon on the right hand side you can see that there are two possible configurations at the interface for PDMA, EMA and PEO one is that they don't interpenetrate they don't mix and the other one if they mix that the brushes interpenetrate the first data at pH 5 you can see that the fit without penetration this one and with penetration have been attempted and the fit with penetration interpenetration of the brushes gives a better fit and that means at pH 5 for these two brushes spread on a hydrating solution allows the interpenetration but when we go to pH 10 of course under a pressure of 6 bar this whole experiment was done under the pressure of 6 bar then it switches from interpenetration to no penetration here the experimental data for interpenetration this one and no interpenetration compact fit so this one gives a much better fit so it supports this picture and this is not correct here this is not accepted so this is an example while by measuring scattering length density profile this is what we measure in all neutron and x-ray reflectometry experiments as I showed you earlier the scattering density profile is a nuclear density if it is an unpolarized beam and for so we call it NSLD and in case of x-ray it is electron scattering length density or ESLD and if the system is magnetized or it has got magnetic moment then this NSLD for neutrons we also add one magnetic scattering length density I will get into it right now so this is the only example I am using where organic and biological samples at the interfaces and their properties with respect to their spreading into each other penetration into one of one medium to another medium can be studied using a neutron reflectometry or rather neutron reflectivity now I will get into polarized neutron reflectometry or beams with polarized so polarized neutron reflectometry PNR is polarized neutron reflectometry so as the name suggests that this PNR needs a beam which is polarized now this can be done in two modes one with no polarization analysis and with polarization analysis so I will first talk about without polarization analysis and then with polarization analysis let me just show you the experimental setups this is the one at Zluva this setup is at NCNR NIST you can see that there is a polarizer in both the cases there is a polarizer in both the instruments and after the instrument there is place for analyzer here also there is an iron silicon analyzer so for without polarization analysis we have what we measure is r plus and r minus so if this is the sample with this is the magnetization direction then I have two reflectivities one the neutron parallel to the magnetization in the sample and the other one is antiparallel to the magnetization in the sample and there r plus and r minus now if you remember I had earlier also discussed this that this nuclear potential for r plus it is getting added by one V magnetic and for r minus this is minus V magnetic so now we have twice pi h square by m the potential the step potential rho B coherent this is the density B coherent plus minus a magnetic scattering length which gives me Vm and this is either plus or minus and then because of that we have also the critical angles which are different because V dictates the critical angle of reflection for that particular neutron so if I see the reflectivity I will share with you if this is plus then this will be minus the critical angles are different and this polar let me just remind you that this polarizers are often super mirrors super mirrors these are the as I showed you like in nist the iron silicon super mirror and as I explained to earlier super mirrors reflectivity one is it has got a large critical angle over simplified picture but it is somewhat like this for once spin of neutrons and much smaller critical angle for another spin of neutrons and this is if I take a reflection at an angle which is between these two critical angles then I can get a fully polarized beam so this is the principle of polarization and in the reflected beam say with using the same principle if I put an analyzer analyzer of the same super mirror at an angle which is again between these two critical angles then I will get only one particular spin reflected into the beam and the other will be transmitted so I can find out what is if it is a plus one plus reflectivity then R plus is given by R plus plus plus minus both because we don't analyze when there is no polarization analysis but if we want to do the analysis then I will get two reflections it's non-spin flip because plus goes as plus and spin flip plus goes as minus I will come to it later so this is a general assembly of a reflectometer with the analyzer in place in both these things typically in the reflected beam we need to put a polarization analyzer to know the non-spin flip and spin flip so now first we are just measuring R plus and R minus that means we don't do any spin analysis of the reflected beam we just impinge a beam which is either parallel to the magnetization in the sample or anti-parallel R minus and we measure them now as I told you earlier that that V in a matrix form has got two components one is the plus component one is the minus component so V plus and V minus equal to B coherent plus BN and V coherent minus BN and similarly as I wrote earlier also earlier the critical angle was lambda square root of rho B coherent by pi for unpolarized beam now for the polarized beam I have got two critical angle which are described right now this is the expression for them so now we also have to consider the Schrodinger equation for propagation of these waves and they are actually two equations one for the up neutron which is due to the standard form of the Schrodinger equation where V plus is the potential which is mentioned here another one is for the anti-parallel neutron which is given by E minus V minus A so you can see the solutions are different and the critical angles will be different for the solution so again now also I use parrots formalism as I wrote earlier parrots formalism to calculate the model reflectivity pattern for up and down neutrons and then fit do the fitting in our case we use genetic algorithm but there are other fitting techniques which are used and we get the solution in form of reflectivity as a function of angle for the two polarizations so it's just an experimental example I am showing you it's a nickel film this nickel film is magnetic and we know that nickel has a magnetic moment of around 0.54 Bohr magneton per atom so I have shown here the plot of the reflectivity profile of the two spins R plus and R minus reflected from the film and we often we also take records to a plot of asymmetry parameter asymmetry parameter is this it is R plus Q minus R minus Q divided by R plus Q plus R minus Q so this asymmetry parameter joins the two reflectivity profiles at one and also joins the fit to both of them as I show here so we have fitted it using parrots formalism for the two spin components and this is the joint fit which shows that oscillation these oscillations are due to kissing oscillation these are kissing oscillations and you can see the asymmetry parameters and the fit and from the fit we could get the magnetic moment density in this medium so when we don't do polarization analysis what we get is magnetic moment density in the medium that is what we get so this at the measure at a mesoscopic lens scale so now with this much of introduction to experiments that are possible without polarization analysis of the reflected beam I use two examples to highlight the findings of such one is that this is a cobalt film which was deposited by electron beam technique electron beam deposition technique and this is a cobalt now interestingly this is first before I take you to the neutron reflectometry or polarized neutron reflectometry usually for most of the samples we first carry out an X error because X error 1 it is possible to get very accurate result for the physical density because it is a high intensity technique we have also used X tm or cross sectional tm high resolution tm to get the crystallographic structure at the interfaces so never a study is complete but interesting enough unless we marry several techniques together surely pnr is an excellent tool but I want to highlight this point that to get interesting result we need to combine several techniques together here from the external data we calculate and you can see the kizig oscillations so these kizig oscillations are coming because of the thickness of the film thickness of the film as I harping again and again and fit to the data gives me the physical density profile and gives us a signature of something which needs to be probed further what are those signatures one if you look at the density profile that I have fitted for the cobalt film what I would expect for a film such a single film film is somewhat like this if I consider the substrate density profile is this in some unit the cobalt film should look in density somewhat like this because at the if I consider this side substrate this side air because we have seen generally that the density at the surface is less and after some point it goes to near bulk density similarly due to interpretation or mixing between the surface I mean between the substrate and the film there is a lowering of intensity at the interfaces but here what I found by XORR is something very interesting what we found here actually not just this structure I will go back to the we find a high density layer high density layer high density layer density layer at two interfaces one is at the substrate film interface the other one at the substrate air interface this is something not expected and then XTM we did XTM in this region and this is the region which I have highlighted here and the first Fourier transform of the XTM pattern over here this mean FCC structure this is also an interesting phenomena because this is high density this is FCC whereas cobalt is a ferromagnet which is HCP bulk cobalt is HCP this cobalt is FCC at the interface and it has got an interface density almost one and half times that of bulk density and FCC structure from XTM so then we took this sample to a neutron reflectometer that oak reach now this will tell us this FCC cobalt cobalt and its its magnetism so one is a physical density profile that I will obtain from nuclear scattering length density in the same manner I obtained in XRR through electron scattering length density so please see the neutron or polarized neutron reflectivity data this is the physical density it clearly shows the fits are here for the plus and minus polarized neutrons this is the asymmetry parameter over a very large Q range almost up to 0.25 angstrom inverse and you can see that the high density layer so XRR and PNR they are able to identify this high density layer and its density turns out to be similar to what we found from XRR values so this is the physical density now the magnetism we have done we have found out the magnetic density profile also from the reflectometry rate of X plus R plus and R minus this is the asymmetry parameter here interestingly the bulk of the cobalt has a positive scattering length density that means it is ferromagnetic and the magnetic moment density profile shows that but this high density layer if I look at the high density layer at the interfaces they are non-magnetic so these experiments they allow us to identify a non-magnetic FCC cobalt layer at the interface this has been reported here so FCC and non-magnetic cobalt layer is an interesting observation because it is known that under high pressure cobalt goes to non-magnetic high density phase but here in this thin film at ambient pressure they were I mean when you use the film for the reflectometry experiment there at ambient pressure this same phase is obtained so at the interface we conjectured that due to grain boundary migration grains some grains got pressurized and they turned into this FCC high density cobalt in this specific film which otherwise not seen in bulk at ambient pressure so this is one very interesting result using magnetic moment density from thin films another interesting thing is coupling between a superconductor and a ferromagnet this is an ideal sample for polarized electron reflectometry reason being we know that super conductors are ideal diamagnets if you remember superconductors conductors ideal diamagnets that means they repel any magnetic field and generally you are familiar with this picture if there is a superconducting material with a magnetic field when you go at T less than superconducting transition temperature it will for a type 1 superconductor it will repel out the magnetic flux that's why a superconductor is known as an ideal diamagnet and in measuring magnetic moment density we should be able to identify here the magnetism in a superconductor but now here we have gone into little more interesting aspect what do we have here in this experiment that I am explaining to you we have got a trial layer so we have got YBCO formula given here it's familiar to you this is an insulator SRTIO3 STO and this is a ferromagnet LSMO Lantanamstronchium MNO3 now this is a tunneling geometry that means if I show you then you will be familiar with this I hope you are familiar with tunneling so I have got a superconductor I have got an insulator and then I have got a ferromagnet so we have a superconductor and a ferromagnet separated by a layer of insulating STO that's your tunneling geometry now we are familiar with the fact that in case of superconductors we have tunneling of cooper pairs of cooper pairs pairs so what are cooper pairs in VCS theory we know that electrons with opposite spin on the Fermi surface these are Fermi surface they couple with each other so we have got a spin zero cooper pair and it is known that if I have a superconductor another superconductor with an insulator in between we can have two kinds of tunneling one is single particle tunneling known as gaver tunneling we also have a cooper pair tunneling where it might go from here to here and based on these many experiments and many devices like squid or bill so in this case we have a bill uh trial layer where we have this tunnel we have invoked this tunneling geometry they are laser beam deposited and they are oxide so high tc superconductor then insulator and then a ferromagnet this superconductor has a superconducting transition temperature of around 65 kelvin we determined it from bulk measurements and also it has got cool temperature of around 290 kelvin that has also been obtained by bulk measurements interestingly in this case what we found from extra diffraction this is an extra diffraction pattern that nice layered structures do form x t m tells us but this is a highly 00l oriented structure 00l oriented structure that you can see from the peaks that we obtained we call it ysl ysl trial layer you can see 0034567 you get so many of the orders of bright peaks in 00l index same for ysl and if we make films of ybco and lsmo and ybco, stu and lsmo we get similar peaks so because of the what was the crystalline matching between these layers we get highly oriented films there is a reason for me telling you this because this superconductor ybco is a d wave superconductor superconductor so as I told you earlier I mentioned to you that other conventional superconductors are s equal to zero and it has got a spherical symmetry of the cooper pair but here because a d wave superconductor d wave superconductor there the band gap that there is a gap superconducting gap at the surface of the at the fermi surface position this gap is anisotropy anisotropy and this is s equal to zero and p is the wave function the cooper pair wave function so you can have dx square minus y square and that looks like this and dxy will xy will x and xz will look with lobes like this so the symmetry of the wave function for the cooper pair is not spherical here it is like this and directionality in the deposited film should have something to say about the cooper pair tunneling and also the gap that you see in various directions now let me get into the experiment of polarizing electron reflectometry so it's a highly oriented yttrium barium copper oxide srtio3 lsm of film in which we have created a tunneling junction and we want to see how the magnetization is affected by the superconducting transition temperature


The Appalachian Wireless Holiday Sale is going on now. Till the end of the year, visit us in-store or reserve online for an unbelievable sale on the hottest devices. We know what you want for the holidays because we are you. We are Appalachian Wireless. Governor Andy Beshear signed an executive order on Tuesday that will allow Kentuckians to possess up to 8 ounces of marijuana for medical use under strict guidelines. However, unlike many states who decriminalized possession of small amounts of marijuana once medical marijuana was legalized, marijuana has not been decriminalized in Kentucky. There will be a time when somebody has stopped thinking they're doing the right and they will be arrested in that. So why not decriminalize it? I mean honestly, I get restrictions and I get this. You have to do proper procedures. That's the whole goal. It's to bring money into Kentucky. Make sure kids are not getting this stuff and the right people that are using it are using it the right way and therefore we pay taxes, we live our lives and we help the community. In addition, Governor Beshear signed an executive order which will regulate the sale of Delta A in the state. This will allow the Secretary of the Cabinet for Health and Family Services to establish measures for packaging, labels and methods of use. They needed that from day one. There again, you know, they wanted to ban Delta A, but they didn't want to, they just wanted to ban. They heard about it and they're like, well, we got to ban it. It's like, wait a second, it's helping a lot of people so they didn't ban it, legislating didn't ban it, but now they're going to put restrictions on it. Hey, we're all for restrictions. We want brick and mortar shops that specialize in this stuff. To view the full list of qualifying medical conditions and view the details of the executive orders, visit mountain-topmedia.com. For Mountain Top News, I'm Brianna Robinson.