Today, I'll be talking about the open source project, Open Dataology, which is the LFAI Sandbox project. In the last OSS, we gave, this is where we introduced the project, and we gave an overview of what this project's about. So I'll be doing a little bit of that once again today. But today's talk will focus more on what we have done with the project and what we have noticed about dataset licensing in general, and how we might fix it and what are the risks, like just an overview of what the landscape and what we can do as a community. So before I go further into that, I just want to give a quick introduction about myself. My name is Gopi Krishnan Raj Bahadur, and I'm originally from India. I have a bit of experience, both as a software developer and a software researcher. I first started my career as a programmer analyst, and then I worked as an engineer, software engineer, and I went on to Canada to do grad studies, and then I started working with Huawei. So that's kind of my background. I kind of come from both the worlds. So before I start the talk, I was asked to put this disclaimer by my company, all the views are mine, none of it's my company's. So there we go. Open Datology, this is the project. This is the logo I wish. I hope you can remember it, so that if you're interested in what I've presented today, you can come back and contribute or just work with us. And I just want to give a quick shout out to all the contributors before I start the talk. Okay, why all of this? As we know, availability of datasets is the single biggest reason why AI is where it is right now. Recently I read a paper about 10 years retrospective on ImageNet, which said that, and I quote, no data, no AI. And that's also ratified by many of the articles that has been written and the market size. But I call your attention to this figure here. So Andrewing, who is a very popular researcher in AI space, actually proposed this graph where the performance of the deep neural networks, which is kind of the reason why AI is popular right now, is directly dependent on the amount of data available. So data is everything. How do we get this data? There are only a few ways there are finite ways. One is we can go buy the data from somewhere or we can create our own dataset or we can use an existing publicly available dataset. And when we're using an existing publicly available dataset, we can go and get a dataset that is already pre-curated nicely like ImageNet or we can hit sources like Google or Flickr images or many different sources that are available and collect our own dataset. However, similar to open source software, all of this data comes with license. For example, some of the common, I just put some of the common datasets over there like ImageNet, cityscapes, everything has a license. It may look different and it may be in non-standard formats but they all have licenses and each license has rights and obligations associated with it. So rights is what one is allowed to do with the dataset and obligations are if you're going to do something with the dataset, what are the things that you have to do so that you can continue to enjoy the rights? Say for example, and this is a more detailed view of the same thing, for example, rights could be something like you're allowed to distribute the data. However, if you distribute the data, it must be under the same license, something like that. However, and this is not new, like everyone who's been using open source is kind of aware that licensing's been going on for a long time and people kind of have an idea of how to do open source licensing well. However, for datasets, there are unique sets of challenges that makes using much of the methods that we know from open source directly hard. So for example, some of the key challenges are provenance-related challenges, linear-related challenges and license-related challenges. So what do I mean by provenance-related challenges? Many of these datasets that I'm talking about are available in multiple different sources. For example, you could download, let's say ImageNet from either PyTorch website or from the source website or from many other GitHub repositories and each of them can slap a license of their own, which means that we need to identify the provenance of the dataset. And second, and one of the key challenges which is very unique to the dataset is many of these datasets are created at a different time. For example, C410 was created in 2000, was first published in 2009 and they say that they scraped their images from 80 million tiny images dataset. And 80 million tiny images dataset in terms scraped their images from Google, which was roughly around 2006. So if we go and check the Google's terms of use now, that is not the terms of use that apply for the data that they used at that time. And determining which time range we should use for this license is a very hard problem because no one clearly demarcates this is when we collected the dataset, they say this is when we are giving the dataset. And the other problem is there are many different copies of datasets that exist which always makes it hard. And when I talk about lineage, what I mean is, so if a dataset, say once again, let's take C410, it was derived as I said from 80 million tiny images and which was in turn from many different sources. All of this constitutes as lineage because the final license associated with C410 should respect all the datasets that it used before. So which means that we need to know what are the data sources that it gathered the dataset from. However, datasets being datasets, not everyone specifies where they got their data from. For example, once again, the most famous dataset in machine learning ImageNet, their paper specifies we got the data from multiple search engines or multiple sources, not exactly with sources, which makes it super hard. And the other problem is when we say a code has MIT license or GPL license, we kind of know what we can do and what we cannot do with it. However, when we say, however, for datasets, many of the licenses are custom, which makes what are the exact rights associated with it or the obligations that come with it very unclear. I'll show you some examples as we go through, but this problem makes it particularly unique because many of the licenses don't necessarily take care to specify all the rights. They just leave many things open ended, which makes it very hard to use those datasets, compliantly, which basically means you could use the dataset, but at some point in time, it could come back to bite you. So, what do we want? So, OpenDatology, our project aims, it's an open source project with LFAI, aims to identify these potential license compliance risks when using these publicly available datasets, especially to build commercial AI software because many of the companies also rely on these publicly available datasets to build their software. And we wanna see what are the risks associated with, identify what are the risks associated with publicly available, using publicly available datasets commercially. And we also wanna document it and store it in a central place and open source all our process so that everyone can be aware of all the risks and can also contribute because this is not a one person effort. So, I'll quickly go over the process that OpenDatology currently uses to identify the risks. First, if one were to use a publicly available dataset, this is, for example, if you wanna use CFR10 dataset to either commercially distribute it or release the dataset with the product, with the model or commercialize just the model output. This is the process that we propose that one uses. We wrote this up as a paper and it's under minor revision. So, the first phase, before using the dataset, we ask the AI engineer or whoever wants to use the dataset to extract its license, identify its provenance using the format that we specify and the format that I would show later, and the lineage. So, these three details are important because those would be the details that a lawyer would need to conduct compatibility analysis and understand all the constituent licenses. Say, for example, when we are doing CFR10, we first wanna extract the license, which is the license available on the official dataset. And if you'd read this license, you would understand what I was talking about about how custom licenses being very unclear. It basically says, cite the dataset if you intend to use this dataset. How you can use this dataset? What are the uses that you're allowed to? It's not very clear. So, once this license is extracted, we wanna locate the official data source and extract all the metadata associated with this license. Initially, we wanted to do this with a format, but now we are working with SPDX and trying to use the dataset profile of SPDX to collect the prominence details and all the details associated with the dataset so that both the prominence and lineage can be recorded. And then, identifying the lineage of the dataset is slightly more complex in the sense that we need to trace the dataset creation process, which will tell us what are the data sources from which this dataset was created. And then, we have to locate all these official sources and extract the licensing range that I was talking about earlier about when exactly did they collect the data from these data sources. And then, we identify the actual licenses. And once we identify each of the licenses, we give all the lineage prominence as a data profile to the lawyer. And the lawyer takes these licenses, decomposes it into a format like this. Why is the format like this important? As I was showing you earlier, there are many different, like the rights and obligations are not very clear. And there are many unique things that you can do with the dataset in context of an AI software. For instance, commercializing just the output of the model or if a model was built with this data, can reverse engineering on the model be allowed? Things that are unique to AI software that can be done with this dataset. So, and we don't want any ambiguity. So, we want to clearly record it using this format which is an extension on the Montreal Data License format, which is proposed by Yoshio Bungio. And we, so once all the licenses are decomposed into this format, the lawyer does in compatibility analysis and finds out what are the licenses what are the rights that are finally allowed and what are the obligations that are final too. So, if you look at this, after analyzing the license of all the C410 data sources, we, the lawyer found that tagging, distribution, re-represent or commercialization of the AI software built with this data is not allowed. And in fact, all the three scenarios were not allowed. So, this kind of spurred us on to analyze more datasets. But before that, we also wanted to make sure that our process can work for a dataset that are being curated from different data sources. The only difference that we would need is because we are curating the dataset ourselves. We would know the provenance and lineage. So, it doesn't need a process of going and finding it out. However, this is whatever, this is the process that we use in Open Dataology. This is the process that we came up with to ensure we are able to identify all the license compliance risks and we are happy to say it works. However, the part that I wanna really present this time is this. If there's one image that you can take home with, take this home. Data set licensing is scary. It's really scary. Like the guy is saying there.  And most importantly, we did not do the lineage extraction fully because 221 datasets is a large amount of datasets and lineage extraction is hard. You have to read through all the papers, identify exactly what datasets they use. So, we wanted to first do this without the lineage extraction and once we have built more of a community, be able to do more of this lineage extraction. The first thing, I wanna start you guys off slow. First scary part is about 107 of those datasets use custom licenses, which means that identifying the rights and obligations properly would need legal expertise. It's not like we already know. Second, among these licenses, among the 44 datasets that use the standard licenses, we found 81% of them use Creative Commons. There's 10% that uses MIT and there's like 9% that uses others, which is either BSD or ODBL. However, both MIT and BSD licenses don't necessarily specify a lot of machine learning specific use cases. Neither does Creative Commons actually. So, this is something that I wanted to go along the route of Jim today morning. So, at first, when we saw this, we were like, oh yeah, standard licenses are used, but then the scary part is they use Creative Commons license because as a research paper, the Montreal Data License Research Paper that I showed earlier says Creative Commons license is a great license for copyright specific and artistic works in particular. However, they don't have a lot of use cases. They don't necessarily specify all the rights and obligations associated with building an AI software. More importantly, the notion of derivative work, particularly for AI software, is very ill-defined. So, which means that Creative Commons, while it might be a good starting point, doesn't necessarily help. Are you scared yet? No? Okay. Let me go further. We analyzed these data sets, right? Like, in the first level, and we found that 65% of these data sets, you cannot use them commercially. Like, there are risks associated with using them commercially. Let me not say assertive statements. There are risks associated. And how about now? Okay, finally. Our results are only based on the first level analysis, which means that if we go dig all the lineage of those 35% of the data sets, we might find risks associated with using those data sets, too. Which means that none of the publicly-available data sets can be used easily or, like, trivially. However, without naming names, I would say most of the commercial offerings of models are built on these publicly-available data sets. It's out there. You can go check a lot of model stores. And these are all, like, I'm sure most of you are aware about the GitHub co-pilot issue and how they're being sued. So, I'm not saying anything might happen, though. And yeah, among the 65% risks, the key risk is commercial use is not permitted. Some of the other risks are, like, no licenses allowed. The source is untraceable. Or there are other scary aspects associated with it. But once again, 62% of them explicitly state that you cannot commercially use this data set. However, many of these are being used. So, enter open data-logy. Now that I hope I've highlighted the risks enough or my friendly ghost has scared you enough, I wanna show what we can do about it and how open data-logy is trying to do something about it. So, we wanna, like, we have four key thrusts of the project. One of it is we wanna develop tools that help do this analysis. We wanna develop the process that I showed because the process is right now manual. The process is the first thing that I demonstrated and the process is very manual right now. Even though it's comprehensive, it's hard to follow. So, we wanna create tools around it and we wanna work with standard communities so that all the metadata can be recorded in a standard format and the community can be encouraged to record this metadata in standard formats so that consumption and analysis becomes easy and we wanna build a community around it because as you might have noticed, analyzing the risks associated with each data set is both hard, time-consuming and requires legal expertise to be careful and legal expertise is in short supply. So, I wanna kind of quickly take you guys over the tools that we have. Right now, we have a portal which documents or which has all the metadata that we analyzed stored there so that if anyone wants to see if this data set is something, if they are interested in using this data set, they can go look up the data set and see what are the risks, what they can and what they cannot do with the data set. For instance, if you go into the license, it would say there are two views. One is the data set view and one is the license view. License view will clearly say what are the things that can be done and cannot be done and what are their obligations and similarly, if you click on a data set, it'll give you a similar view like this and the second one is if you have a data set and you wanna put it out there and you wanna clearly specify what one is allowed to do with your data set and what one is not allowed to, we have a tool that helps you generate the license in the format that I showed earlier by answering a few simple questions. So you can just answer these questions, say that I'm okay with people commercializing the output of my model, then those rights would be allowed and you can specify what are the obligations. And then community, we are on GitHub, we are welcoming contributors and GitHub space has details of how contributions can be made and we are pretty active and please check us out and as I've shown you so far, it's a big problem and it's hard for the eight people that I showed earlier to solve it. So anyone who's interested, please reach out to me or reach out to the project and we'd be happy to onboard you. And finally, we're also, as I said, we're also working with the standards community. In particular, we are trying to co-create the SPDX dataset profile and that is an example of how C410's data profile can be written using the SPDX version 3.0 and later if you're attending the compliance summit, I'll also demonstrate how we can use this profile to conduct the license compliance analysis but the key message that I wanna say is we are trying to make it easy for people to do this compliance work by making sure all the data is available in an ISO standard so that if dataset start putting their metadata in a standard format, one would be able to extract the data and analyze the compliance that's associated with it and similarly, we are working to ensure that this format of license which is an enhanced Montreal Data License is being adopted widely in the community to specify the rights and obligations associated with datasets instead of using either code licenses or licenses that were not created particularly for datasets. So that brings me to the end of my talk. I opened DataLogy Lobs Contributions and this is all the ways you can help. It's a very young project. We are aggressively trying to make sure that there's more datasets in there so that it becomes a repo that people can come and reliably rely on and some of the key things that we are missing is one of the first thing is legal expertise. All of these licenses as I showed, so many of these licenses are custom licenses which means that someone with the knowledge, legal knowledge has to go through them and tell us what rights can, what are the rights and what are the obligations? Like the software engineers, the AI engineers, the developers, we can extract all the data, we can do a lot of these things and but someone has to help us interpret it and once it's interpreted, the knowledge can be stored and that's where the tool development comes in. You wanna create the whole infrastructure where once a lawyer gives the rights and obligations decomposition of a license, you wanna be able to store it in the infrastructure and if there are compatibility analysis between two licenses that are already done, you wanna be able to use it next time and not disturb the legal expertise. So hopefully it's a exponential decay where the amount of legal expertise that we would need as the project goes would be lesser and we want people to help us verify the provenance that we already have, the lineage, conduct lineage analysis. As I said, lineage analysis is hard so any help there would be amazing and a lot of these are being, as I said, done by a very few people right now and as thorough as we are, we could make mistakes so you guys can even second this, like proofread our work or check our work, raise issues that would be amazing or help us create documentation tutorials and there's a lot of research to be done here if anyone's interested, like automatically extracting provenance, automatically identifying lineage, doing this compatibility analysis using first order logic, all of these are amazing research problems that people can write their PhDs on and it's a rich field and we also wanna work on standards creation and we'd be happy to talk to any community who wants to standardize the metadata and once again, I purposefully kept this talk shot so that we can have more discussions and if not, I can let you guys go soon but once again, I'm Gopi and this is all the addresses that we can be reached at. Thanks for listening and I'm happy to take any questions now. Yes, thank you for the nice presentation and we all know that it takes a very long time for community or developers to realize the importance of the open source software license so compared to the software license, so in what phase is the data side license now? So in your opinion. So I used to always start this talk of saying that data set licensing is right now like how open source licensing was 20 or 30 years ago and only messier. I didn't do it this time because I didn't want to be harsh, but I did it again. But yeah, it's in very early stages. People are starting to realize this is important but there's not a lot of momentum, there's not a lot of understanding and there is like even when a lot of consumers think that it is important, the only thing that they end up doing is they take the license that is slapped on the data set and see, oh, it's creative comments share, like all I have to do is like just share it in the same format so I can use it. Or sometimes it's like, oh, please cite the data set. C410 says please cite the data set if you're using the data set. So they think that it's de facto yes for anything that they want to do, but it's not. And they have to go do the prominence analysis, the lineage analysis, and do an interaction analysis to understand that there are many risks. Unfortunately, the community is not thinking at that stage right now. Okay, thank you very much. You're very welcome. Yeah, maybe another question. So for the software, the open software, so we have the GitHub to host the source code so we can do the license analyze or some other works. So for the data side, is there some platform to host the data side so we can do such thing? Yeah, there are several platforms right now. Say for example, there's a platform called Schieffer platform from Mindsport. There's Huggingface, there is Kaggle, there is papers with code. All of these host all the data sets and sometimes they even put a license on it. And like most of them put a license on it, all of these central repositories. But the problem is that they're all declared licenses, none of them are concluded licenses. Yeah, thank you very much. You're very welcome. Thank you very much for the presentation. And I'd like to understand about the lineage analysis correctly. So data set has a license, but the data set has many data. And I think we needed to respect all data's license. So lineage analysis means analyze each data's license. Is my understanding correct? Yes, so yes, you're absolutely right. There's an important problem there though. Here, identifying the minimum licenseable data unit. So I agree with you that we have to trace back all the way to the individual data point. However, some of these data sets, we are talking about billions of images. It's very hard to do it at scale. Let's put it that way. So right now, we're trying to stop at least at the level of if this was extracted from Google images, let's at least see if it's respecting Google images licenses. And but you're right, eventually in Flickr, they say that user license must be respected. So if it's Flickr, if you wanna be completely thorough, it is important that it goes to the individual data point level and puts all the licenses together. It's a hard problem. Thank you very much. Thanks for the question. If there are no other questions, thanks a lot for coming to my talk, even though it's the last talk. And thanks for the questions. I appreciate your interest, yes.


All right, everybody, welcome back to another OpenShift Commons briefing. Today, we have Ricardo Zanini, who's from Red Hat and a senior software engineer. And we're going to have a topic that I don't really know a lot about, because I haven't heard a lot about it, which is why we invited him here to talk about event-driven applications using Cogito serverless workflows with NK-Native. And so K-Native, we've had a lot of talks about, but Cogito is, I think I'm pronouncing it, mashing up the name wrong, but we'll let Ricardo tell us a lot more about this, and then we'll have live Q&A after the presentation and the demo that he's going to give. So take it away, Ricardo, and introduce yourself, tell us what you do at Red Hat, and tell us all about this. Sure. Sure. Yes. Thanks for having me, guys. Well, my name is Ricardo, like Diana said. Today, we're going to talk about event-driven applications and how we can create those business applications using the serverless workflow specification and NK-Native platform. Well, I'm a software engineer. I work with the Cogito, actually, project, and I'm also helped in the CNSTF serverless workflow project specification as well. So we work in the both ends, doing the specification side, specifying the workflow DSL, and also in the implementation of the Cogito engine. Well, let's get it started. Let me see if I can. All right. And then, Gina, today, I'm going to introduce you, guys, the serverless workflow specification and what we are doing there. Just a brief introduction to the project. I will try to not talk too much about it, because there's a lot of surreptities that you should take a look in the specification and figure yourself all the details. And about the implementation itself that we are working on right now, that is the Cogito project that we call. It is a business application project for designing and creating business applications. And after that, I will introduce a small use case for someone to feel comfortable. It is like an online store or the processing. So it is a super simple use case. Everyone is super familiar, I hope so. And we are going to run a super short demo as well, simplifying how the workflow is reacting upon events and what he is doing on a K-native overall platform. So about the CNCF serverless workflow specification, we say CNCF because the serverless workflow project, it is a sandbox project on CNCF institutions. So you can go there in the sandbox project and you see the serverless workflow specification project in there. And we are accepting contributions and it is open source, pass to license, you can go there and figure things out, ask questions and maybe introduce some new features that you like. Or if you are keen to implement the specification as well, we can help. We have SDKs, we have a lot of tools around the specification that can help you and to understand, to implement, maybe use the specification in your company as well. So what it is, the serverless workflow specification, it is something that we are targeting. It is to create a declarative workflow language. So based and to target for specifically serverless computing technology domain. So that means reading events, producing events, consuming events, correlating them, all functions outside the scope. Have all those things run, it is mostly, we can out-escalate the functions up and down and do all those features that you already know about serverless computing. But having these in mind in the workflow language as well. This quote I brought from the website. So you can go there and visit the website, understand what it is with more details about that. Why? Why we started with this crazy project, why it is important for us? Well, first, we believe that workflows can capture and organize business requirements. So what it is, you can, instead of grab your maybe Java goal or Python code and bring to your business analyst and explain to them, hey, here's what we are doing in this service. Here's what is going on there. Look at these conditionals here, we are doing this and that. Instead of that, you can just bring the workflow to your business analyst, to your business person and explain to them what is happening there and they can understand. They can even help you design the workflow or they can even create a workflow themselves and handle it to you in order to have that run into a runtime maybe. So that's one of the idea behind it. The specification also targets to be a vendor neutral platform independent workflow language. So what this means, means that we do not tie the specification with a specific vendor. It is not code. It is not anything like that. It is just the specification. Anyone out there can take the specification in your runtime and have a workflow run time running based on the specification. It is platform dependent because we are not tied with a specific technology. We do not say, hey, the workflow must be implemented in Java, for instance. This is not the case. So anyone can just bring the specification and share and use that as they please in their implementations. Imagine that having this common way of describing a workflow, we can potentialize and creating some common libraries to be shared among all the runtimes, the implementations itself. We can create tooling around the infrastructure around all the workflow and having all of them to have a common way to describe something and create something together. That is the nice of being an open source specification. So like I said, being vendor neutral, we increase productivity, productivity and learning curve. You don't have to learn all of those workflow language that is out there because nowadays if you go in the IT news, you see that every day, every week, we have a new workflow engine out there. So instead of that, we are proposing this, like a specification that can be run in lots of runtimes. And those runtimes can be offered by, to be run on Kubernetes and OpenShift, Google Cloud can have a runtime for the specification as well. AWS, Azure, whatever cloud provided out there, they can offer their own workflow service based on the specification. That's our win-win situation that we believe that everyone implements the same DSOL for specifying workflows. So the users would gain a lot of that. The specification is based on standards. So we looked around and saw lots of standards out there. So for instance, to define an event, like I want to consume this event in order to start my workflow, or I want to produce an event at the end of my workflow, or I want to produce an event if I go through this branch on my workflow. And we use the cloud events specification to define these events in the workflow definition file in the workflow definition itself. You can also run, and not run, but call external restful services, for instance, using the workflow specification. And we use the OpenEpi to declare how you can create those calls from the workflow itself. So when you, for instance, you want to call, when you receive an order, you want to call an external service to validate your order to do something else. And it is a restful endpoint. You can express that call using the OpenEpi specification. So you bring the OpenEpi interface into the workflow, and you specify which function in there that is defined in the OpenEpi specification that you wish to call using the workflow DSOL. Also, it is, of course, based on workflow patterns. So there is execution handle order, error handling, data management, data transformation. So there's lots of patterns that we envisionize in the, that we, that we view as useful to be, to have in the DSOL, you know, in the specification itself. You can see lots, all those information is in this link here, that it goes to the specification, and you see all of the features that we have in there. Well, the workflow itself is based on a state machine diagram. It is, I say that it's based because, you know, we have start and end conditions in our, in our workflow. So when you start and you go from state to state, you know, in a fluent manner. So each state is responsible to do something. It is responsible, for instance, to produce an event or to call an external function or to decide to split between two brands or to go to one branch or to go to another branch. I can call not another subflow, for instance, and there's a lot of type of states that we, that we have in the specification. As I said, you can go to the specification to see in the details, every one that we support that we have in there. If you, if you feel like that we don't have something that it might be interesting, you can propose, you know, a PR or send or which are out to us and say, hey, this should be nice to have in the specification.  So in between, you have this pipeline of states, you know, going through one after each other and then you can have like a data processing with the data that you're expecting to receive on your workflow. The specification has like those three main, this is the backbone of a workflow. Let's say this way, we have functions, events, and of course the control logic of the workflow, the first thing is the functions. We define the functions is, for instance, a call to a restful service or a call to a GRC API as well. So you can define the functions, the spec file of the open API, for instance, the idea of the function that you'd like to call in the section of the workflow. In the event section, you declare the how you're going to consume and how you're going to produce those events within your workflow. So for instance, you are listening to our audit event and you're producing maybe shipping events or you're producing approved, order approved events or in a, you know, in a scenario like a bid service, you are listening to bid events and you're producing maybe notifications for our users that are listening to that bid, for instance. So you can go crazy and do whatever declaration of events and as you please as your business needs in this section of the workflow. And it states it is not the least, but not the least important part of the workflow control launch that is where you describe the workflow and what this workflow is doing, like the data processing and how things are going to go there, like calling these functions or producing these events that you're declaring there or consuming events that you declare or branching the workflow, the run of the workflow into more sub flows of whatever control logic that it'll come up with or your business need in this part of this section of the workflow. As always, always lies that I linked here to a specific session in the in the in the specification so you can go there and see for yourself all of the details of each session and understand more in details of what we are going trying to express in here. I'll try to be brief because the presentation can be long if I stay on one or other details. Well, every time that we like present the specification, talk about specification events, people ask about implementations. So, well, it is nice to have a specification and it is also have not nice to have an implementation, right? Because that's the point of having a specification. You don't you don't just create a specification to be in there. You create specification to be implemented. So, we took the specification now talking about the Cogito project. We took the specifications and said, hey, there's a petition here when we can actually implement this specification and offer to our users a way of then to declare the workflow using JSON or EMO files in a declarative way. And also if there are other vendors out there implementing the specification, they can migrate to Cogito easily, you know, using the same thing that they learn with this DSL in other implementations with Cogito as well. So, it is a work in progress. So, we are in tech preview actually right now, you know, community-wise of course. There is some limitations of the implementation that we also we are working towards to implement, but the basic things are there and I'm going to show you guys a little bit about the Cogito itself.  So, I'm calling like a cloud-native solution for you to build business applications, so business applications that you can solve business problems. And then what I mean by that, it is like we have an engine that is capable to process rules in a specific domain driven DSL. So, imagine that you're an insurance company and then you want to define how you're going to process that, you know, super details, lots of computations and calculations that it is more or less cumbersome to have that, you know, in your code base. So, you're externalizing rules and you have all of them defined on those rules and you can give to the engine in order to run it. You have also, we have also an engine capable to run complex decisions based on the DMN standard. We have, of course, serverless orchestration feature that is super brand new, something that we are working now that is the implementation of the CNSF serverless workforce in a specification. We also have an agent capable to run BPMN based files. And we offer some tools focused on cloud, so far you can bring everything over your business applications that you created with Codege to the cloud. So, we have a specific tooling for that. We have like editors, since it is a business application driven project, it is, of course, we have editors for you to design and create your BPMN process for you to create and design your DMN decisions as well, your rules, and that you can download on a VS Code mark at place. We have an online editor as well. If you go BPMN.new or DMN.new, you see our online editor there, and you can start scratching your process or your DMN right away. You can also download it from our website, this is the download of the editors.  That's correct, the correct word. There's super popular frameworks out there, Druze and Druze, and a process based on BPMN. We are also working on supporting services capable of giving support for your business application. So, for instance, if you run a process and you like to see what is happening inside that process, we have some supporting services that is capable to run on cloud that can give you a glimpse of the process itself and what's going on out there. Or even a user task, for instance, in a given process, you can go in this supporting service and see the tasks and approve a task or go forward with a process and et cetera, so there is a lot of features out there in those supporting services as well. And like I said, some cloud tools. We have a specific Kubernetes operator for deploying Code2 applications on OpenShift or on Kubernetes, and I'm going to use the operator in the demonstration. So we bring and pack this all together, and that's what we call the Code2 project. So this is a feature of a handful of components to help you design and create your business applications and deploy it on the cloud. Let's go to the use case straightforward. You mentioned that you have this online store, right? And after new orders, you create an event in your architecture. Every new order we create a new event and then this event is being consumed by this order approval service. So the service will be some sorts of rules and some sort of business requirements, they say if it's approved or not. So that's the state of the architecture right now. And John Doe, the CEO, come to you and say, hey, before approving the order, I'd like to go through a shipping and fraud verification first. So whatever comes a new order before approving it using whatever features that you have now, do a shipping and a fraud verification for me, please. And I like to run that in parallel because we can then concentrate the approval in the end of this order processing. So it came up with, okay, so what about like creating a pre-processing workflow? So when it comes a new order event, we are able to split this process inside like two events. You can create two events after this workflow within this workflow. We create a shipping hand list event and a fraud evaluation event. So it's component in the architecture can listen to this event and react to point it and do whatever they want with that. So in our example, we have the International Shipping Validation Service and we have the Domestic Shipping Validation Service that are listening for the shipping events. And we have the Fraud Evaluation Service that is listening for the Fraud Evaluation Service. Also we finish with the shipping validation we meet a new event saying like shipping verified or something like that.  And in the end, we have our order approval service again and you can correlate all those events by like, for instance, the order ID and say, hey, I received the shipping approval, I received the evaluation approval and I received this new order event. So I can correlate the three of them and then they can proceed doing whatever they want. So this is a small excerpt of a small processing use case in our example. So I have like five services running around, none of them knows about each other, they just listen about events. So that can be an event-driven architecture, an event-driven applications, they're just reacting upon events and emitting new events and they can add new components in your architecture. So you have this flexibility of creating things around your architecture, removing an event, adding another. So for instance, tomorrow, you won't ship internationally anymore and just remove the international shipping validation service. There's no use anymore, right? You won't have to code something new or anything like that. Just remove an event from your, you just remove a service from your architecture and you stop doing that thing. Or no, wow, I wish to add some new capabilities. So I add a new service in order to listen to this event and do whatever they want. So this is more or less what an event-driven architecture the benefits of an event-driven architecture can give to you. Async processing, this kind of flexibility, composition and orchestration of events. That's why we are talking today about the workflows, for instance. So let's try to zoom into this first service, the word pre-processing workflow. Let's see how it is doing its thing. So I draw this workflow like in order to pre-process my order. So I receive this new order event and I will process the order. I split into two parallel states saying I will handle fraud in one state and I will handle shipping in another state. So I can figure which kind of events I need to produce for my architecture. So this is happening inside that pre-processing workflow service. So this is more or less what looks like my workflow. Let's see how this workflow works and how I'm describing this workflow in a Yable format using the server's workflow specification. So I broke the workflow into three workflows. I have the main workflow, the water workflow and I have one state here that we call the parallel state, calling those two sub-flows, the fraud handling workflow, the shipping handling work. So let's take a look at it. The first part of the workflow, it is the, I call the headers. When we describe, we give some information about the workflow. So the name of the workflow, the identification of the workflow version for you to control the version of the workflow, some description for it. And I will say which state I will start my workflow in this case, the receive order. The second part, I have the events definition when I define how I will consume that event. So let's say that in this particular use case, I have the order event type, cloud event type. So someone out there, any service out there is creating, is producing this ordered event, cloud event for me and I'm capable of listening to it. So the first state that receives the receive order, it is capable of listening to this event, the ordered event here that we tie with the name, like order event name. I have the event by his name, it is the ordered event here. And when I receive this event, I say transition to process order. And this state process order, which I call type parallel, I will create the branch fraud handling, shipping handling. Let's say my engine will call, at the same time in parallel, those two sub flows. And once they finish, I end my workflow. And to create those workflows, I'm using the server's workflow plugin and you can download it in the VS code marketplace.  And we have this nice feature that is you can generate diagram using any workflow file. So it uses the, you know, this as simplification of the event diagram not from the UML. So we have a start, we receive the order, it is an event state, we process the order in a parallel state and we create two branches. So let's take a look into the first one, the fraud handling workflow. Same thing. I have the name, which state I will start, the version, and the events that I'm going to produce. So I'm going to produce a type event orders dot fraud evaluation. And let's take a look into the states. So we have a data conditioning here, which is when we start this workflow, we analyze the data inside the input of my workflow and we perform a JSON path expression into this data. And if the total of my order is greater than 1000, I would say that we need fraud verification. If it is under 1000, I won't need fraud verification. Of course, this is super lame. An example, in real use case, you won't do things like that. You can create an estate before that. You can call a service to evaluate some aspects of taxes or behavior of the customer, whatever thing you want. And then you can say to the workflow, hey, this order looks like they need to perform is to be validated the fraud or something like that. So for this case, to simplify the conditions, we have this event type switch and I have these conditions in here, very lame, but it is super nice. And I inject into my data state a new attribute to my workflow, the fraud evaluation equals true. And then I produce the event fraud evaluation. And this event contains in the data attribute everything that I created here in the workflow. So it goes with the fraud evaluation equals true and the order information as well. So anyone that is interested in the orders that fraud evaluation event can do something with it. All right, so let's do the same thing that we did and let's generate diagram using the plug-in. And as you see, we see that we have like a fraud handling sweet state and depending on the condition, I'm going to say that we're going to produce a fraud evaluation if not otherwise we just end our workflow. Well, very simple and hopefully you could understand what is happening there. The other workflow is the shipping handling workflow that is being executed at the same time as the other one. More or less the same thing, we have now two types of events. We have international shipping order event and we have domestic shipping order event. So depending on the context of my order, I will emit, I produce an event like an international shipping order event or a domestic shipping event. And more or less the same thing that we did there, we have also a sweet state case here. And the first condition it is like, if it is within US, it is a domestic shipping. If it is not, it is an international shipping. Again, super lame example, in a real use case, you can call a shipping, maybe you can call it maybe a Google service for localization to find the address, the correct address and then to figure some other things out of whatever and enhance your order data with some output for this service, for instance. But in this case, after if you really realize that this is a US order, so we transition to domestic shipping, if it is international outside US, we handle for international shipping. So for domestic shipping, I'm going to add a new attributes to my data that is shipping domestic, otherwise I'm adding shipping international to my data and I will produce an international shipping order and I will produce a domestic shipping order. Again, super simple, but you can see the powerful of something. So imagine that you're talking with a business person and they can bring the DSL to them and explain, hey, this is what is happening inside this microservice. This is what, which kind of events that we are creating, that we are consuming and what we are doing with it. So for instance, in a real use case, you can say, hey, I'm calling this Google service and we can receive this kind of information and we can process this information as we please using the workflow. Let's see how it looks seeing the generated diagram here. So we have this, the shipping handling state, it is a sweet state and there you go. It can be a domestic shipping or it can be an international shipping as well. As you see, in the end, we are going to produce an event being international or domestic shipping whatsoever and we are going to win. Well, that's what's looked like the event when you see it in this perspective. And of course, this is the, when you are designing and we are creating your workflow. When it turns out to deploy and into a Kubernetes or on a ROPE shift cluster, for instance, or in the cloud, you can use the capabilities of the Kuchita. We have CLI, so in this case, you can deploy the workflow using this command line, like Kuchita deploy, that is the action, the verb of what we are doing, order server's workflow, that is the name of the service that I gave. And they can add all those YAML files into the CLI and the CLI will push, in this case, to an open shift cluster. And in there, we are going to generate code based on those files. And we will create an image, a Kuchita process runtime image into an internal web registry. And the Kuchita operator will be capable to create the Kubernetes resources and the candidate of resources to deploy and have this, to manage this workflow, running within the platform itself. And of course, for this use case, specifically for this working with events with Knative, we need the service platform. This also works on Kubernetes, but on Kubernetes, you can build within the cluster. You have to build the image yourself and then push the image to the cluster and the Kuchita operator will take your image and it will perform the same steps. You create the Kubernetes resources, you create the Knative resources for you and for your service to be connected with the Knative broker in this case. Then I see that we have some chat going on there. You'd like me to stop here and or we can answer the questions after the... Let's answer the questions at the end. And most of the chat is me trying to get people to ask questions. So this is a good point. If people have questions, type them into chat and we'll make it happen at the end. Thanks. All right, no problem. Yeah, I know if I'm rushing or not. So you tell me. All right. What else do we have that service deployed on OpenShift? This is more, sorry about all the technical details, but this is how it looks like from the Kuchita operator perspective how we deploy the service in there. So our service will be like an event source or this event source can be any other thing. In this case, we have the service workflow in here and we are listening to the new ordered events coming from the Knative broker and we're consuming using Knative event in triggers and that triggers an event for us to listen to it. So the order event comes here into the broker and we listen to it and we start our workflow. Our workflow will produce events to the broker using sync bindings. So we produce events to the Knative broker and any other service out there, any other, you know, can be a Knative service, can be any deployable pod or anything else, in the spectrum of the Knative service platform to be listening to this event and to react to it and this is what we are going to see in this short demonstration. Let's me see. I think this is not in, let me try to zoom that. Well, can you guys see this? Yep, looks great. All right. So I'm producing an event to the platform and indeed the country is US. The total value is 1,001 and is an iPhone 12 order. So I'm going to push this event to the platform and you see what will happen in there. So in this terminal here, I have three listeners of our Knative, of our workflow event producing events. So in the top most, we have the fraud evaluation service. So we are listening to the events from the fraud evaluation service. We have the, I'm sorry, the shipping international here in the left and the domestic shipping here in the right. So once one event comes to the, either to the fraud evaluation or to the international or domestic shipping services, you will see the produced event in here. So let me push the event. It is like a fire and forget type of event. It's taking some time because my internet connection is not that good. So I push the event and we can see that we didn't have any pods and listen to that because those are Knative services. And we receive a fraud evaluation because the value is above $1,000 and we received a domestic shipping because the country that we shipped our iPhone it is within US, it is a word from the US. So that's why it is a domestic shipping and you can see it either. And we go to the OpenShift cluster, you can see, hopefully you can see if my international connection helps, help, help. It is a live demo, damn. Yeah, you already saw those, because I'm fashion for the pods of the shipping international service and you'll see there is no resources in there. And yeah, I don't know what is happening. I don't know if I need to refresh this, but whatever. And you'll see that is this event coming in here and this event coming in here. So there is some extensions as well. So we have some information about the process itself. And here you can see that the fraud evaluation service received the fraud evaluation equals true and the domestic shipping service received the shipping domestic. And this shipping domestic it is not, it is in here but the fraud evaluation is not in here because we run one after the other. Well, I see, yeah, we can see the pods in here and because we were talking, Connecticut will destroy the pods because they are not being used. So that's why we are seeing terminating me here. So let's say that we have, I don't know, maybe a new order from Italy and that's above $1,000 as well and I'm gonna send it quickly this time because the pod is already there. I'm creating the shipping international pod in order to listen to this event and react upon it. And the same thing, you won't see fraud nor domestic here because we entered in that branch that we just received from the international shipping. So now try to imagine this in a real use case where you have to equalize your resources. You have to save resources in order to have a more profit company. So in this case, let's say that you receive, I don't know, maybe 9% of your orders, they are domestic. So you don't have to have like the international shipping and handling services be up there all the time. You can have the workflow to control all the logics and you can break through into categories. You can break your domain into more specific things and be flexible enough to distribute your services around your architecture.  So this is a nice example, a nice use case for YouTube and maybe reevaluate some of those things that we are doing. Because normally people create like, oh, huge microservices, they are doing lots of things. And maybe sometimes it is nice to just break into specific parts and make them run into this fashion. Like I can create like lots of domestic orders or lots of international orders and having this part of my system not producing services on producing events, not whatsoever. So I can reduce my cost and sometimes that will help a lot. Well, let's get back. There's some much more things that I'd like to discuss. There is lots of details and strategies about it. I know that it was super quick and brief things. I introduced lots of concepts, like the cloud events, sorry, the service workflow specification, the code to project, the how to deploy, the K-native. There's lots of things out there. And also lots of resources. You can go there in this on our websites and see what we are doing and the use case that we are capable to help you solve your business problems. So reach out to me as well. I have Twitter account. You can send me a DM message or send an email or reach out to me into GitHub or whatever. I'm up there, you can see. And I would like also to ask you guys to take a look in the blog as well. We are trying to update the blog twice a week with new content and to give people an understanding of what we are doing in Cogito and the business applications in general and how you can solve your business problems. And if you're curious about the demonstration, the example itself, you can go into these well holding here and see all the source code. You see the workflow. I create some scripts in there for you to deploy in your Kubernetes instance. We have the image already in there. No, the Docker file, sorry, already in there. So you can go download the Docker file, run, use the image, run the image locally. You can play around this demonstration, whatever you want. And I would like to invite you to see the presentation from last year that Tihomir and I did. Tihomir is much better than me explaining the serverless workflow specification in there. We go through more details about the specification and if you're curious about it, just go in there. And of course, the serverless workflow.io website, you have all the links that you need to know there. Our Slack channel, our mailing list, our weekly meeting and everything else, you see the resources, okay? Well, thank you, that's it. I don't know if we have any questions or not. We've got some time for questions and there's a couple of them in the chat. So, and I'm gonna try and I'm gonna do them in reverse order, because I think you answered some of the earlier questions already, and Eric is asking, why was K-Native chosen to increase the workload capabilities and not an auto-scaler? Well, just for the demonstration purpose, actually, we can use auto-scaler. That's not a restriction whatsoever. I just found that more simpler to show to users what we can do and then in the example, you will see all the K-Native resources for you to replicate the exact same thing into the environment as well. So, yeah, no, not particularly any reason whatsoever. But for the K-Native eventing part, it is because the Kojta engine, actually we have these connectors and the Kojta operator as well is coded and we have this support for the K-Native eventing platform. So we created a specific K-Native eventing resources so for the K-Native eventing part, that's why. But for the K-Native serving part, no, it can be whatever thing, the auto-scaler can be no regular deployments, whatever, that's no particular reason. Cool, all right, and there's one other question from Ilyan, is it possible to create custom code? Oh, yeah, of course, because this is a Java project. It's a straight through maybe in Java project. In our, in the example itself, I have a Redmi file here that I explained how, let's see, how you can create this serverless workflow Kojta project from the scratch using Java. So you have to know Java, but yeah, you can add a custom code and you can call this custom code using the workflow. We have a specific, in the Kojta implementation, we have a specific functions that you can declare in here for, you know, like the, you can give a name and then in the metadata space, we have a, what do you call, like a service internal calling. So you can call any Java being from the workflow. So yeah, you can do it. But from the specification point of view, we have the JQ capabilities. So you can create a function expression and then externalize this. We can define here the function that is an expression as a function. And you can declare any, if you're a custom code, it is now related to data handling with the input. You can just create the expression and in here in the workflow itself, and that will work. And I'll say insert. Yes, so he's assuming you can call out to other services during execution. Ilian would like to be able to call out to fraud prevention API that they have. Yeah, absolutely. Let me show you the specification itself. Yeah, you can call any functions. We have three in the specification. We expect the RESTful service invocation or C service invocation and also expressions, like I said before. In the RESTful, you can define like a function like this, let's say, same order confirmation and the operation of this function, it is an open API definition file. And after the hashtag here, you have the operation ID of that particular open API. So for example, let me see if I can find it. Well, the famous pet store. Yeah, yeah. So imagine that you have like this one here, this open API spec here, and it would like to call the list pets function. So you just say, hey, this is my file and this is my operation ID. So the code engine will read this specification and will generate code client code to call this REST service. So yeah, you can call it a third party API and do whatever it wants within your workflow. So after receiving the payload of the response of the list pets, you can do whatever you want in your workflow. Yeah, that's correct. Okay, so someone's now asking, where are correlation keys state stored if used? Well, the correlation ID, it is we are working on the stateful implementation. So we don't have it yet, I'll go to the site. But in the specification, we have the part where we define, let me see if I can find it real quickly. Oh, we're on top of the hour. But let me, let's use the, yeah, here. In the events, you declare the correlation in here. So in this use case that I brought, in the end, in the final order process, so if that process would be like a workflow service as well, because I don't know what it is, it is just an example that I gave. But if it is a workflow as well, you can create the correlation in here in the workflow and say the event, say, hey, the attribute name, it is ordered ID, for instance.  In Cogito, we don't have stateful yet for the part of the server's workflow, but we are working on it. But in this case, we are going to handle that in memory. So we receive that, at the same time, we correlate and we do all the other stuff. But we are looking forward to making this stateful. Cool. All right, well, there's one earlier question. I think you might have answered it, but someone's asking for an understanding of how this relates or differs to camel K. Well, camel is for, I'd say, integration more, most of the time, implementations of integrations. And we do not target integrations. So you cannot like FTP a file or send an email or those things like that. It is not what we are discussing here. And of course, you can implement a pipeline in camel K. This is not the idea. But from our perspective, it is more or less a declarative workflow of a feature that we are implementing in here. It is not like dealing with integration side of the things. I understand that is some things that they can interconnect or we can implement an integration in here. Like for instance, you can call a Twitter API using the REST function, of course, or you can, in the camel K, you can create a route that you go through every step as we created in here, of course. But each, I understand that each feed, each tool has its particular strengths and you should leverage from that. So from the workflow side, sorry, I'd say that for this kind of declarative workflows, business applications that we have, this is a suitable application for this kind of use case. That's my point in there. Okay, cool. All right. And so we are almost to the top of the R and the very first question was, where did the name come from? Well, that's something that people ask sometimes ended. Yeah, oh, I'm sorry. You, you know, I can't explain it exactly why the founders, they come up with this name, but everything that we do in Codito, it is like related to knowledge. So we call ourselves the key. So the knowledge is everything. That's our motto. And because all these rules, decisions, processes, everything is related to business applications and knowledge based. And it is, I believe it's based on, of course the founders can explain it much better than I, but from this quote, Codito ergo son from Renee, this card is, you can read the week, but yeah, and the key because Kubernetes, you know, it is a cloud-based platform. So that's why that's called Codito. I don't know if I answered your question. Hopefully. I think that's great. You know what the best part is? It's not a Greek or a navigation term. So that's really the most wonderful thing. It's like we have completely run out of K words and we're starting it in the Kubernetes cloud-native space. So you've done well. So in, we've got like four minutes left. Is there some new features or what's in the roadmap that what's coming up next that we should be watching out for? Well, like I said, Codito is a working progress of the serverless workflow specification. So the workflow specification is going super in the community. We are creating great things in there, great big companies are interested in the specification. This is a very nice thing from the community side. We are about to release 1.0 in the specification. So this is a nice thing. Hopefully we will see more people trying to implement in it. And from Codito side, we are keen to implement everything that is there in the specification to be 100% compatible with the specification. We are about to bring a JQ to the engine. So you can create JQ expressions in your workflow. And so you can transform or do whatever you want with the data within the workflow. And of course state, this is a very important thing that we are looking for, to implement in the engine as well. As well as the error handling compensation and all of those workflow patterns that we don't have yet from the workflow, from the serverless workflow perspective. But yeah, there's a lot of work to do in there from the specification and the implementation side. Yeah, so if you can share again that resources page, because I think that's a great way to end. And if people want to get involved, then follow the link. Oh, please. Yeah. Yeah, in the front page of the specification, if you go here in the specification, you'll see our GitHub page. And you can see, oh, I'm sorry, all the information that you need. Mainly how to engage with the community. We have a Slack channel under the CNSF Slack. So please go there and say hello. And if you have any other questions, just reach out to us there. We are keen to help. And looking for contributors as well. Well, thank you for making this really interesting and engaging talk. Ricardo, we'll definitely have you back to celebrate maybe 1.0 release. And just keep it, keep us in mind. And there were plenty of great questions today. So thank you everybody for tuning in. And Chris Short for producing in the background there. So really pleased to have you here, Ricardo. Definitely come back and keep us posted enough to date. And everybody join us on the community Slack channel. If you have questions that he didn't answer today, we'll try and get them there. All right. Well, thank you everybody. And again, Ricardo, thank you. I love the hand waving while you're talking. The most expressive virtual event so far. Yeah, I'm trying hard. All right, well, take care and thanks everybody. Thank you guys. Bye.


Most of you who would have some idea about women's rights and women's movements in the US would know that abortion has been a major issue there because US has a large number of very conservative, strong Christian voices which oppose abortion of any kind at any stage They believe that a fetus once conceived is a living organism and it is a life They call it a potential human being or an unborn human being and they believe that women have no right to terminate those pregnancies at any point and it does not matter if the woman was raped and that was how the fetus was conceived It does not matter if it came out of incest It does not matter if the woman could probably die if they gave birth Though all those questions are set aside because it is believed that the human life inside the womb is in itself a life and when you terminate it you're essentially committing murder which they believe is therefore a sin Now about 50 years ago there was a landmark judgment called Roe vs Wade and many people would know about it That judgment essentially made it legal for women to go and get an abortion until the 28th week Week or 7 months Now what did that do? That essentially made it easier for women to access abortion because we know that even if you make abortion illegal there would be illegal clinics there would be midwives who would perform these abortions of fetuses and often this would lead to huge health hazards to pregnant women and what they did was that this got rid of large scale teenage unwanted pregnancies Pregnancies where women were forced to have children by abusive husbands Pregnancies caused by rape or sexual assault and that gave women the right and choice over their bodies It made it equal for women in workplaces in society in general They had the right to decide what they will happen to their body That as you know has been overturned by a recent US Supreme Court judgment I'm not going to go into the details of what it means for women's rights for feminists, for women in general in the conservative states which will immediately and some of them have already done it ban all kinds of abortion There are people who know better than me and they'll be able to give much more details I'm going to only look at certain signs that this brings here and the dangers of the language of democracy or populism because what is this judgment really saying? The judgment essentially overrules row and weight on legal grounds not on the ethical ground of whether a fetus is a living human being or not It says that row versus weight said that there's a constitutional right to privacy that women have and that constitutional right to privacy allows women to take a decision as to whether they're going to terminate their pregnancy or not as long as a fetus is not viable or does not become a viable human being and in row versus weight the court decided that is 28 weeks over a period of time scientific evidence has brought that down to about 22 weeks in some places or even 20 weeks as in India and in some parts of Europe but even then there have been cases where there could be delay in recognizing that there could be health hazards to the mother where with the consent of doctors the termination is allowed in some other countries Now what is the ground on which the Supreme Court is saying that row and weight has to be overturned They're basically saying that this judgment was faulty right from the beginning It was faulty right from the beginning because there is no constitutional right to abortion The constitution does not talk about abortion and American history and tradition and custom has not been taken into account to decide this judgment to come to this conclusion when the Supreme Court ruled in row versus weight and what is again the Supreme Court essentially saying now it is saying that it is not the court's place to make these decisions These decisions are to be left to individual states, their legislatures it's to be left to their law makers based on what people decide and those law makers will decide what is relevant for their state what is the history of the state, what are the customs of the state and what is the reasonable liberty that any human being can have including women Now very clearly the Supreme Court's decision is in the name of democracy It is saying that the people must convince each other and through that convincing process whoever wins they elect representatives and the elected representatives then pass laws and it should be left to individual states and it says there is nothing in the constitution in fact the constitution does not uphold this It also says that there is no way, there is no scientific or any way for the state to decide at what point it's going to intervene to decide that this is a living being It said that Roe versus Wade had decided without any justification that 28 weeks is the issue New evidence shows that it could even be 12 weeks when the fetus has a certain kind of existence as a human being So what is it, it's arbitrary and therefore there is no line where the state can decide and even if the state decides it's not for the courts to decide as it says that the court, it was almost like a hammer of the Supreme Court to pass it across the board across all states and that is being removed and if now all 50 states decide to allow abortion then good, let them do it through their legislative process, through election, through voting This is the populist argument that is now emerging along with neoliberalism everywhere The people want it and therefore we should have it If the people want a Christian nation, a Hindu nation then that is what we have to have There can't be any abstract liberal humanist values any longer that have to be upheld The Supreme Court argues that there is no connection between abortion and contraception and same-sex marriage The US Supreme Court and it says that it's only abortion which actually ends a life But who says, what if we say that sperm itself or an ovum itself are forms of life Then contraception has to be banned What if we say that when a woman decides to have a child even when doctors say that if you try to have this child you are going to die Is the doctor committing murder? Is it the doctor assisting suicide? That is the question the court does not answer Why is it that pregnancy which could come to term in which a woman dies in childbirth is okay and the court does not stop it because why is that not considered suicide? So these are clear precedents that have been said and there is a reason to believe this There is a reason to believe that there is a deep state that has operated and operates in all neoliberal regimes now and they are increasingly uniting the capitalist class with conservative right-wing elements to suppress democracy in the name of democracy They are doing it by saying this is the people's voice We saw what happened during Donald Trump's regime What Donald Trump successfully did was that he appointed 3 conservative judges to the Supreme Court and that has been the turning point by Roe vs Wade which was considered to be almost written in stone Never to be questioned has been overturned and it is important that Justice Alito who has written this particular judgment in 1985 according to the New York Times report when he was giving an opinion to the Reagan administration on imposing restrictions on abortion There were 2 cases in which there were demands for restricting abortion and the Reagan administration, Republican administration, a conservative administration wanted to side on the way of anti-abortionists and it is interesting that Justice Alito at that time a law officer a lawyer in the Justice Department just 35 years old had said that go slowly The sense of what he had said was that go slowly we have to gradually nip at Roe vs Wade slowly cut it down till the Supreme Court is ready to overturn it and that is what has happened After 50 years there is a conservative majority in the Supreme Court by which justices have overturned something that had given huge rights to women and that overnight is going to take away those rights in the land of the so-called free in the so-called land of the free in the so-called land of democracy women's rights are being snatched away from them in the name of a few cells Why? Because of religious conservatives who believe that abortion is the same That's the show today Keep watching, news click Subscribe to our channel Like this video, share it as well


What's up everybody, Jason here for jazbyzcasebrakes.com. 2021 Peeni Obsidian Basketball just sold out. This is a first off the line edition, one box break, random division number one. So again guys, six spots, everybody gets a random division and NBA All-Cards ship. High, a little high risk, right? Cause this is only about six, seven cards, but high reward of course if you do hit. All right, first off the line is a little different. You get two autographs and two inserts or parallels per box. You get at least one first off the line exclusive base electric edge blue parallel number to 16 or a base electric edge contra number to three in every first off the line box. So chances at some pretty big hits there. Now here's the dice roller, here's the customer names. Bobby down to Corey, got the last three. Last Bob Mojo. And then Atlantic, Central, South East, Pacific, Southwest and Northwest. So here we go guys, roll it. We got a one and a three for four times. Good luck. One, two, three, four. And four times, Bobby staying at spot one down to John's, about six. Four times, divisions, one, two, three, four. Four times, Atlantic down to the Northwest. All right, so let's make that a little bit bigger right there for you guys. So Bobby, you have Atlantic, Josh, Bruce with the Central, Corey with Southwest or Southeast and Southwest. And then Corey as well with the Pacific Division and then John with Northwest. So I don't know if anybody wants to trade potential divisions. I'll give you guys a quick 30 seconds.  But basically of course for the Eastern Conference Atlantic Division, but you have Atlantic Division which would be the Boston Celtics, Nets, Knicks, 76ers, Toronto Raptors. Then you have Central Division of course which would be the Cavs, Bulls, Pistons, Pacers and Bucks. Then you have the Southeast Division which is the Atlanta Hawks, Charlotte Hornets. I believe Heat, Magic and Washington. Then you'll have Northwest Division which would be the Nuggets, T-Wills, Blazers, Thunder, Jazz. Then you'll have Pacific with the Golden State Warriors of course, Lakers, Clippers, Sons, Kings and Southwest Division, Mavs, Rockets, Grizzlies, Pelicans, Spurs. So I don't think anybody's gonna trade so let's just close it out then. All right, well like I said, first off the line Obsidian, there's a sticker there. Sealed always a little different so you guys already know right away. They label the first off the line sticker all off. Let's do this first off the line there. Boxes, I guess we should just number these boxes, right? Just to be safe. I'll try to keep them together. Of course, try to make sure people can see what box number these actually are. So one through 12. Let's see if we can generate a box number. All right, let's generate and it is 11. I hear this box here, seconds to last, box 11. Anybody watch Stranger Things already? Don't spoil it for me. I'm not gonna watch it till Sunday. Volume two drop midnight. It's like literally two episodes but it's like two and a half hours and like two hours. So I don't have time to kill like four straight hours doing that so I'll have to wait until my day off on Sunday. All right, here we go. You already seen it Kyle? Again, don't tell me that, then don't tell me. All right, we got Dijonte Murray for the Spurs which again, Spurs would be Southwest. And I mean, it looks like we got that blue. It's Pat Beverly, which has been traded like five times in the last five years now. 1306. We have Donovan Mitchell and of course that's Dijonte Murray to 99 for the Spurs. Of course that's Clippers, Pat Beverly. So let's go into the Pacific Division which is Corey. Blake Griffin for Brooklyn. Lamello Ball rookie, little off-centered.  The back is centered fine but look at the front Jesus. Jess Charlotte which will be going to the Southeast Division. We have a to 99 Alvin Adams electric or lightning strikes are not electric. And that is for the Phoenix Sun to go to the Pacific Division which is, I think Corey has a Pacific Division I believe. And last part here is a Devin Vassel to 99, RPA for San Antonio. And that is San Antonio Spurs Southwest Division. Southwest which is Corey. So Corey has the Pacific, Southeast and Southwest. So they go, remember this is a, this was a seal case at first off the line. We ended up getting that blue, Lamello. Of course these ones are here as well. So again, there still could be some big hits hiding in there. So if you guys wanna get the next one rolling I did upload it already to the website jazbykatesbricks.com.


Welcome to News Desk on SiliconANGLE TV for Thursday, October 18th, 2012. I'm Kristen Folletti. Your Internet Service Provider could be monitoring you, and the Pirate Bay has made an important change to its infrastructure. Here now to discuss the future of file sharing is SiliconANGLE contributing editor, John Casaretto. Welcome, John. Good morning. AT&T, Verizon, Comcast, and other major Internet Service providers are set to implement a copyright alert system aimed at cutting down on illegal peer-to-peer file sharing of copyrighted material over the next several weeks. So what can you tell us about how the copyright alert system will work? Well, what they've set up is a system where they're essentially sharing information, basically a couple of the major organizations, the Motion Picture Association, RIAA, which is a recording industry. When they become aware of file sharing and they have a suspect, the ISP has agreed to share the information and aligning that with particular users. So they've set that up and they're going to have an alert system and kind of a reeducation system, if you will. So it's pretty fascinating that it's come to this. But there's a number of Internet Service providers, some of the major ones are out there that are supposedly a part of this. Now, how will a service provider be able to identify if peer-to-peer sharing is taking place on someone's computer? Well, again, they commonly are out there on the networks looking for their property. So if they detect a certain IP address is sharing their property, they're going to go to the ISPs at that point through this system and try to align that with particular users and particular computers. And that's really what this agreement really covers. So under this copyright alert system, what are the consequences if someone's caught sharing files? Well, that's pretty interesting because they're not all that severe. Basically what the initial thing that they do is officially, anyways, they create what's called an alert. Basically what they're doing is they have an educational material that accompanies when you're on an alert status that you've basically violated copyrights and sharing of information and that some of these ISPs may put you through an online tutorial and even slow down your internet speed as a penalty. So there's a number of phased levels of penalty. It's interesting though because some people have raised the concern that this could open the door to more legal action against customers, people using the service. So it remains to be seen how that really plays out and it probably will vary from ISP to ISP. I heard you mentioned the RIAA earlier. Can you elaborate a little bit for us on how this copyright alert system came about? Well, there was some legislation that wasn't very successful in going through a bit earlier this year. So over the summer, a number of the ISPs got together with the RIAA and the MPAA and basically they came up with this system that looks like they've had some success in getting some agreement on this and their intent of course is to crack down on the file sharing and the things that are going on out there. Peer to peer it seems to be their main target. Will this system be in effect on all internet service providers or is there a way around it? It doesn't appear that there is going to be a way around the obvious file sharing. There are definitely workarounds for people that really want to share files and do this kind of thing. It's complex, it's not for the casual user if you will. So you could use VPNs, you can use IP masking, you can hide your IP in certain ways when you're doing the file sharing. So there's a number of workarounds but just not for the casual user, it's not quite there yet. Jill Lesser, the Executive Director of the Center for Copyright Information describes the goal of the program with this statement. The hope is the casual user and the user that doesn't realize the implication of what they're doing will respond to the system and will see a decrease in the use of peer to peer networks for copyright infringement and will see an increase in legal services. She also said, if you continue to engage in copyright infringement, you're not going to continue to get alerts. In our mind, we're going to target consumers that respond to those alerts. The alerts stop after the last level and nothing else happens under the program. So John, it seems like they're missing the big picture here. Why target casual file sharers and ignore those who are causing damage on a much larger scale? Well that's because it's low hanging fruit. I think what they're looking at is getting those that are easily scared off, you know, push them to more legitimate methods of file sharing, buying content and things like that. And they're largely unsophisticated in being able to hide their activities. So. The world's most famous BitTorrent site, the Pirate Bay, has switched its entire operation to the cloud. Provide us with a brief background on Pirate Bay. Why have they been targeted by authorities in the past? Well, they're the biggest file sharing BitTorrent site on the internet. They've also been very defiant to the authorities. They see themselves as champions of free speech, champions of, you know, internet freedom. So along those lines, they've been raided over the years.  They've come back.  So, you know, they're very public. They're very big and they're, you know, they're a phenomenon on the internet. Why is the Pirate Bay shifting to the cloud? Well, the same reasons why anybody would move to the cloud.  It's not isolated to one place. Their product overall will be better. They also have built in a number of things that makes the data secure about the people that are accessing their site and basically, you know, being impervious to, you know, raiding by authorities is another factor. They can quickly fire up, you know, another site somewhere else. As part of their move to the cloud, the Pirate Bay is utilizing virtual machines. Can you explain the benefit of VMs to us? Well, that could take hours, days. There are definitely whole events dedicated to describing the benefits of VMs. But in this case, what they're using it for is for a bit of disaster recovery. So that, and that's the nature, the fluid nature of cloud computing is that, you know, they can take a system that was taken down, shut down, lost for, you know, either a police raid or if it was shut down because of some internet issue, you're able to fire it up somewhere else and get the infrastructure back up and running sometimes without any loss in downtime at all. The Pirate Bay didn't move everything to the cloud. Can you explain the reasoning behind that? They still have some elements of their infrastructure, transit routers that point to the cloud. So these are basically like load balancers that are diskless. Basically, nothing is stored locally, completely in RAM, which means basically all the information that they process are in volatile memory. If the systems are shut down, move, well, A, they're encrypted and B, that information is quickly lost. So it's all tuned for, you know, covert operations. And so they keep that piece where they're at and they can quickly fire that back up as well. This seems like a really savvy move for Pirate Bay. And in a lot of ways, it makes a police raid nearly impossible, as you mentioned, due to their new configuration. Do you think authorities will be able to find a way around this by implementing cloud regulations of some sort or are sites like the Pirate Bay going to continue to be one step ahead? I think they're going to continue. I mean, they're pretty savvy. They've got a number of lawyers that have figured out a number of things on how to operate. They can open accounts. They can open accounts with cloud providers who are eager for business, open for business. I'm sure they're not signing up as we are the Pirate Bay. We want to run servers on your cloud. That's not how this is happening. So I think that especially with this new tactic in place, they're going to continue to grow. They're going to continue to exist. And I don't see any type of regulation really restricting who that is unless, you know, there's a deep investigation when somebody signs up for cloud services or something like that beforehand. But, you know, who knows? Well, John, thanks so much for taking the time and we'll talk with you again soon. Thank you very much. For all the latest in-depth coverage and breaking analysis on tech innovation, keep up to date with Newsdesk on SiliconANGLE.tv.