What letter have you been talking about? Me? The letter U. Okay, what sound do we think of when we talk about the letter U? What sound? Awesome, awesome. Today in class, we worked on learning targets, listening for the medial U in a word, being able to discriminate in a word versus say other vowels in the medial position of a word. We can find words or listen for words that have a in the everybody up, up, up. So you got to see the students really listen for words that may have a at the beginning and being able to tell the difference between a word that begins with that sound versus in the middle. So I want you to repeat after me. I can see. I can see. And I can say. And I can say. The sound that the letter U makes. The sound that the letter U makes. And I can find words. I can listen because the children were engaged at the beginning with having to hear the learning goal, the learning target and to repeat it. It puts it in their ear that this is what we're supposed to be listening for. It makes them more of an engaged learner because she told me that this is what we're supposed to be doing. And now I have to make sure that that's what I have or that's what I heard or that's what I found out or that's what I identified. I have blue gum. And Ms. Flack asked you when you wrote your sentence if you could find only the words that have a in the middle. Only the words that have a in the middle. And you were going to rainbow write that word, right? Yes, ma'am. Now some of us found more than one word in that sentence. I'm going to write it over here. The benefit of using learning targets and success criteria is that the children get an understanding for what they're supposed to be doing, a clear understanding about what I have to do, what I need to be able to do in order to have the success to be able to say that I can do that or I can say that or I can read that or I can describe that. So how would I spell the word gum, the word that has a in the middle? Lamaya? G-U-M. G-U-M is the word gum, very good. Let's rainbow write our gum first because gum has a U and a in the middle. Let me ask you a question. Can some words have U in the middle without having a in the middle? Yes ma'am. Is there another word that we should choose in our sentence I have blue gum? So what's the word Jordan? Blue. We should choose the word blue? Yes ma'am. Do you think we should choose the word blue? Kaylee? Because there's a U in the middle? There's a U in the middle. But let's listen to that word blue. You say it. Blue. I'll say it. Blue. Turn and tell your neighbor. Say blue. Blue. Do you hear an uh in the middle of the word blue? No ma'am. Have we been tricked? Yes ma'am. Even though blue has a U in the middle, it does not have an uh. So can we rainbow write this word? No ma'am. We cannot. Alright. Here we go. Oh we're good and ready. It's a great catch. Alright. What's the word? Ann. Ann is the word here. What's the word on this car? Pup. Which of these words has a in the middle? Ann. Pup. Pup. Awesome. Do we understand? Uh. We're looking for a in the middle toss. Pop up. Sam. Sam is the word. What is the word class? Sam. Is Sam uh? Not uh. Uh. What is it? Not uh. So I can put Sam with pup, right? No. Do we need a U to make an uh in the middle? We learned that some words have U but they don't have what? Uh. They don't have uh. So I'll put this with, I'll put it with. A lot of times we've talked about learning targets without me calling it a learning target and it's just a matter of this is what my teacher said, this is what I'm going to repeat, um this is what we need to do or this is what we're working on and this is what I need to be able to do. Now we're going to try something a little different. Yes you all will still have a chance to participate. I'm going to give you each two cards, okay? And you're going to have a chance to come and sort our cards. Are they going to go with fun or are they going to go with Sam? Uh or not uh, okay? Jalea let's start with you. Up, up, up. I want to see one if you can read those words on your card and two if you can put them into our groups. Uh, not uh, okay? Come on to the star. What's your first word? Us. Her first word is? Us. And her first word, her next word is? I. She's got the word us and she has the word I and these are perfect. Do you have words with uh in the middle? Very good. Tell me about the word I. It's because it's just I. It's just I, very good. Tell me about this word. Why doesn't the word us have uh in the middle? It's because you is at the beginning of the word. Very good. So the uh sound is not in the middle. It's at the beginning. So where do your cards go? Should they go with pup? I'm sorry fun or should they go with Sam? Sam. Very good. Go ahead and put them in. They belong. My biggest piece of advice is to make it work for your classroom environment.  You know how your students, how they interact. You know the language of your students.  Read your words. Rug. Mm-hmm. Gum. Put them where you think they should be. Why did you put both cards in the same spot? Because they both have a U in the middle. Even though you have a U in the middle, does that mean you have a uh in the middle? Because they both have a U in the middle. Awesome. I think that as long as your learning goals, your targets are speaking their language, it helps them to be able to understand what I'm supposed to do. And how I'm supposed to get it. How I should be able to interpret it and give it back to my teacher. Hum. Show us where up and hum should be. Awesome sauce. Thank you Batman. You can have your seat. Does everyone understand now? What are we listening for today in our words? U in the middle. Are we listening for you in the middle? What are we listening for in the middle? U in the middle. What are we listening for? U in the middle. U in the middle.


2018 was before WebAssembly and at that time I was working at VMware on what is known today as Tanzu Service Mesh. In the team I was in charge of everything DevOps. I searched our closely with a small group of developers. One day one of them came to me and said Emmanuel come over here I want to show you something. I went. When in front of me he demoed a custom filter. In his demo I witnessed how is a filter secret queries can be introspected. One time statistics can be captured in a way that is completely transparent to the database server. I was fascinated. I asked the developer how he had done it. He went on to describe this step-by-step. First he said I forked the invoices code. I built the extension in C++. Rebuilds Envoy to finally test the resulting binary. He was a C++ expert and as a DevOps I thought there was no way I could write a custom filter. But you know what you can do he said. Know that I'm done. You can package my code in a Docker image, distribute the image in all of environments, update the version of Envoy in all of our dev staging and pod clusters and of course as a DevSecOps. Emmanuel do not forget to incorporate patches and other improvements. Thanks. It turns out that back then what we were working on is what is today the Envoy native MySQL filter. Fast forward to present days. I joined another company. Three months ago I was hired by American Express where I joined the identity group. As such once completed with the onboarding process I was immediately approached by the team that managed all of our IPA gateways. We are migrating to Envoy they said. With the expected number of requests we need to squeeze as much performance from this proxy as we can get. Emmanuel can you help? Of course I immediately thought of using the open policy agent OPPA. But I quickly found out that with custom policies and required support for 8 plus type of Jotoken OPPA was useless. What those people were really asking me was if I could write a custom filter. Thanks. So I started reading the docs. And this is when I learned about web assembly. With wasm Envoy doesn't need to be recompiled. Filters do not need to be written in C++. Thanks to LDS custom filters can now be dynamically loaded. At American Express we are currently evaluating the glue API gateway from solo.io. There is an open source version with which anyone, I, you can get started. I got started with web assembly simply by going through their web assembly hub tutorial. During this tutorial you will just add a header to your request. But also you will be introduced to the wasm CLI. Wasm init to create a scaffold or boilerplate code. Wasm build to compile your code to wasm file. Wasm push to push it to a public registry called web assembly hub very similar to Docker hub but for wasm filter.  Now if you are using Istio to deploy your filter you are even given the alternative of using a custom or source definition. As a DevOps I really love what solo.io is doing. Now if like me you have your use and you want to find out how the configuration of your Envoy has changed during the deployment of your filter you can simply connect to the Envoy admin UI. To do so, keep control port forward to the pod with the proxy you want to introspect. Select the Envoy container and map the port of its admin interface to a port on your local host. After doing so you will be able to connect to Envoy in particular to the admin interface using a web browser. Then select config dump to see your Envoy's active configuration. The configuration snippets on this slide is what is added for wasm filter. vcml blob may seem a little bit complicated to those of you who are new to Envoy but essentially to configure a filter you need to provide a runtime here it's runtime v8 and the location of your wasm bytecode here a local file. Now as described earlier to use your filter on Kubernetes you need to compile your filter locally, package it, push it to the web assembly hub, deploy it to the CRD and wait for the deployment to complete. This workflow is awesome but it is way too slow for development purposes. For the development of your filter you need a much faster turnaround higher velocity. To achieve this a solution is to use Docker Compose. This diagram represents my first iteration in Docker Compose but ultimately I was left with a question with wasm. Can you do more than just add, remove, update headers? To find the answer to that question and develop my authorization filter I started iterating. I iterated, I experimented, I read the available but limited documentation. I went online trying to find examples. I looked at the source code and occasionally reached out on Slack to select people. Given the current lack of documentation for proxy wasm you may think it's a bit early to get started. But what I found is that if you know where to look the answers are already there. Now before you get started a couple of warning. First today vanilla Envoy does not support wasm. To experiment with wasm like me you will have to use the recent version of Glow Envoy or Easter Proxy. In addition today the implementation of the application binary interface or ABI is near completion but is not 100% completed. As a result when you grade from one version of Envoy to the next you may have to tweak the source code of your filter. So you iterate, you iterate until you finally arrive to something that looks like this.  I'm not expecting you to understand the details just yet. Let me just say that I am not using several Envoy proxies, different versions and wasm extensions are everywhere. Now let me share some of the key highlights on what I learned. Let me start by introducing to you YTT, the YML templating tool. If you have ever dealt with the YML configuration file, which I'm sure everyone here has, stop watching this video right now and immediately go to http carvel.dev. Check YTT, this tool is fantastic. To give you a preview the YTT CLI takes for input a YML file, parses its contents, look for the commands and replace the commands with the content of other YML files. In short, this allows for a YML file to import other YML files. On this slide I extracted the code snippet for my input configuration. The transformation of this original YML file is possible thanks to a programming language very similar to Python called Starlark. As a result, now instead of having to deal with lengthy, unending, confusing YML files, you can work at the level of components, such as individual filters or even group of components, such as group of filters. By far in this project, YTT is a common line utility that gave me the most productivity boost. Check it out. A word about programming language, you can use with ProxyWazm. One of the promises of ProxyWazm is to allow the programming of Envoi Extension with non-C++ programming languages. If you want to write a Proxy Extension today, there are four programming languages available. They are C++, Rust, AssemblyScript and Go. Starting from the bottom, Go to TinyGo is the latest addition to the list. It's very new. I have not personally tried TinyGo to write a Wazm filter. But based on my reading, the main issue with Go, or similar programming language, is that no Wazm VM or Wazm sandbox can yet deal with garbage collection. Then you have AssemblyScript, a strongly typed JavaScript which is promoted in our community by solo.io. AssemblyScript defines itself as a language made for Wazm. After experimenting with it, I was immediately confronted with the limited number of libraries. Therefore, it is my opinion that AssemblyScript is not yet made for ProxyWazm just yet. Then you have Rust. Like AssemblyScript, Rust itself is a relatively new programming language. Rust has very strong potential. Most of us will have to learn it. Finally, back to C++. Certainly the core developers of Envoy, Istio, EnvoyWazm are all well versed with C++. Most examples of Wazm filters are found online written in C++. Additionally, if like me, in a past life, you had to program an embedded system, C++ would clearly be the winning choice. Indeed, compiling C++ code to JavaScript to run in LLVM, a VM on time, is very similar to embedded system programming. As such, today, it is my opinion that ProxyWazm fail on its promise of using a non-C++ programming language. Thankfully, the ecosystem is fast evolving. Regardless of the primary language you choose, you will have to understand the application binary interface. Your compile code, your Wazm extension is running in a Wazm sandbox. An interface with Envoy using this ABI. You can find the description of the ABI in the software development kit of your chosen programming language. You can think of your Wazm extension as a library that needs to implement a given set of functions or methods that Envoy thread recall. For example, when you bootstrap Envoy, the Wazm sandbox also starts. The on-start method is called. Likewise, when a request is processed by the listener to which you filter as attached, the on-request header, on-request body methods will trigger. This is what is represented in blue on this slide as the Envoy extension lifecycle. But Envoy must also be thought of as the operating system of the Wazm sandbox. Indeed, in your Wazm filter, if you want to introspect the request headers, read, write in memory, execute an external HTTP call, you will need to call following functions. To illustrate with my authorization project, I use the get request header function on the authorization header to extract the authorization header to find out its content. In my case, the content of that header is a request error token. If like me, you choose to build your extension in C++, you will need to understand Bazel. Bazel is a build tool developed by Google similar to CMEK, Maven, or even the simpler Clumec. It is used to compile C++ code of your filter. I am sure several of you have had some exposure to Bazel because Bazel, as it turns out, is also used to build and compile Envoy. For those of you who are new to Bazel, there are two concepts or files that are important. First, the workspace file. This is where you define all of your external dependencies and how to import them. In the workspace file for your C++ wasm extension, you will need at the minimum to import the unscripted compiler and toolchain required to compile C++ to run in the V8. And two, you will need to fetch a code that describes the application binary interface. This can be done by importing the sources of Istio proxy. The second concept to understand with Bazel is a build file. This is where you define your targets, what you want to build. In Bazel, you define targets by using predefined or custom macros written in Starlark. Those macros in Bazel are called Bazel rules. At the bottom left, I show the Bazel rule to build a custom library. At the bottom right, I show the Bazel command to build it. Now, without uttering too much in the details, I would like to share some of the external dependencies I imported in my Bazel workspace. The Google test framework. Very useful to test custom libraries. Boost. Yes, the very popular C++ Boost library I must have for C++ filters of medium to advanced complexity. Rapid JSON. In my case that I use to manipulate JSON documents such as my authorization policy or my bare token claims. Finally, once all the dependencies are imported in your workspace, the next thing is to build the wasm file. This is done here with the wasm cc binary Starlark macro. In English, what that Bazel rule means is to build the binary file, worker app token wasm, compile the source file, worker app token dot cc, and link the resulting object to the ABI. Boost rapid json and my custom library. Now let's get out of the weeds and go back to a higher level. There are two types of wasm extension. First type are wasm filters attached to listener can therefore dynamically be configured with a listener discovery service or LDS. And are triggered by request. The second type of wasm extensions are singletons. In the next few slides, I will introduce them. But before I do so, I would like to share or convey that filters and singletons can communicate with each other. This is done by using either a message queue or shared data or in a shared memory. Let me illustrate all of this with my filter and my singleton in my authorization project. Let's go back for this to the docker compose developer environment I flashed earlier and let's zoom in on one of my envoy. On this Istio Envoy, three listeners and the admin interface have been configured. At the top of your screen on port 8080 is a listener I used to simulate an Envoy SciCard to HTTP. Just below on port 8007 is a listener configured with a wasm filter and a simulated backend. Such a configuration is extremely useful for performance measurements. For example, using Fortuno, a low generator, you can send requests and measure the impact of your wasm filter on latency. Finally, on port 8443 is a listener of interest. This listener use a wasm filter chain and a singleton stack. Now, here is an early version of my singleton stack. Its purpose is to fetch and then refresh the local copy of American Express authorization policy. As you can see, singletons are not on the request path and therefore their number and performance have no impact on request latency. In my case, the execution of my singleton is triggered at regular interval by a timer. Every 10 seconds, the top one pulls from a remote location a document assumed to be the global authorization policy. That document is fetched and then stored in shared memory. The bottom one, every 10 seconds, read the document stored in shared memory and execute input validation. Now, you may wonder why we have several singleton instances instead of just one. The short answer is that we are experimenting. But one clear advantage with this approach is that we can maximize call reuse. And additionally, if we want to upgrade a individual component, we minimize disruption. As mentioned earlier, at American Express, we support different types of JSON Web Token. They picked at the center of this slide are three filters for validating user application inspired Web Token. At both extreme are two filters I call bookends. Indeed, the purpose of the first filter at the extreme left is to do a deep introspection of request and to mark which upstream filter should process it. Meanwhile, the purpose of the last filter at the extreme right is to make sure that the request has been properly processed. It turns out that wasm filters have another way to communicate with one another by using the request itself. This can be done with metadata or with what I call hidden request header. Again, we are just experimenting. So what's next? The end of this presentation is still to be written. But beside some new additional requirements I was given, last week, Solow released a new version of the API gateway with better wasm support.  So clearly I will continue exploring. Now, let me turn the question around and ask what's next for you. If on one hand you are interested in better understanding envoy and encourage you to play with wasm. If on the other hand you are contemplating getting serious with wasm and envoy, I'd love to hear from you and potentially help. I look forward to your questions. Hello everybody. Thank you for attending my presentation. I have, this presentation was recorded a few days ago and I shared with the video with the meeting organizer and a few things happened in between. And I have to say that a lot of innovation is being done with envoy in the wasm space. The first thing that happened last weekend is that to date, as I mentioned in the video, you had to use a specific version of envoy to experiment with wasm. It turns out that the wasm envoy or the source code or the new addition has been no merged into the upstream of envoy, which means that soon, I think it will start in version 117. In the version 117 of envoy, wasm will be available everywhere. Something else I haven't talked about in this presentation not too much because lack of time maybe was about metrics and logs as well. It turns out that wasm filters, just like native filters, can also interact with envoys and communicate with the outside world using from a use matrix or metrics published. Those metrics will be published in the admin interface, which is in the semi UI introduced earlier at the slash stats path. So you can, for me, wasm filter, you can add metrics that could be meaningful. In my particular case, for example, in my single terms, I'm looking into finding out why my filters would not behave correctly. For example, if I'm trying to reach out to the policy and for some reason I cannot want to know that. Of course, once your metrics are input media, if you're interested, you can also alert on some triggers, which can be useful as well. To develop my filter, I'm using logs also. Actually, that's my main source of troubleshooting. When you start envoys, you can specify some command line parameters, such as component logs. This is really on the command line of envoys. If you use the containers, you will have to add this as the command parameters to the envoy process itself. You can specify the log level of components. In particular, there is a component for all wasm filter, which is called wasm. You can set this envoy component called wasm to the level debug, and then you will be able to see all the debug messages, which is quite useful when you are troubleshooting. That being said, when it's in production, make sure that you do not run your end goal in debug level, including for wasm filters. It turns out also that in the past few days, I have been experimenting with Get-Envoys CLA, which I just talked about, which offers Rust scaffold to develop filters. I'm really getting started with this. I am very pleased by what Rust provides in terms of the developer experience. I'm really looking forward to it. You don't have to deal with this anymore, because there is no there is cargo, there is a concept of crates. You have also tests that are integrated in the language. I'm kind of experimenting again with this. What I found is that if you put too many libraries into the wasm filters, you end up having the wasm binary itself becomes larger and larger. I'm wondering if we should not be monitoring the size of the wasm filter. Obviously, in my case, it's being fetched from a remote location, but you have also the concepts of concurrences. I do not know yet if the size of the filter is something that should be monitored. In which case, C++ or even assembly script, which had the smallest size for what I've seen. C++, you can really take only exactly what you need. I'm not too sure if it's possible with Rust. I assume it is, but so far, what I found with Rust is that my filter was just to add or extract errors was a little bit too big to my test. Another thing I want to talk about is about performance. It turns out that over an external authorization filter, such as OPAR, and compared to a wasm filter, which is completely compiled in or running inside and void, I think you can have about 20 times improvement in performance, which is significant. That being said, with wasm, you have also the concept of runtime. I talked about the runtime, the runtime that I've been using was mostly the V8 sandbox, which I think is the most mature to date, but they are the sandbox that are coming. With the V8 sandbox, really compared to native filters, you can reach approximately 40% of the performance of a native filter, which is quite significant. But some new type of runtime are on the way, where you will be able to get even closer to native performance. There is the WebEM, with which you would be expected to reach about 90% the performance of native filters. A new VM where, basically, you are using the wasm SDK, but it's actually almost compiled into an void. It's quite possible in the future that native filters will be built into wasm to benefit from the fact that you can bring them in and out based on the configuration of the filter itself. I looked at performance from a request performance. As I said, filters wasm on the request path. In my particular case, I want to make sure I'm getting as much performance as possible. As you have seen in the architecture I have, I know I have several filters. I don't know if it's the right strategy on the request path, at least, but that's something I will have to find out. The way I do it, or I tend to do it, is by using Fortuno. I briefly talked about this and to try to experiment with the architecture of the system. It turns out that, right now, instead of trying to improve the performance, I've been trying to saturate my filter that slows down the request to see what would be the behavior of an void when it's being saturated. That's something that is very interesting to me to see what is the expected behavior of an void itself with wasm. Getting the highest performance as possible, I've been trying to build a filter that slows down my request and sleeps and sends the request half a second later on. Then I send a lot of requests and I look at what an void does. For me, that's interesting. That's something that I'm exploring as well. To conclude, really, if you think about what WebAssembly is, and if you have been working with containers for a while, I think it has the potential to have a huge impact in the container space. For example, some people say you can replace containers themselves with WebAssembly. Actually, that's something I looked at. I wanted, actually, at some point to have a WebAssembly singleton that would read my policy, transform it into a rego policy and feed it to the OPA extended filter. I have not completed the work, but I was thinking, oh, you know, that would allow us to migrate from our custom policies to something that is more open, which would be in the OPA open policy agent, rego policies, and to try to see if that's the way to do the transition. But if you work also with function as a service, you can see that, actually, what Envoy is, it's really invoking functions. Those functions are actually the functions that are in my wasm filter. In the space of function as a service, wasm can have a huge impact. Lots of work is being done there. I encourage you to have a look at it. And finally, the last notes, I think, there is, as I said, Envoy, the wasm extension has been merged into the upstream on Envoy. Even so, the code has been merged. There is still a lot of work in terms of the documentation that needs to happen. There is no documentation there. I think it will be there in the 117 version of Envoy documentation. So there are a lot of opportunities for some of you, including myself, for that matter, to contribute to the open source community that way. And if you do not know how to do that, feel free to reach out to me. I'll be happy to help you out in any way I can. You can find me, of course, on the Envoy Slack channel, and a few others as well. So I look forward to hearing from you very soon. Thank you.


Hi folks, welcome to this presentation on data anonymization and offline data lake. So, my name is Pratap, so I work as a platform. So, one of the other colleagues will be accompanying me as our server is also a platform. So, together what we'll do is we'll be walking you through the whole anonymization process. We'll work various good practices that we've been taking away from this presentation. So, the agenda is going to be as such. One, we are going to talk about the GDPR complaint access. The second, we are also going to give just a glimpse of how great the data ecosystem is doing then in order for people to be able to appreciate the problem at scale. Second, the next thing we are going to introduce you to is some of the tech stacks that we have leveraged, which is Dali, Data Hub, and of course Apache Goblin as well. So, we'll be walking you through some processes around pre-time office station, right-time office station. And if time permits, we'll talk about the differential privacy. We'll also talk about some of the challenges and some of the monitoring aspects that you guys can probably leverage in your projects. So, with that, GDPR is a term that has been coined somewhere around 27-28 in. The general data protection regulation gives more control to the users, especially of EU origin. So, there are various guidelines and the other rules that have been imposed by GDPR with respect to the data privacy. And anyone who is not any unimposed privacy is a company who is going to have reached those privacy standards by paying a fine of 4% of their administrative finance. So, the reason why we are just emphasizing, I mean, we are emphasizing about GDPR, but there are other complaints and forcements also that will be covered as part of this design, which includes a CCPA, a Bitcoin IDPC and any intra-country policies that might be applicable on top of your data could also be covered. And it shows that GDPR covers a whole subset of rules and policies. And the other policies like CCPA and IDPC are sort of a subset of GDPR. So, and hence we are emphasizing more on the GDPR app. So, the interpretation of PIA provided by the GDPR council is as such, which means any user, any record that in uniquely pinpoint to a user will be treated as a PIA in a nutshell. So, there should not be any data, data, any attributes in your data that can uniquely identify a customer or a user. So, anything as such would become as a PIA. Now, by the definition, quite a, could probably look small. It could be a pipeline or a six-line definition. But the whole, if you start looking at the PIA aspects, it's quite large. Some of the examples that we have laid out here have got to do with the city, the state, the reason, the device ID, the IP address from which a user logged in, a user email ID, any sort of logs that are being captured by the user or the user ID. So, these all become the PIA. But at Lincoln, we have nearly 50 plus PIA attributes that identify our data as PIA. And as in when we find out this sort of involvement, you know, make more PIA attributes. But what you're seeing here is just eight of those several PIA attributes that the user can make.  And the core value of Lincoln and their Microsoft is very nicely resonates with that, right? So what we believe in is also to respect our members' data privacy. It's important for us to maintain their trust, right? The second thing also, we also want the users to be aware or cognizant about the sort of data that we are collecting and how we use it. And Lincoln very strongly believes in his mission statement. And also if you observe our core values, our member comes first and every engineer at Lincoln acts the same owner. So in conjunction with just in conjunction with the GDPR guidelines, which also aligns with our core values. And what we are going to see is a reflection of both the GDPR, the CCPA and our core values. So why anonymization, right? So one on one side, the actual articles that we do one of the GDPR dates at Nogesh needs to be sort of encryption that needs to be applied on top of your data, right? So that's that's one and the second thing we also want to have all tools and it is a place to ensure that we also protect our users' data either by encrypting the data address or encrypting the data in transit or, you know, always give encrypted to the end customers or the users of the data. And thereby also reducing the probability of any data breaches if at all they tend to occur or if there are any errors that happens, that almost nullifies the probability of a data breach. And as we solve the anonymization problem and I'm sure other companies are also acting the same in there. What we are going to speak in this presentation are some of the good practices that can be followed. And we'll walk you through some of those prerequisites for following those best practices and the best practices. So in order for us to be able to understand and the diversity of the data, we'll just give you a glimpse on how the data ecosystem at LinkedIn looks like. So our members data is everywhere, right? Like for example, you see your profile, your profile details are stored in some system, your profile picture, your career background, your job change history. So there are systems that are tracking the audit events and there are systems that are storing information from documents. There are systems that are in most key value stores that are hiding, persisting your data in some way. Now, the data is several heterogeneous sources of data are available at LinkedIn. Now, what we are going to focus in this presentation is just the Hadoop's angle to it, which is the offline angle. There could be other talks which cover the data anonymization and the source system. But in this talk, we are only going to emphasize the data anonymization part of the Hadoop ecosystem element. As you see here, so we have campaign management system, we have key value stores, we have documents stores, we have our own front-end services emitting a lot of events. We have batch load data or derived data also having been represented in this whole LinkedIn ecosystem. So eventually all of this data lands on Hadoop. Hadoop is a data lake is built on Hadoop, right? And data lake scale is several, data might scale and nodes are in the order of several thousands of nodes. So that's a scale that we are doing and the data footprint is huge and the data diversity is also very vast. So what's the problem with such a big ecosystem, right? One, you have a heterogeneous data. As you see, we saw structured data. We have logs data, we have events data, we have a document and the value stores data. Now, the data is heterogeneous. So we have a combination of all three, the variety of data, the volume of data, the velocity of data is what you can clearly experience from that previous diagram. This heterogeneous data is a way to eventually have to land on the Hadoop for analytics or AI needs or other data mining needs. Secondly, the data access as such is also different for different data sets. Now, data sets which have high confidential information or confidential information has absolutely zero access to anything. But having said that, how would we determine if the data set has high confidential information? So that's another. Now, for the same data set, you have different views. What we mean by that is a user can, there is a HDFS data set. Now you can have a high registration on top of a HDFS data set. One can have a managed high table for a given data set. There could be an RDB or a KUs in Spark, you could have an RDB for your data set. Presto also can also give you, can also sit on top of your HDFS and give, can also be used for your computational needs. So that gives, so there are different views of the same data. The semantic variability is also huge. Now, users can choose to use Spark for their computing. Big is another way, high is another way, map reducing is another way. So the semantic variability is also very diverse. There is no unique, there is no one hard and fast rule of accessing your data. The next thing is the customization number. Now, then there are data, then there are, there are legal aspects also that come into picture. Where in, for some legal needs, if you want to persist your data, for some legal needs, if you want to restrict data access or you just don't want to expose. You just don't want to, you know, remove any data, unless and until those legal applications are met. So those customizations can also be imposed on your data. And of course, needless to say, we have different type formats, companies choose to use Apple's, OSD's, Spark case, and there are heterogeneous type formats, right? And we also have the volume, sheer volume of data is also in order of setup. So with all these parameters to be considered when, in order to ensure that, you know, we have a complaint data. So all of these parameters needs to be at this, not a periscope, having the complaint analysis. So this is how the representation of heterogeneous. You have HDFS. It is at the sole discretion of the user to use the acceptable tools and utilities. So a company can have or has provisioned by events, Spark and some people won't. And the end users are free to use any of the extension. Now, with each of these text tags, the ways of, the ways that your readers have implemented, the way you started is an improvement. The way you access your data, right? It varies from system to system. So that's our one problem. Our other problem is, you know, once you provide these systems, once you, once the users are using this system, the other challenges could be that users could have hard-coded formats. Some users can choose to use, they can write their own custom UDFs to access a certain HDFS path or a high data set. Again, there could be very tight coupling with Avroes or ORCs or Spark case. And the data model evolutions are also very hard to handle when you have such things. Right, now that that's, it's a hard problem. Now, how do we really mitigate such a problem? So a problem can actually be solved. So this is a 10,000 preview. So one way of, or one way of solving this problem is, have a unified access player or a unified data access user on top of HDFS for that. You know, everyone, every application that is accessed from HDFS will have to go through this unified data. So that is a, that's one of the easier ways to solve. So if we could solve this problem of unified data access, then we can. It's like a major milestone or hurdle achieved in the whole complex story. So what helps us solve this new data unification layer or creating a unified data layer is the Dali, which is the data access that you can win. So this, so for more information on Dali, you can actually go through this engineering block which gives you more insight on what Dali does. So essentially what Dali is solving for us is, so we have heterogeneous input formats. We have different types of file formats and the table formats. There is no, so how can we unify all of this? Now, if you look at database management systems, this problem is solved through very great rates from now. If you take any DBMS system, now how the partitioning is done, how the data is laid on your best, how the statistics are calculated, where the stats are stored, how the data is laid out on the best, what data structures are used to access your data is sort of abstracted if you look at it now. So all that the end user is cognizant about is their existing database and their existing table and all the low level details are abstracted from the end user. So the end user always gets a view of the Dali and the table as a row and a column format. And that's exactly what Dali is trying to abstract or unify for us. So Dali is Dali tooling and Dali readers to gather what this all is. If there is a high state as the end user is wanting to access the data set using Spark or using or using fake or using hide or any other scripting like this. What Dali does is the Dali has mapping for your underneath hide table or your STF as data set. End user queries your Dali data set, which is done via Dali tooling queries under STF as data set. Now the Dali layer actually plays a role of abstraction layer. Now, if there were to cheat if the organization were to work from one file format to another, let's say from average to worse. Now the end users need not do is need not handle this file format, then the file formats and then because Dali has already abstracted that for you all you need to do is leverage Dali readers and Dali is intelligent enough to get used on what sort of readers for you. Likewise, if your data were to be partitioned or if you were to migrate into a new table format. So Dali will actually be enhanced to accommodate those new table formats and the end user will not be exposed to any of those changes happening in the system. So this, this is how Dali solves that problem. So as you have this, there is a Dali layer on top of this. Any of the users who wants to apply the transformation or read the data will have to go through this Dali layer and which actually is it's on top of this. Now in a nutshell, if you see here, all we have to do is we have to inject a library at this Dali layer and the the compliance can actually be achieved just by in the compliance like into the Dali. What happens if when a user actually queries, this has given us data that we are Dali. This data actually passes through this compliance library and the outcome of this is a compliant data which means the 50 plus attributes that we spoke about in the beginning when we were defining PIA. All of those attributes, all those attributes that that associate associate to one of those PIA types will automatically get an anonymous and the user gets only a encrypted version of the data and your data which is the raw data which is encrypted at rest and is not exposed to the user. So what this compliance library can essentially do is either it can null out or off the scale or filter out any of those compliance data that is there in your database. The intelligence of how it is done is what is what is important in your compliance library. So this is one of the strategy of achieving and Dali actually help us solve that problem. The next tech stack that helps us solve the problem of compliance or anonymization is data. So data hub is a V2 version of their house that was open source a few years back, this is pre GDPR. So even before GDPR we had the data lineage in base and has been open source as a data stream. So when GDPR and other compliance policies of the regulations came in. So we were ready to actually enhance the warehouse suite with the means of annotating the data. So what essentially data hub does is for any given data set actually has your schema metadata. It unifies all sorts of diverse data sets and their schemas and they organize them into a common format. The micro level details that are stored in data hub is at a free level. So which means for any given data set you would know the lineage of the data set. You would know the annotations against the data set. You have the compliance type. If there if the if right for an issue if that needs to be imposed on top of the data set that information under my data is also available in data hub. So the data hub engineering blog, the link link blog covers more aspects of the data hub, but data hub data catalog is what helps us provide as the metadata that is required for us to determine. If a data set holds PIA on one layer data. So we have covered two aspects of it. So one we have covered the unification layer, which are the data access layer which sits on top of HDFS, which is the step one of nailing the compliance problem. And the second one is the data hub which acts as an input for providing that as the metadata or the whether if a data set holds PIA information. So as a conjunction with these two, we can solve them and how we are solving the complex problem. Alongside what we'll also see as leveraging goblin. So goblin is also a it's an Apache goblin project in incubation stage at the moment. So goblin acts as a data ignition pipeline, which very well. It's it's it's actually a backbone of LinkedIn goblin acts as an extraction transformation and load layer. It can read from various sources and it can write to various. We'll see how goblin impact junction with data hub and value also shows an organization. Now here is how the complaints transformations under the hood look like. If I mean so this this is a framework which is already provided by high and we are leveraging that framework. So this is one of the strategies. The strategy is being so there is an operator tree. So once a query is executed, there are very passes with generator query plan and operator. So that comes out as an outcome of your very past. Now what essentially happens is the table scan operator is the first that reads your data. If there is a filter operator that filters your data and then you have your column projection and the user sees the data. Now what we are doing here is adding the we have something called as the anonymization operator. Now this is where our intelligence lies on how we can actually anonymize it. The same table scan operators scans your data even before filters and transformations can occur on top of the data. This anonymization operator is taking this following inputs. Now what it does is the metadata that is provided by the data hub takes that as input. It takes the query context as input. It takes other privacy settings that might be available for data's level as input. And what comes out as an output of this is anonymized data. The data is encrypted. Now the recipe is wherein the means to anonymize the data is actually built into this anonymization of data. So also when this scan operator varies the status of this the valley layer is what takes care of you know ensuring it the one to one marketing. The data is taken care of here. So this anonymization operator is extracted from users. So it is actually deployed onto our masters. So what happens when a user queries a data it actually goes through this route it gets anonymized and they always get encrypted data. So this is one of the strategies. So some of the we have also seen diverse data sets we have seen diverse file formats we have structured unstructured data. We also have earns and composite ones at LinkedIn. So this is one of the standardized approaches that we follow as well. Along with the metadata that is provided to you via metadata catalog system. You also have metadata along with the data itself if it were informal. For example, if there were contracts being sourced from various channels. Let's say channel 1000 has a contract 100. So this is how it would look like. If you also consider a retail example customer buying items. So that can be an ally customer call and an ally item call item of the followed by the customer. So what the advantage that we get with this is even even without a data catalog. Even without the data catalog layer we know that you know the data we have the data and the metadata going. So this is also one of the better practices that has been placed for a very long time. We have spoke about the data catalog we spoke about the Dali layer. Now all we need to do is to use the data here the data have talks to the Dali layer speaks to the data layer. And yeah, so together we have a good harmony there. Now what problem does for us is this is how the content item works. So this is a problem framework. So goblin essentially breaks down your big chunk of work into smaller and achievable and smaller chunks of work. And each work is each part of this work and it deals with extraction transformation and load your data into destination cluster. Now why this slide is important is because one of the strategies in data anonymization is to create a copy of your copy of your primary data link. So if you have a primary data link which is which has zero access to your user community. Whereas you want to use the community only access the anonymized data. Now you can use tooling such as goblin to actually extract your data to your transformations at the time of extraction. And then you process your data into a secondary data link with your core data sets. So that that's one way of achieving that anonymization. Now the second way of achieving anonymization is a real-time anonymization, which means you have to in the primary approach the the decent one days of such an approach is the other cons of such an approach is whatever data you have on your primary cluster will have to be replicated from a secondary data link cluster, which means your data footprint is twice the size. So you need the same capacity as your primary cluster for your secondary cluster as well, at least for your core data center. Now how could we actually solve that problem through real-time anonymization? So one of the framework that could be leveraged again, or one of the strategies that has already been provided via high risk to leverage LLAB. So this is a long living process. This is provided by the high framework itself. So what this what Hadoop LLAB does for you is it can actually cash your data as well as cash your metadata and it can actually cash your encrypted data via LLAB. So what this means is each time a data set undergoes some transformation, you will have your data cashed and your associated metadata also cashed into this layer because LLAB is a long-running unit which is available on all your nodes. So with this process you can also achieve anonymization. The second approach is Dali data proxy approach. In this Dali data process, you can read more details on Dali data from our open source communication. So the linked blocks present blocks. So what Dali data proxy will do is, so Dali data is so all underneath HDFS accesses will be removed. If at all if a user has to read any data set, he will have to go through all the processes will have to go through this Dali data proxy route. Where in this Dali proxy will have the will proxy as a super user based on your authentication and authorization privileges. It will give you either anonymized view or a permanent view. So that's what the Dali reader proxy approach will take care of. So the control of your authentication authorization and the view that needs to be presented to a user at the time of the week is what will be decided by the Dali reader proxy. So this is the second approach that we were wanting to talk about. The third approach that we had was leverage Dali writer. So like we have achieved unification in reading all our data sets, heterogeneous data sets from heterogeneous text tags for the Dali reader. We are also a Dali writer is yet another approach. Where in the users can achieve an organization. Okay, so where in the logic of anonymization is embedded into the Dali writer itself. So, so that you know, whenever the data is persisted, the data is automatically anonymized and then persisted. If the user wants, they can also possess the data. Where in one copy, the Dali writer is copies or can handle one parallel right, which is anonymized version and second, which is an anonymized version. And the end users can only access the anonymized version by the free time that we just covered. Now, the other monitoring angle also we wanted to cover now. So we spoke, we discussed about the data space. We had different types of data sets. We have a variety of data sets, variety of data set formats. So if you observe what we have explained in this presentation is that, you know, every data set has to adhere to Dali, Dali file, that Dali format. Second is one of the prerequisites is, I mean, Dali is an answer. The first one is that annotation completeness. We want all data sets to have 100% annotation completeness. Without annotation completeness, the users will not be able to access data set. And if the only means of accessing a data set is via annotation. The second thing is once the annotations are in place, how we determine or monitor the data set is based on those four TPLs. Now the data stainless main, data stainless main, you have a raw copy, but your anonymized copy between your raw copy has actually been updated either because of the backfill or some annotations have changed for your data set. So such changes also have to be imposed or applied on top of your anonymized data lake. So we use this KPI format data stainless to keep track of how many such data sets are accessed. So RSL is as short as four R's to ensure all the data across all the cluster, all the data, which is user facing, have the freshness data, freshness in the programs. The data incompleteness is, we understand that no matter how much, how many rules we impose, probably because of a legacy, if there were any data sets we do not adhere to our data model. What we do is we give 1% tolerance for that data set, which means if your data set holds 1% of the records, which do not have a data type, which have an incompatible data type with your PIA, we drop those records. But if it is more than one person, the data set never is made available to take place. The next category is a missing KPI. What missing KPI means is your data set is available, your data set is available, but either the user have not provided their annotations or the users or your annotations do not go hand in hand with your data types. For example, you have an ID, which is an integer type, but someone said that it is an integer value, but the annotation was mentioned, which is off-screen. So these are incompatible. What we do is we do not even attempt anonymization against a data set, which means the users will not be able to access this data set unless they are corrected. So that is another KPI that we use to keep track of missing data sets and keep the users intimated on this. The second, the last one is the data locking. So we have a stringent data model review committee. We have stewards and shepherds who review the data, our data and their metadata. So our metadata are always checked and kept in. We always follow the check-in process for all the metadata. But in spite of that, we have our detection algorithms, which keeps crawling on the data to see if there are any data set annotations that do not go well with the data. So what we do is we immediately lock those data sets. We register the data set access for those. We create a ticket to the users. We would evolve the house security and only after the necessary annotations have been either corrected or my justification has probably been less open for the user consumption. So this is the monitoring story around the analysation. That's pretty much it. So in view of time, I think we will submit a blog on data on how we add noise to our data and stuff. So that can be submitted as part of the blog. But I think we are done with the presentation. And thanks, Waze. Thanks for your time. Thanks for the session. Okay. So that was a great session, not very informative. And we don't have Pratap today. So we have one question from Swapnit. Is it possible to implementation of Dali Hadoop in .NET or application SW development? Bhupendra, if you could answer that please. So is it possible to implementation of Dali Hadoop in .NET? Yeah, of course it is possible. But then I would say, so Dali provides an abstraction today over the Hadoop data like, right? And then on top of that, you can always add a layer which can be, I mean, which is independent of the language which your application is using, right? So on top of that, you can have a layer which is language and mastic. And I mean, you can have like an REST API. You can have like a trip protocol. You can have a REST protocol. And that layer can be, you know, your application can be in any language. And then Dali just works as is. So is it possible? Yeah, it's possible. But yeah, I mean, I would suggest to add one more layer and it is independent of, you know, what your application language is. Yeah.


Are you a netizen? If someone sent you an email with a text in all capital letters, how would you react? Good day everyone! Today I will be discussing two concepts which may already be familiar to you, netizen and netiquette. The root word net gives us an idea that our discussion will focus on the internet, the people who are in it, and the socially accepted behaviors for the people who inhabit the internet or the cyberspace. Netizen is a slang term derived from the combination of the words internet and citizen and used to describe an individual who spends a lot of time on the net. The term can describe most of us who use the internet in the various aspects of our lives. In many cases, our fellow citizens in the physical world or space are also our fellow netizens in the cyberspace. This is not surprising given the following statistics. As of 1 July 2016, there are about 44.5 million internet users in the Philippines out of more than 102 million total population of the country or a 43.5% penetration rate. This accounts for 1.3% share in the world total of more than 3.4 billion internet users. In fact, the cyberspace or the virtual world is now regarded as the fifth domain after air, sea, land and space. Hence, it is also useful to hear now of cyber war. Being netizens enable us to be beyond our physical self. Our virtual self enables us to be active members of online communities of interest and practice and connect with fellow netizens real time wherever they are in the world. As netizens, we access and use resources that are available in the web. We reshare them to other fellow netizens and in some cases, we create or develop these resources and share them to fellow netizens. As it is, as netizens, we have become publishers ourselves provided with space for our voices to be heard. Such empowerment, however, should be exercised with responsibility and caution. Imagine, if all the more than 3.4 billion netizens of the cyberspace would exercise the sense of empowerment without any guidelines, it would be a chaotic world out there and probably many of us would hesitate venturing into the cyberspace and would only go there if and when necessary. As it is now, many of us enjoy the cyber life. In fact, many prefer spending time there than in their physical world. This orderliness in the cyber life was brought about by the agreed upon social conventions in the cyberspace or what is known as netiquette. There are many resources which can be found in the internet with regard netiquette. Some are very detailed, some just discuss the basic principles, but they are in agreement in many items. This presentation is an attempt to summarize the important netiquettes into a mnemonic device which will call good conduct. Hopefully, this would enable us to remember what these netiquettes are every time we are in the cyberspace. So here it goes. G is for good citizenship in the cyberspace and knowing where exactly where you are in the cyberspace. Netiquette varies from domain to domain. When you enter a domain of cyberspace that's new to you, take a look around, spend a while listening to the chat or reading the archives. Get a sense of how the people who are already there up then go ahead and participate. So now we have domain for government agencies or educational institutions and other organizations. O is for other people's time and bandwidth which should be respected by avoiding long posts which can waste others' time, who may want or are interested to read it. In the case of bandwidth, there is a limit to what a connection can carry. So avoid multiple postings, sending heavy files which may take forever to download and sending email to multiple recipients when you need just one person to reply to you. O, this refers to online mode and that you should adhere to the same standards of behavior just like when you are in the offline mode. This means that although we can be anonymous online, we still need to be ethical and follow social conventions by writing well. D, don't abuse power. Some people in the cyberspace have more power than others. For instance, system administrators are more knowledgeable than a common internet user. This, however, does not give these more powerful individuals the right to take advantage of others. For instance, cis administrators should not read private emails as it also implies respect to other people's privacy. C is for cybercrime law or here in the Philippines, it is RA-10175. The RA carries various provisions like computer-related forgery, cyberbullying, cybersex, plagiarism, et cetera. It is important that we be familiar with all the provisions of the law so we can be guided on how we will behave when in the cyberspace. O is for other people's mistake which should be treated with kindness, especially if it is just a minor one. It could be that the person is not aware of the conventions in the cyberspace. Even if you feel strongly about the mistake, think twice before reacting and if you feel the need to inform the other person, do it politely, like in a private email or message instead of posting it in a social forum for the public to see. And should remind us never to use all cups at all, if possible. Online, all cups is considered shouting so unless you are really angry, avoid using all cups in online messaging. V is for don't forget the human. Remember the almost 3.5 billion netizens who are potential readers of what you post online. Remember that while all you see is a computer screen, you are communicating with a human being when sending email or replying to discussion post and all you have are words to relay your message or what you have in mind. Devoid of the nonverbal cues, it is so easy to misinterpret messages. Probably a good rule of thumb is to imagine how you would feel if you are at the receiving end of your email or post. Use appropriate grammar and language. In discussions, be sure to use proper spelling, capitalization and usage. In short, avoid using text or SMS language. C is for chain letters. We should avoid sending chain letters. Remember that we should respect other people's time and bandwidth and they can make use of their time better instead of reading the chain letters that we send. T can stand for true self or truthfulness. Do not pretend to be someone you are not. Again, it is so easy to assume a different persona online but respect to fellow netizens also require that we present our true self when in cyberspace. So practice good conduct. Be a good netizen.  Thank you and good day.


Please, sit down. My, it's a relief to get out of that air conditioning. Out here in the fresh air. Well, I'm glad to welcome all of you to the White House. And I know that all of you here today will agree that God has blessed the American people with a vast and beautiful land, land of mountains and prairies, lakes and forests that reach from sea to shining sea. And no task facing us is more important than preserving the American land. Our administration has undertaken this high task with energy and vision. And this year, well, the year we took office, we began a billion dollar program to restore and improve our national parks. Our five year effort is the largest commitment to the renovation of our national parks that has ever been made. And I might add that it's running a year ahead of schedule. We've enacted the Historic Coastal Barrier Resources Act also. That legislation will help to protect dunes, marshes and other coastal formations from Maine to Texas, lands that provide irreplaceable feeding and nesting grounds for hundreds of species of fish and waterfowl. And we've made certain that state governments are involved in federal land management as never before. We've given our support to legislation that would create some five million acres of new wilderness areas. Each of these has been a significant step in the effort to preserve the American land for our children and grandchildren. And today we take another important step forward in this effort. The legislation that I'm about to sign will designate thousands of acres of wilderness area in North Carolina, New Hampshire, Vermont, and Wisconsin. Each of these areas is intended to be completely natural. No housing developments, no power lines, just forest, rock, wind, and sky. And because of this legislation, these wilderness areas will remain just as they are, places of beauty and serenity for hikers, campers, and fishermen. Generations hence parents will take their children to these woods to show them how the land must have looked to the first pilgrims and pioneers. And as Americans wander through these forests, climb these mountains, they will sense the love and majesty of the creator of all of that. Everyone here today had a hand in the passage of these bills. Special thanks go to all who hard work and dedication made a critical difference. Each of you has my heartfelt thanks, but more important, you have the gratitude I think of the American people. So thank you, God bless you, and now I'm gonna sign some legislation, four bills. Good.


So as an air defender, as a 14 tango, I deal with the missile launchers here next to me. One of the big things that we do is we're actually the people who set up the launcher for the 14 Echoes and 14 Hotels to actually be able to fire the missile. So one of the things that we do is we rend drills to raise the launcher to be able to shoot the missile as well as maintaining it on a weekly basis to make sure that it won't break down and that it will still perform properly. So we always are maintaining the ability to be able to jump and be able to be where we need to be if we ever do have an incoming missile. As a 14 series, we are making history as an air defender, especially being in a test battalion. And it's really rewarding to know that we're making progress and really making a change in our line of defense.


What's going on everyone Sam here with late in sports cards We've been one box or two boxes of 2022 top Star Wars the Mandalorian Chrome best car edition hobby for Jamon L. It's a good luck here Jamon See what we got buddy Star Wars the Mandalorian Chrome Let's pull a sketch out of this. Why not? I got you. Don't work out. I won't tell you and some basic collectible card Taking back Moss Pelga Nice one there and base. Yeah, LSU game was wild last night That game was crazy a couple of refractors there dropping into the trash collectible Sailing into the trap. It's Mando's big save Nice one there. Got the Mandalorian And base we're in collectible Base that is good news from off Gideon or an armored and ready. You've got autograph. It's gonna be comms officer That's gonna be not numbered That is Katie O'Brien as comms officer one last assault blue coming up. That's gonna be IG-11's rescue nice one there blue 84 out of 99 grads on that Jim or enter the dark troopers Mandalorian and base grief cargo skip mostly base there a couple of refractors as well Taking grogu and some more base. Let's enter the hunter Paz Vizsla Armed and ready base there as well Boba Fett lives base That's a fennec fires not numbered on that one base is successful and reunited with grogu base Sailing into the trap and base that'll do for box one. Good luck here on box to storming the Imperial cruiser Fractor IG-11 armed and ready base See sketch. I want to see sketch out of this Boba Fett lives base of icebeast returns Please tell these new job These armed and ready. We've got auto Ransar Malk Nice one there. It's gonna be Mark Boone jr. As Ransar Malk Mark Boone jr. Again, that is not numbered. That's cool. I'm delivering the asset Boba's brutal assault So be on becoming face-to-face that's not numbered cool in there dark trooper armed and ready Or armored and ready. I should say a new Marshal nice one there 41 out of 75 Grats on that one. Very cool looking card. Congrats on that one again. They're jamin That'll work for you, buddy We'll take it. We'll take it Grogu's new turn a Grogu's connection on the refractor a blue this time Minilar in concept art cards 82 out of 99 that Tuscan Raider That's cool looking at the Tuscan Raider and saved by the New Republic Echoes of the past so happy Bama lost again base your firepower and base That'll do it for your break there jamin. Congrats again on all the hits man. We'll get them right out here. Appreciate you, buddy


So Alex, you got one of the most sought after seats in the world probably, how is it riding with such an icon? Well, it's obviously a great experience, obviously Ken and I started together over 10 years ago when we were in a small group hang cars and white car, white suits, no sponsors so it's been an amazing journey to work with a driver like him but also to see and progress over the years from an amateur level all the way to professional and very desirable profile for our sponsors. Now we're seeing the sort of profile that he's got here at the Otago rally this weekend, everywhere you go, flocks and flocks of people coming to have a look at you and the car, it must be an amazing car to ride in. Yeah, look the Fiesta World rally car is incredible, you know, one of the latest generations rally cars and sometimes it's a good point you have, sometimes I find myself in the middle of the stage seeing what this car can do and I'm like, wow this is absolutely awesome, they're great cars. So you're over in the Southern Hemisphere for this rally, what else is the attraction in the Southern Hemisphere? Well, obviously my wife Rhiannon, she's from Australia so we do spend a fair amount of time here on this side of the world but also I've been doing some events, a few weeks ago we did the first round of the New Zealand Championship and last week I was in Tasmania racing at Targa Tasmania and came straight here so I've been keeping busy while I'm here but I'm also enjoying very much the beautiful countries that are Australia and New Zealand.


The Cass County Sheriff's Office is asking everyone to be wary of changing ice conditions. The unseasonably warm December has caused a few lakes to begin deteriorating. The thaw-free cycles have opened up large cracks and ice heaves on few area lakes. Right now, the area of Walker Bay of Leech Lake is extremely unstable due to a late freeze and a large crack that extends from first point to the middle of Walker Bay. The Cass County Sheriff's Office reminds everyone that no ice should ever be considered safe. Check with local bait shops, resorts, gas stations and other fishermen for ice conditions and also to always carry a cell phone and let someone know where you'll be and your expected return time. You should also carry a map and pay attention to any warning signs that are posted in the area. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.


What's up guys and welcome to trendy updates of our SPM boys Now onto the trending news today is YouTuber Shonara Who has been bought another car by her Niterian husband Now this comes after Shonara had two cars in the past one month Nagari upon zambali eza punululu wa nabuana kiki kuwa BMW X1 Lakin e after one week another car was bought But because Shonara li eza kusema she did not find the BMW X1 feminine enough Nando maana li kwa eza kongena bwana ake they upgraded the car And the husband got her a BMW X3 Lakin e sasa isi toshe a month later Shonara shows off another car And by this time round it's a Tesla Nani eza kongisha na palia kwa diye molukonongena bwana ake Bwana ake li kwa me eza kumtumia up video of that Tesla Na Shonara ake eza kumwambia will you buy me a Tesla baby Bwana ake kumwambia yes baby everything you want I will buy you Shonara kumwambia now that's why I married you A loving, providing husband You now know I mean when I say it Ayabasti ya ni Shonara kwe li ake eza kubarekiwa na bwana bwana Bwana ampa kila ambatwa na kitaka Lakin e sasa wakenya ono jo anaza kushindo a bwana ake tina Na fanya kazi gani eo no maswali ampa wana eza puliza pali Amma anata zamba wana sema kwe li wange tamani pupata bwana kama wa Shonara But besides that Shonara says that She also thanks God kwa kumpia bwana kama wuio because anam sa idea kuchungam toto And you know Shonara should have video and buy a key Onisha na bwana ake wame baby ampa toto kule ngi na eyu kondani Ania eza kushutu content ya pali YouTube Niteza muku sumia comment to pali Anasema mahali mefika the husband anafanya kazi gani Sika adila and is busy promoting his business Alternatively at wambie where to face when we are afraid Mungi na nasema ai kwa ni wuio bwana ana uza ma gari ama Anafukuna mungi na nasema iani ana receive gari kama aa Kila mwezi ni gari mutia ai ya mani Na we all know Shonara relocated to the UK just a few months ago Na maeza pwana onisha na kule ana isi maisha msu risana Ini kuna kitu omba to Shonara maeza kutadi Ani kwa mpa wana ake pwana eza kumtumia bwana ake messages Upane on the DM But Shonara insisted to say that she knows you guys are sending the messages Kotababu eni onara nili accounta bwana ake Kwa evo as you send a message to Shonara's husband Just know that she is the one reading your messages Alieza pwani kapale alafu some of you send us provocative pictures Ati, I would like to know you better Mea mwa uruma ni estate But again Shonara said she made it clear to the husband That she would never fight another woman for a man Another woman can't get in a house that is secured and locked Women only get in houses that they are allowed to get in So it's his irresponsibility to protect her Provide and keep the doors locked at all times Ioni konfizbation anbaya Shonara alieza pwana bwana ae ake Tlombia kwenya komen sectionu ewe Bwana kwa maeza puku sa idea kivipi But in the meantime keep it trendy Updates Habba SPM Buzz


When this video we're going to talk about what's called immunological surveillance and the cell that's responsible for immunological surveillance is the NK or natural killer cell. It's a type of lymphocyte. So we won't talk about it again with the T cells and the B cells. It's a separate type of lymphocyte. And it is involved, what it does is it bounces around and it's looking for cells that are either cancerous or infected with viruses. And what happens is if it bumps into a normal cell, then it recognizes what they're called MHC1 or major histocompatibility complexes that say this cell's normal, nothing wrong with it, nothing to see here, I'm going to move on. When it bumps into a cell that's either infected with a virus or maybe an intracellular bacterial pathogen or a cancerous cell, it's going to see these distress signals on the surface. And mainly it's by what they get rid of. They get rid of these MHC complexes. So the natural killer cell doesn't know what's wrong with this cell. That's why it's part of the non-specific defenses. It just knows that there is something wrong with this cell.  Remember, that's called apoptosis. So the job of the natural killer cell is to ask these cells to kill themselves. And the reason it does that, it's kind of interesting, that it directs apoptosis rather than killing this cell directly. If it were just to lice this cell and rip this cell apart, it would actually release its payload, potentially releasing these bacteria or viruses. By asking this cell to kill itself, it's trying to stop the spread of the pathogen from going any further. So here at the bottom, it has deposited its payload, primarily these perforin chemicals that's going to cause this cell to kill itself while it reloads so it can go and do it again and again. So that is immunological surveillance, the primary function of the NK, or natural killer cell. I hope this helps. Have a wonderful day. Be blessed.