Well, folks, we're starting the year with some really unfortunate news for all of the Marjorie Taylor Green fans in my audience Our Queen has been banned permanently kind of now I say kind of because her personal account on Twitter has been banned However, she still has her official lawmaker account So she still has the capability of tweeting her misinformation and stupidity But the difference is she can't do it from her more popular account and what's interesting is that? She had ample warning to kind of prevent this So I'm kind of led to believe that this is actually something that she wanted contrary to popular belief But first let's get to the details here Kenny Stancil of common dreams explains Twitter has banned for good the personal account of representative Marjorie Taylor Green Because the Georgia Republican a longtime purveyor of anti-vaccine and other dangerous conspiracies Refused to stop spreading deadly disinformation about the coronavirus pandemic We permanently suspended Marjorie Taylor Green for repeated violations of our COVID-19 misinformation policy Twitter said Sunday in a statement as first reported by CNN's Donnie O'Sullivan We've been clear that per our strike system for this policy We will permanently suspend accounts for repeated violations of the policy in March Twitter announced that it would permanently Suspend accounts that received five or more strikes or notifications about posts Containing misleading information about COVID-19 vaccines Nevertheless Green proceeded to keep spewing lies about the life-saving jabs including on Saturday When she tweeted falsely that the federal government was ignoring extremely high amounts of COVID vaccine deaths the New York Times reported Now we'll get to her response But before we even talk about that we already know the dialogue that will happen as a result of This ban, you know the free speech absolutists will say that she shouldn't have been banned And the people who say well she violated TOS will defend this ban And look when it comes to this particular issue, I don't necessarily care about Marjorie Taylor Green It's not a real ban if she still has a way of tweeting She still has her official account as a lawmaker But let's just put things in a perspective The only reason why people are even talking about this is because Marjorie Taylor Green is an Elitist right she's a political elitist if I was banned from YouTube if you were banned Nobody would bat an eye, but because this is an elite Well, it's a story because she's a politician. This is a story So keep that in mind if you do intend on defending her now to Marjorie Taylor Green's defense I mean there are other people who are much more dangerous when it comes to vaccine misinformation Tucker Carlson is perhaps the worst offender here, but I mean he doesn't necessarily tweet that information He does it from the safety of his Fox News platform where they vehemently defend him So, you know, you can say that there is indeed a double standard having said that though if I violated the TOS as She did I mean I would be banned and nobody would talk about it So, you know regardless of how you feel I think that Marjorie Taylor Green is coming at this from an entirely different perspective because I think that she Actually wanted to be banned because this feeds into the conservative persecution complex narrative that she's trying to craft and also She can fundraise off of it, which we will get to but this is her response immediately following her ban She wrote on getter, which I guess is an alternative to Twitter for conservatives When Maxine Waters can go to the streets and threaten violence on Twitter Kamala and Ilhan can bail out rioters on Twitter wait threatened violence on Twitter I don't understand her comment about Maxine Waters anyways Kamala and Ilhan can bail out rioters on Twitter i.e. donate to people who were unjustly Brutalized by police during the Black Lives Matter protests and chief spokesman for terrorist IRGC can tweet morning Solomony, but I get suspended for tweeting their statistics Twitter is an enemy to America and can't handle the truth That's fine. I'll show America. We don't need them and it's time to defeat our enemies now Let me explain to you my theory as to why I think she actually wanted this any Normal person who saw that they had three strikes and knew that a fifth strike would result in a ban Like at strike number three at most strike number four you're thinking, okay, maybe I should rain it in I don't want to get banned. I do use this platform I mean when I had a strike from YouTube back in 2017 2018 even if I don't believe that was a just strike It wasn't my fault It was a false copyright claim by CBS because I used like 30 seconds of their clip it falls under the guidance of fair use But even with that in mind, you know, I knew that if I got three strikes my channel was gone So I had to be careful I had to change the way that I use clips at least temporarily to make sure that I wasn't permanently banned because that would be bad But she knew this and she just kept going now part of it is stupidity. Yes, I'll grant you that but additionally I mean, I think that she wanted to be banned given what she did following her ban She fundraised off of this and her fundraising email that she sent was quite a banger The title is the Silicon Valley cartel finally pulled the trigger Twitter permanently banned my account and she writes The next step is never Trump right knows Adam Kinsinger and Liz Cheney colluding with communist Democrats on the January 6th witch hunt committee to throw me in jail Wow, she has quite the imagination and misunderstanding of communism the big tech censors fear me speaking the truth and silenced me Just like they banned President Trump for exposing the DC swamps lies corruption and fraud now more than ever I need your help to fight back. She needs your help with money by the way first I need you to sign your stand with MTG statement of support to show I count on you in the fight against big tech censorship This is the only way I can guarantee that you'll be able to hear straight for me without being a censor after you sign Your statement of support, please rush an emergency contribution of $500 right away so I can keep fighting back against left-wing cancel culture see without your $500 contribution, which is what I'm assuming this donor gave like a lot of money So they kind of base it I think on how much that donor in particular gifts But without that $500 donation see she wouldn't be able to fight back against big tech censorship by just saying Stupid things and incoherent things on like Steve Bannon's podcast See as a lawmaker someone in a position of power. She couldn't say introduced legislation to fight back No, she needs your money to fight back. She's definitely not taking advantage of you No, if you support Marjorie Taylor Greene, you are not you are not being duped by her no way no way So look she's banned and I honestly think that she likes it now Of course, this is just speculation but a lot of people on the right Kind of like being martyrs because it helps them regardless if you're a politician or a Podcaster if you're a politician you could do it Marjorie Greene did and fundraise off of it If you're a podcaster you can get banned and then say hey everyone I really need you to support my patreon or substack or whatever so, you know, I think it's a win-win for her It's a win-win for the right it feeds into their narrative But overall it's a lose-lose for America because we don't get those hot takes from her anymore Which I'm not gonna lie. I kind of enjoyed in a really weird way But either way they took our Dami mommy Marjorie from us and never let them forget What they took from us or never forget what they took from us.  She's banned and yeah, I think she wanted it honestly


Welcome everybody to this celebration of faculty careers series which was started in 2013 and really is an outcome of the strategic plan and the faculty of 2020's emphasis on professional development of faculty through different stages of the career. This particular series focuses on full professors who are at least seven years or past in rank and really is an opportunity for these faculty members to both in part provide a reflective overview of achievements in their career but also looking ahead into what exciting areas they're hoping to continue their innovative path forward in. And today of course it's my great pleasure to introduce Dr. Agarf Kapoor. Dr. Kapoor got his PhD in electrical engineering at Columbia University in 1984 after which he was at Syracuse University in electrical computer engineering and he came to Purdue in 1991. He's been with us since then with a focus on multimedia information systems on database security and parallel and distributed computing and so without further ado let's welcome Dr. Kapoor to offer us his colloquium here today. Thank you very much. Well thanks for attending the talk. Let me go ahead start doing it because I have a long way to go. The title is as indicated here models and architectures for multimedia systems and information security. Here's a outline of my talk. It primarily consists of two major topics. One is related to multimedia systems which kind of comprises of my first 30 for 15 years of research starting from mid 80s all the way to the end of 90s and then I have the opportunity to move into area of information security which is I've been working on it for almost 20 years or so. And here's some some of the topics I'll be discussing. Let me go ahead. As everybody probably is now familiar but multimedia is basically you have combinations of different type of modality of data, audio, video, images, text and so forth. I don't have any video right now otherwise this is a nice video to play. So question is how you compose all this data together, how you store it and how you communicate it over the network. If I look at the distributed multimedia information system it is kind of a multi-disciplinary technologies consisting of many sub areas ranging from computation aspect of different media all the way to AI and knowledge representation with the contents of the different type of data sets. So my primary work has been in the area of distributed databases and some work on networking and distributed control for transmission of data. So let me briefly mention what are the requirements for building a multimedia database system? Where do we need a system which should be managing different type of data? The issues are dealing with not only text but also dealing with different type of data set, for example audio with the text. Question is how you model the information, semantic models of the contents of the different data sets, how you index the information for fast searching and how you combine information from different modality together and to prepare what we call multimedia document and how you store this information and how you communicate it over the network. So based on these requirements we propose an architecture model for multimedia database system. It's essentially a three-layer abstraction of the system. At layer number one the bottom layer you're dealing with individual data type, for example audio, data, video data, text data, images, image database system and then in the middle layer you combine, you prepare, this layer basically deals with the composition and integration of different type of data together in how to prepare multimedia document and we'll be discussing that in some detail. And then on top here which is close to the user interface allows you to structure the documents, do media editing and do different type of queuing and searching of the information. At layer number one the question is if we're dealing with individual media type, for example video or audio text and so forth, how we can do the indexing of information for searching purpose? Should we automate the process of indexing of images or video or should it be done manually? For example, if you are working in a video on demand server and you have to index large volume of videos, can you do it manually? Should it be done automatically based on the contents and information? So the cost versus complexity and the robustness of identifying contents of the data and preparing your indexing mechanism. So the main driving force behind this automation is the volume of data acquired. Inspection indexing can be extremely large. So the question is how we process the information media data or video data or images, how we can process them and identify contents and represent them. So looking to the our initial work has been focused on on video data where we look at indexing of motion based motion based indexing of events in the video data and there are three approaches. The first one is about special temporal logic and other models which have been presented in mid 90s. There's a trade based model that we're discussing briefly today. As abbreviation is video semantic data graph model and the trajectory model, which is the kind of a sub case for the model. Idea in trade based modeling is you identify an object, you kind of bound it with a box in two or three dimension and then you trace the movement of the object over a certain video frames and then attach time duration and other information for the object so that you can subsequently use it to develop indexing structure. Now object relations can be they can be multiple object you're interested in. The question is how object relations can be identified or represented. And this is this can be done by looking at I'm not doing image, I'm assuming which processing can be done at the frame level where you can identify and with objects you can tag them and you can trace them over our sequence of frames. And then you can represent this information space time information in form of a directed graph. The graph is basically as a bipartite graph where nodes represent objects in the video clip and then you can have mapping of nodes from the duration, how long the object has appeared based on the number of frames. And also you can look at the motion vector information how these are an object or set of objects moving across many frames. Here's an example of a VSTG model taking from a sports video data here in the first part of the video frames, video segment, you have one or you have two objects being tracked. There are two players which have been bound in box and they're called O1 and O2 and you can label them and you can track them over a long period of time as new object appears and you can add two new more objects appear, you can also represent them in the graphical model, they're called O3 and O4. And in the third segment of the video you can have another object appear, another object can appear in addition to what you have already in the previous segment and you can kind of track down all this information in the model itself. So the idea is to extract the information or the motion information of objects and store them in a graphical model. The question is what I do with this model, the VSTG model. What we do is we look at the relationship among these trajectories or information of the objects, they can appear one after another or they can appear simultaneously. Two objects can appear simultaneously. So here in this diagram we're looking at binary processes. Processes can be appearance of objects in the video frame. They can appear together, they can overlap, their appearance can overlap or it can be substantial. Sequential for example, before operator tells you that the two objects have, one of our objects have appeared for a amount of time, the other one has appeared with a amount of time and this is a sequential appearance. Similarly, meet operation means the two appearances have no gap in between. The first one before means there's a gap of appearances and the third one is overlapping means some of the appearances have some common frames and similarly you have during operation of the equals and so forth. And based on this information we have proposed a special modeling of these events, especially spatial event and then carrying those spatial event into temporal domain. This is the kind of a, sorry it's kind of busy slide, but the idea here is based on these binary relations I can identify the spatial appearances relative to each other as well as temporal appearances in the time space. Here's an example, suppose we have a video frame where we have a aero formation by four planes. The question is how I can represent the semantic of aero formation in form of these binary relations. What we do here is we take the projections we can boning box each object here and then take the projection on x, y plane or even z plane if you have depth information about these objects. And then you can use these operators or binary relations which we call operators also and develop a spatial relations spatial relation with the logic in it and or logic in it. So it gives you a spatial logic. You can then expand this logic over time also. So that gives you a STN model for representing events. So based on this quick review here is an architecture we proposed for video databases. So you have raw video data, you look at the sequence of frames and at the same time you look at each frame and identify individuals using standard image processing techniques. And you can which I think there's a lot of work has been done on the on the image side. But then after identifying an image of desired interest for example if you're looking into a particular player or individual as president or so and so forth or even an object like capital building or so and so forth you can trace them back to the frames and then over a period of time you look at their motions with the structure of each other within a frame, how they are related and over frames, how these relations evolve. So that gives you some kind of a at least low level semantic of events associated to these objects. So we did a small implementation of this concept in biological datasets with the help of Paul Robinson, he's with the Purdue Cytometry Lab. So the idea here is if you look at the cells and see how these cells are interact with each other as over time we can identify some interested event. For example it can give you an idea of some of the challenges which biologist people are interested in, how we can identify the detection of disease outbreak, what is the effect of drugs on the cell, the cell level and how cellular biological processes evolve over a period of time. The idea here is the most cell level, the information is not only about looking at their standard features but there's a much more high-dimensional dataset. You can look at the spectrum of information about the objects in this case which are cells. So the current HCL, HCL which is a high throughput screening which is a HGS environment. The idea here is if you look at these images, the images of cells, they're very dense and the question is how you can get their features out and how you can look at the state of a cell as they're being treated with different drugs. So what we developed, we used our special temporal model to give a finite state representation of the model. We call it event detection finite state machines. Each state itself at the lower level give you special temporal bands which I briefly discussed in the previous slides. So here's an example of, I'm still trying to remember these terminologies. This event called radiocystosis, which is basically engulfing of micro, engulfing of cells by another microbe in the biological process and the question is how you track these, this process of phygocytosis. It can be broken down into five different stages of a time where the cell comes close to an organism that is it, enters inside the organism and it's kind of diffused inside the organism that is completion of the process. So the finite state model can be represented, can represent these five distinct events and their durations and there are all these events for each other. So basically what we're looking into a meat operation, M stand for meat operation which is one after another with certain duration or without duration. Meat means they're exactly connected together in time. So the parameters here is you're looking into the S represents the duration, sorry, D represents the duration of an event. S represents the accumulated time of the process of that point and you're dealing with like two sets of objects. One is they are all putting in the bounding box. For example, this morning box represents the main organism. The small one is the cell which has been, which has entered the first object. So what we did is we did some experimentation of about 500 cells from Hela cancer cells, the cellvic cancer cells and they were treated with the camphorthacin drug medicine and the question here is we want to see the effect of the drug on these 500 cancer cells. So the cell states are represented as the cell is live. The early apoptotic state and then late state when the cell is dead as a result of the treatment with that medicine. The question is whether the traditional cytometry experiment is sufficiently reliable in terms of predicting the effect of the drug. So the slide the diagram on the left hand side shows the population distribution across these three states and then what we did is we say well if you already track the state of the cell based on this model you can correct your distribution which turns out to be which turned out to be better and which is given the right hand side. On the left hand side we kind of overestimated in the live cell overestimated the ineffectiveness of the drug but the drug was ready more effective than it was thought out to be and the question is what what is the cause of the errors. Well there are can be several reasons you do photo bleaching of the dyes can introduce some error inconsistent illumination of the cells can cause some error and as well as you do autofocusing of the slide on which these cells are present and that may cause some error so the process can remove these errors and can give you better count and indicate what is the real effectiveness of the drug. So this kind of summarizes the first layer of the architecture especially for video data this part of you. Now let me move to the second layer of the architecture we propose. The idea here is you take different data sets together and you compose documents. The document for this purpose what we did is we proposed synchronization model. I'm sorry this is a kind of a fuzzy slide this is a really authentic slide directly from the paper and I promise I'll give you more colorful slides in a minute. So what happened is we can define the synchronization of different media together in time and space by using patinettes and call it object composition patinette. This is our I believe is one of the main contributions we have in this area. The patinette is basically a graphical representation in which you have places and transitions and the tokens which basically describe the process of representation of the information to the end user. The way we did it the fundamental concept behind here is based on those temporal relations which was proposed by Jameron in the AI area you can translate every every relation into a carbon patinette and if you do that you can really represent the presentation process of a document including images and text and so on and so forth by a full patinette using these temporal models. So for example it's very easy to understand you can say okay we're going to have audio, video and image together for so long and so forth and so forth the text will come later on and the video can start also after a brief delay of the started process. So this representation this model is giving much more detail at the synchronization from temporal synchronization point of view which must be satisfied and the user side. The question is if this document is stored far far away from the user side how do you have the synchronized delivery of the document to the end user. So this model has been analyzed extensively has been also applied and modified by many researchers. Basically the model can only not only give you end user requirement how information should be presented it can give you another idea about how you can develop synchronization protocol for the network in order to ensure timely delivery of the data. You can do storage IO management that how this data should be pulled out of the storage devices and without any extensive buffering at the operating system level. You can also introduce security mechanism into that in the model and we'll describe that in the data part of the presentation. So the idea here is you look at the document itself we can annotate the document OCPN document with the information like how much reliability you want to ensure what video or audio or text and so forth what is the resolution you want to provide to the end user if you can have multiple copies of the same image but different resolutions you can do that and at what rate you want to present the video data and so on and so forth. So given this information which is a document specification model question is how you translate these requirements at the network level operating system level storage point of view as a security point of view and how you can go from end to end point of view deliver right from the server all the way to the end user what is the implication on the requirement of the resources within operating system as well as the network. Now this is a study done by IBM in Heidelberg which says okay in order to have really when you're synchronizing information especially audio and video there has to be some kind of synchronization requirements you should not have out of sync delivery of video and audio data. So for example if you're doing video animation and the correlation delay cannot be more than 120 millisecond about the two streams of data animation data and middle data video audio which is called lip synchronization requirement cannot be more the slippage cannot be more than 80 millisecond so on and so forth. Similarly audio with audio when you're tightly covered stereo system 11 milliseconds is a requirement. So this experiment did it by by by whole group of users and try to understand what is the synchronization requirement if there are different type of modality and the modality like audio video and so on and so forth. So what we did is we said okay based on the model we can expand the model and put more attributes for each object. For example duration of each object that video should be 50 second long the size is 12 megabytes storage file display area on the screen there's a certain deadline been swept to the start of the document and rate and reliability and the content information you can provide that this video is about our sports and so forth and the schema itself. So over time when you look into time that how this delivery happens you look from networking part of you that what is the bandwidth required to transmit this data without excessive buffering on the user site. So it's a variable rate model it's transmitting videos with high rate then it transmits some text ignore it and so forth. The question is how network can guarantee delivery of the information without really any dropping of the data set. Should the network be looking at every slot here based on the what type of data being transmitted or should look at an average bandwidth requirement on which the question is anything about this bandwidth must be being fetched or must be stored in the grant side so that the data is not is not slipped or not skipped or not dropped and get full library information. So the QS parameters for entrant resource allocation data among multiple friends data is a common thing you can slow down data is basically delay between successive packets and to delay the synchronization of multiple streams the reliability is is any dropage allowed for example can I skip some frames or audio of packets and what happened if you're dealing with mobile my user how this information is quality parameters are translated into the resource allocation at let's say at the base station level or cell service station level so I'll skip some of the topic what we did is we look at we can divide into the requirement of the bandwidth requirement and this is basically a graph showing you how this one different technology has evolved over a period of time in terms of bandwidth and also how these technologies are already spanning the scope of the coverage now low mobility is example you're talking about fixed devices as a receiver or portable laptops and so forth or from pedestrian to vehicular movement what you have is high mobility environment and you're dealing with two different kind of broad technologies one is the cell level the base station level one is the Wi-Fi level and what we did is we developed technology for transmission of document both of both type of mobility okay so the question is when you're talking about the resource allocation in order to meet the Q and P requirements within at the at the low mobility level or high mobility level there are the what parameters you should be interested in what we did some experimentation is a liability requirement where the drop page of information can be tolerated to some level so the question is if I'm if I'm remotely browsing a graph browsing different document part of the document or a server and if the document keep on coming to you but you see the changing bandwidth requirement profile from one browsing item to another browsing item so the question is what I need is some information about the bandwidth requirement up front before I start delivering the document from the server side and the issue become more tricky when you're dealing with mobile user don't even you're looking into a model where you have base stations where a user is in the coverage area of a certain base station and keep on the team document over the network and then as he or she continues moving from base station to base station okay the channels should keep on switching over the internet so that you get you can you have continued you continuously receive the desired document without really any dropage in the quality okay so what we did is we propose 4G solution what called 4G all IP mobile wireless access infrastructure but the idea here is to develop overlay protocol on the access point at the access point so that I can aggregate the network resources to different user user may have high quality requirement for example if you are teaming video versus text only you might be interested in getting more RF channel bandwidth then other user who may be just putting text or audio no quality audio so the question here is how a resource allocation can be can be can be can be performed at the base station level and so what we did is we say okay at the cell level can we have a buffering mechanism where the cell can itself be the part of the IP infrastructure and which can keep on the teaming data and buffer it and then depending on the allocation of bandwidth deliver the data to the to the end user the idea here is there is a speed mismatch the internal network delay has a delay on the other hand the speed on the on the radio frequency channel is much faster there is no delay there so you have to kind of smoothen out the this mismatch by providing buffering mechanism at the cell level so the question is how different resources can be allocated resources can be allocated different type of users so what we did is we we kind of did some theoretical analysis that okay if the total capacity of the bandwidth is that's a C available for the from the base station and you're transmitting different objects for different users how we can distribute the bandwidth to different users and depending on the number of users and the number of the requirement of the bandwidth and the availability of bandwidth it's quite possible you may have to ride you have to may have to drop some information for every user so that everybody can be accommodated so we can form this optimization problem as a quadratic assignment problem and then see basically can we distribute the drop page of information across all the users so this work we did in the 90s with the professor Prabhu from industry and engineering he was in reliability and scheduling so this is a work done by one of my students she graduated in the 90s and this is the first time the research was proposed how multimedia communication should be happened in a mobile set of environment so we did this research at that time and the idea here is simple protocol you can design for information control you run your NMP in non-linear programming optimization problem if the solution exists for the newcomers fine you go ahead give the allocate the bandwidth otherwise the connection can be ejected now one of the issue here is you may be treating everybody else as equally there may be high paying customers who are willing to pay high price for high quality data transmission versus low quality paying customers so what you can do here is you can define multiple service classes and within a class you carry out this computation for resource allocation or rather than doing uniform you cross all the all the users so the the question is how this whole fit how this all this synchronization protocol and network sport fit together so this is the architecture we kind of proposed we will look at the broadband multimedia network layer on top of that you have this carry out QSP is routing and end to end resource allocation protocol we just studied and then the issue here is once I have a bandwidth available suppose I have been given an average bandwidth of one megabits per second and 10 megabits per second is it sufficiently enough to communicate my document what happened if the document is has a high bandwidth sometime or low bandwidth sometime what is what should be done once the bandwidth has been located so what we look at is the thing we just discussing right now is mud as a middle layer configuration where you have given a bandwidth now based on this allocation as even at the seller level or the internet level the question is how I can guarantee end to end synchronization that whatever the bandwidth I have I have to live with it and then say okay we can do we can look at the document stream of packets and one option is we dump the whole document on to the end user if it if he or she has enough bandwidth sorry buffer available that is great which is called downloading on the other hand the buffering is limited you have to slowly release the document over a period of time so that the consumer can consume the process the document at its on pace and without any interruption in the in the presentation of the of the of the document especially the the time dependent data which is video or audio so look at different different mechanisms from several point of view all documents should be released our document at least mean document has been chopped into segments we call them as I use and synchronization interval unit I guess that's the name and there are many criteria to design these synchronization protocol from the server side once the bandwidth has been allocated again the the quantity of each of these algorithms the protocol is determined by what is the chances of buffer being overflow because you are dumping on data onto this on the client side or you're slowly slowly releasing the data in which you are underestimating the the network delay and what happens is if you are if you do a buffer under flow you are you're already out of sync with the document the document presentation requirement okay so these are some of the work has been done having published in the literature and glad to share the citation and let me move on to the next topic which is a the second part of my work which I started somewhere in I believe late 90s when the CEDA Center was established we we have the opportunity starting our research in the information security area and so this is a slightly different topic which is which we started about 15-20 years ago so here my emphasis has been on information security and in particular on on dealing with the authorization mechanisms from users perspective for the information and we are dealing with access to databases so one of the strategy used in the literature is called strategy for authorization which has been used in the literature is called road based access control which is which is came from the NIST from NIST model NIST developed this model the idea here is you have set of objects or set of assets you want to share with users and and you have to have some the user has to have some privileges to access those objects so question is how you control these privileges you can do at the user level if there are a lot of user you have a really complexity problem managing these accesses so you can start defining roles for example a user may be maybe a physician for example or maybe administrator in certain cases and you define roles a role can be assumed by many many users and then roles can perform certain operations on the objects the set of objects so basically you have user role role to permission assignment challenge and the the question is how this how you can define policies that who can assume what roles and how what privileges are assigned to different roles so the main advantage of far back model is give you efficient management scheme you can have hierarchy of roles which is very natural in any enterprise setting and there are also constraints example separation of duty constraints is to prevent fraud for example conflicting roles should not be accessed by the same user example a person who is approving a check should is also writing a check shouldn't happen and there are many areas in which access control has been has been implemented what we did is we say okay there should be more than just simple accesses it can be more context information you can add into the into this model based on time based on location for example where you're accessing information what time you're accessing information so we developed this model which is called generalized temporal hardback model duty hardback model and the idea here is a role has to be enabled and disabled before it can be assumed again so for example you can have different type of constraint in the role nine to five role out of that time this role is not available so user kind of cannot have access to the information or it can be even given role activation and so forth so it proposed this model which has also been extensively expanded analyzed by different researchers as an example you have in the county office for example you can have a tax exemption processor or tax payment processor or a tax refund processor or and you can assign that how when these are these roles that can be activated and what type of access they can have on certain type of datasets reading writing changing or so on so forth you can the type of privileges can be assigned you can also assign the activation constraint that it's only between 120 minutes that's a two hours to four hours and so forth so the issue here is now if you're dealing with federation of federation of agencies how different agencies can operate when there's our access privileges are limited how information can be shared yeah so there are two different models there are basically three ways you can do it one is you can have a tight coupling among the agencies in terms of policy sharing okay so there is a less issue of autonomy more concern is the sharing information in a real sense and this the idea here is if there are multiple agencies they have their own policies can we get a global data policy which is consistent can we develop it and the point here is if you do that there's you have to kind of lose in your autonomy but that is okay especially for the government agencies because the emphasis is more on sharing rather than protection information okay versus other enterprises for example when hospitals are collaborating okay you want to protect your policies and have it more autonomous um so the first where the first type of collaboration is called federated collaboration in which you can say all right all the agencies or our organization they must disclose their policy map things together roles should be mapped if I'm let's say an administration in one organization and a covenant boss in another organization there should be a covenant mapping should happen in terms of the roles and then start merging the policies and if they're adding conflict try to resolve the conflict and coming up with a global scheme so that when you do the integration the question remains is you want to make sure whatever you can access originally in your own domain when things are all merged together you still continue doing it and also if you cannot access some information in your domain the global integration should not allow you to do the same thing okay so the security should not be violated in any form okay so there are set of policy conflicts can happen role assignment can change separation of duty can change and user specific SOD separation of duty can also change when you do the merging so question is how you resolve how you identify these conflicts and how you resolve these conflicts so here's an example of sharing among county offices you may have a county billing sorry county clerk office interacting with the county trade at office and there are some information which are common for example social security numbers of the taxpayers and names can be common on other hand information which can be shared across as example you are looking at tax amount property redemption costs and so forth and there are other private information within the offices so these are kind of environment we're looking at and the question here is if these two agents these two offices would like to collaborate okay what is the issue okay so what happened is if I start connecting things together I say okay in this area of CTO county tax office you guys that's the name I have a role TCM map to that's a PDM board here so so and so forth this is a graphical model for the RBAC policy where the user can access information after role has been properly mapped but there's a problem here for example this guy this user do three let's call this the user if you assume this role this is a permissible here but this role cannot access information here okay but what happened is if I go across the the site and come back here okay I have access here this access is not permissible this access is also permissible I can access information under this role so this is the violation integration will cause this violation similarly you can see other violations can happen similar the separation of duty violation can happen if a user can access this role he or she should not access that role okay but also this user can access this role suppose this is the given so what happened is if I go across the other domain come back I can access this information violating this SOD constraint so the question is how you identify these conflicts okay and how you resolve that so so the question is that we we need this resolution we need a resolution mechanism and question is when you are resolving this issue you must have something under in your mind that okay if I have to resolve it what is implication what is the best way to resolve it now there are many optimality we can map this problem of resolution into an optimization problem with certain objective functions for example we can write to resolve the issue but maximize data sharing or maximize role mapping links or maximize different prioritize accesses and so on so forth again so what happened is you take this graphical model of the R-back graphical representation of the R-back model from two domains and you can translate this whole model R-back model into an integer programming problem and the constraints within individual policies are mapped into IP constraints so we propose this approach I'm not going to get into too much detail here so you are minimizing for example the weighting vector defining optimality criteria you have a the question here is A is a constraint matrix B is a constraint constant vector and these are some of the variables binary variables you use to defining user role accesses and the question is what is your whatever your maximization criteria is do you can you get a good solution based on the on the parameters you are optimizing so what happened is what can happen when you translate this problem into an IP problem you can solve it and identify the best solution based on your optimization criteria okay well when you do that there is a trade-off here you want to maximize interoperational among agencies but it can cause autonomy loss okay can be reduction in terms of production of local accesses okay so as new constraints can be implied can be developed across multiple domains so there's a trade-off which can be need to be looked at so this was about when you're doing a tightly coupled federation of agencies but what happened is in another case extreme cases that I will keep my policy the way I have and you want to use my resources you tell me when you want to use my resources and I'll see if I can fit your request I can accept your request so what happened is if you're running an overall workflow problem and then I I'm based on the book like I can tell that I can identify that I need some help or some accesses and that's in domain number one some accesses in domain number two so and so forth so I can carry out my full workflow process and in that case what we have developed is another methodology I'll come to that in a minute and this kind of model is much more suitable across private enterprises example IBM has a municipal shared service cloud enabled application integration across many agencies in the e-government processes similarly industry 4.0 4.0 is a new standard coming up for manufacturing and production over for composition across many enterprises okay so each task of the overall workflow needs to access certain resources and those accesses are controlled by the individual organization policies and I need to verify can I run my workflow over all across all these agencies or all of these enterprises so here's an example of text redemption process across let's say county clerk office or county trade office and district clerk office so what happened is as a user if I make an initial assessment request that request is then transmitted to to district clerk office as well as county trade office they take their own times and so forth and get the information back if I'm doing an urgent request that can this whole thing be done in 40 hours 400 minutes and so forth then you start looking into a workflow like this if it's an urgent request process question is is this mappable to individual policies across these domains so what happened is that domains can only specify that we can serve you or not serve you this is all they don't tell you but they do not disclose their own internal policy okay so what we look at is looking at this interface specification of the policies question is can we is it possible that I can run the workflow across these domains okay and can question is can verify workflows in in absence of global meta policy which is the previous model we studied okay so the question is how domain policy is specified we are going to look at the duty of that model every policy every domain has its own policy based on time which is time dependent they have their own internal policies running providing resources on a different time so so we can use this assuming that duty of that model is used to capture policy requirement of the individual domain the question is can I map my workflow across these three county offices okay for example initial assessment request comes to the to the cco office which can then transmit information to other sites and then they can tell you whether we can finish the job according to according to your deadlines so what happened is in order to verify whether I can still compose this urgent request workflow process okay what we need to do is take the policy break in into multiple take the workflow break into individual workflows for the workflows in the individual domains and look into the property that whether the individual workflows of what are called projected workflows can be supported by different domains so here is a kind of simple state difficulty process where this part of the workflow has been given to this this domain which look at its own internal state model and try to map it so idea here is you have multiple asynchronous final state model running together and you're trying to go through these models and see you can coherently develop a global workflow verify global workflow across these different multiple a different final state machine model which represent duty of that policies so given the your workflow and this is a definition of the workflow the question is can you can you satisfy these two conditions that yes I can support the workflow and I can meet the timing requirement this is basically the detail of this slide so this is a architecture which we have implemented which takes your request of the overall workflow divide into different segments to different agencies and then agencies can be like domain one domain two domain three send the workflow to the individual domains and get the information back where they can support the virtual okay I have to speed up so here are some of the demos available for this thing of these two that well as the last topic is is a looking into privacy versus access control while the idea here is if you're sharing information are you are you protecting information from each other the idea here the question here is what is the tradeoff between the privacy and access control so I will kind of quickly go over it you have access control and let me the point here is for this is the information which are which needs to be disclosed and you want to protect protect individual information it's what you looking at the process of what we call generalization in which you kind of take the individual information and put in bigger blocks and so that the individual ideas cannot be cannot be disclosed individual information cannot be disclosed so what to use is for the privacy purpose we use gay and an organization technique which is generalization of the approach in the inflation database system if given and access control of data you want to generate generalization techniques and so that the privacy can be preserved so we look into this model and the question is can I enforce certain privacy requirement at the cost of losing some access information or at the cost of increasing access beyond my liberty the can increase the scope of my access and can still ensure privacy so that is the tradeoff okay the more if you want to increase your scope or the you should not be increasing too much scope either okay my access should be limited and so that I can state of law privacy I can read the privacy requirement so this is such a which we did the solution turns out to be complex problems in terms of finding these anonymization blocks and I will quickly go over it and that is a set of algorithms proposed because the original problem is and we compete and the idea has let me summarize quickly here the the k is basically the number of blocks you are merging together okay the half the value of k is the better utilization of the information is by the same time what happened is you are you have to give up a lot of access that is basically the vertical axis is indicating okay so there's that is a tradeoff we want to highlight in this slide and here's the system we have implemented for this organization technique for the relation data we have extended it to streaming data as well as the graph data the graph data is very important for us because in currently most of the social networks are graph data and you want to protect your privacy as much as you can not in terms of your IDs but also in terms of association structure who are your friends and how far they are they're connected to you and so forth okay so let me to put multimedia document security together the first part and the second part and the idea here is I can look at the ocpn model presented question is I can protect some individual individual in the in the lesson video or audio frames and that is looking at the different level of resolution of images and we can change the the ocpn model and put this security information requirement inside the model that if the beer is an adult can go ahead this way if this is the child take a different path for presentation different object must be structured and this is the structure of the new tool multimedia database system with the security model implemented but the last thing which is a tool we developed in which a user can can can compose their own information that if you are a if you are a physician or you are a patient or you are a health provider both can all these parties can access information but as a as a as a patient I'm the owner of the data I should know who can access it we should not access it and here it can be accessed so we have this this tool available this is a tool for this for this kind of access originally we designed it for for Facebook we we filed the initial patent but somehow University did not encourage us to go forward and turn it over to after we have this a paper ready Facebook came with this model how to protect individual information that the Facebook so currently this is a we're looking into now building a Xenon cyber base system we're more looking into now threat management across the system how to detect threats what are the response and recovery mechanism and some of the chatting we went looking into the scalability aspect of a large scale CVS and real-time response and recovery okay we started with the some work on cloud data center as a part of the CVS and recently published some work on this area at the end I would like to thank all the sponsors and collaborators as well as the most important among the greater students and the colleagues and collaborators with the department across the campus and from other institutions I'd be glad to thank you sorry for taking more time more than I know I'm sorry for rushing through the whole presentation too much to cover but I try to condense into some of the key projects we did which I believe has some major impact any questions that's the kind of you know kind of sort of in much of the area so I didn't see what you mean in the case as I said my research kind of shifted toward more on security I think there are some more interesting challenges in security which is which is kind of a new learning for me so I'll for near future at least I can continue working in the security area that's which happened you know going uh as I mentioned the serious was established the center they started a seed funding project and I look at the modeling work we have been doing in multimedia like between that model and the final state model and I see there's a opportunity for us for modeling quite a few especially a duty artwork model so we were successful in getting that seed funding but then it pan out into many NSF funded project on the road I can say the share luck I guess that we have been constantly getting funding from NSF the current work we're doing is North Grumman for the last few years for developing a kind of a theoretical basis for developing resilient CBS system which is can be for the CPS cyber physical system or IoT systems or cloud data centers so I found that very exciting that we may have access to some real data that partnership but this is such a cutting edge that you know people who are evaluating these things here don't know enough about you know I mean so something comes with a tax you're actually a good idea that goes maybe ahead of the time and then you know Facebook comes through with it I think that two things happen like that the student Arjuno Samuel who was who did this project as a we have a student from kind of school they found a very good job with Microsoft so they they started right in the middle as you you know they have to leave also we got some funding from from the university administration but then we signed for the VC to send a proposal we were say well there's no hope for this technology there's no potential in this technology and that kind of sentence was another set back for us so doing this as the students left that it was a major issue second thing is the VC VC funding was they don't give us encouraging remarks although we see Facebook doing the same thing later on after six months that every user can can protect information access can be given to their friends or relatives which is essentially the model we develop in IPM system great and it was a time let's give Dr. Kapoor thank you thank you very much for your time thank you you're a thank you for coming absolutely I'll be glad to thanks Sabu for coming


to be talking to you a bit about. I want to share with you my journey here in some ways mitigate, give you today. I submitted my talk to EuroPyton about four weeks ago and I was about here when I saw the email saying my talk had been accepted. I'm not saying EuroPyton is for my bluff and I need to prepare a talk. I'll work on it while I'm here. Yeah, I went to a drama concert in Borlund and I was looking for an event here in Borlund. And if you get the opportunity to go one day you should because it's a great one for people. It was interesting to learn that this was an ambition for Borlund. It was also quite distressing to see what this is.   I'll try and do that. So I hired myself one of these and I started here. By the way, if any of you have seen the 1985 film The Boonies, the early Steven Spielberg film, it's awesome, not so cool things like regional music, Catholic music, really. And I was a bit techie so I had one of those. And then I had one of those. And I had one of those as well. And then I really, really thought, I thought, no, it's time to get to that point. Yeah, but the fact is that it didn't match me at the time. So we ride monitors just back. I was thinking, let me go. I started work on a project for the first time since it was a system that monitored the software. So we had a site pivot and I took the aging technology from our monitor and turned that into a general purpose monitoring solution. And we built up the product over a decade and it was, to be honest, to be completely honest, it was never that great because there's a general problem with monitoring and it's all about like... The software is a software as a service. And we chose Google Compute Engine and GKE. And GKE is the hosted Kubernetes implementation that Google provide. And we're quite keen on dog food and we wanted to use our own solution to monitor our stuff. And also we needed to provision monitoring instances for customers who were signing up to the SaaS so that they could actually, you know, click a button and a monitoring instance would be deployed on Kubernetes. So we needed to interact with the Kubernetes API. We're all Python people so we had to do that with Python. So that's why we wrote Kube. Now it's important to say that there are other Python API wrappers out there. And I'd strongly encourage you to go off and look at them so you can see how rubbish they are and how good ours is. No, seriously.  They might be a better fit for you. And also if you do end up choosing one of these instead of Parkube, it'd be really great if you could come back and tell us what you thought was better because that would be interesting to know and we could try and fix anything that we've got going on in ours. We wrote ours. We wrote Kube in the way we wrote Kube because we wanted to abstract away from what's a somewhat moving target as far as the Kubernetes API goes. It's also got some idiosyncrasies that you don't necessarily need to be exposed to when you're interacting with Kubernetes via its API. So we wanted to kind of like create an opinionated version of the API that made things a little bit more palatable for the user of that API. We also wanted a clean watch interface. Watch interface allows you to get notifications of changes to resources within Kubernetes. And some of the other offerings that are about at the time, some have come and gone since we started but the ones that were about didn't do that very well. We wanted something with Pythonic and we didn't want to use code generation swagger and that's a theme in some of these alternatives. But you guys take a look and take your choice.  But just a very quick show of hands is who has kind of been exposed to Kubernetes? Okay, so third of you. I'll try and railroad through this because time's at a premium. So Kubernetes is about orchestrating Docker containers, essentially, but not just Docker containers. Docker came out of Truity File Systems and if any of you have been exposed to Solaris and Solaris Zones, similar kind of concept. What it gives you is basically an immutable deployment component. It's easy to author. There's a runtime that runs on many platforms and it allows you to develop an immutable deployment component that underpins DevOps practices and continuous deployment. Across multiple nodes, it's hard to manage Docker containers in the raw, especially for scale and resilience. So that's why control planes like Kubernetes and Dockerstorm came about. I mean Google already doing this. Google had a system called Borg which uses LXC containers and it manages those across their enterprise. It allowed Google to scale, develop productivity and the number of services they're offering to their customers internally and externally without the corresponding increase in operational overhead. So there was obviously, you know, it was a useful technology. Kubernetes has had an amazing amount of momentum behind it and it's interesting how many, in quotes, competitors have actually got behind Kubernetes where initially they thought to position themselves as direct competitors to Kubernetes. They kind of since seemed to acknowledge that they have a particular sweet spot, maybe it's in cluster management or managing containers on very, very large scales. And they seem to have all sought to accommodate Kubernetes in their offering and in their space. So, you know, the only sort of like, sort of offering that hasn't really done that I suppose is Dockerstorm because that is, you know, trying to do exactly the same thing. So how does it work? There you go. Happy with that? Excellent. Yeah, it's not very helpful, that kind of diagram, you know, and it just takes forever. And I've got time. So I just want to go through some key concepts. So in Kubernetes, we have the idea of a cluster which is a single homogenous cluster of nodes, compute resource. Watch out for a thing called ubinities, which is kind of an attempt to federate multiple Kubernetes clusters so you can have basically multiple clusters with different kinds of shapes of resource running inside it. A node is some resource where pods are scheduled. And pods are the smallest unit of scheduling that runs the actual containers. So Docker, but not exclusively Docker, there's also support coming for rocket containers. And the Docker containers run inside the pods. And those are the things that the Kubernetes system schedules. There's the concept of replica sets. And what they do is they, it's a specification that defines the pods and how many replicas of those pods that need to be for scale and resilience, amongst other things. There's also services. Services target pods and expose their capabilities at the edge of the Kubernetes cluster. So you can think about the actual Docker containers, I suppose, you know, as nano services and then the actual pods or microservices and then the service definitions provide actual services for a consumer. Labels are an interesting thing and we'll be looking at those very, very quickly. And they're key value pairs that are associated with resources within Kubernetes, but they will be a scheduler to organize the objects within it. And there's lots of other stuff that we could talk about, but that's probably enough to get us going through the next part of the talk, something, something 30 minutes. So some other, some key concepts for Kube. We need to get the terminology straight, really. Right at the beginning is, principally the API, the Kubernetes API defines, defines kinds and defines resources. So a kind is the name of an object schema, essentially it's a resource type. And a resource is a representation of a system entity that's sent or retrieved from the API by Jason over HTTP. And there's two types of resources, collections and elements. So these are kind of Kubernetes terms I'm using, but they do map quite nicely into Kube. So for example, a pod is a pod resource, whereas nodes is a node list resource and that's a collection of nodes. So try and bear that in mind. Additionally, it's really important to understand the separation of specification and status in Kubernetes. When an API update is made, the specification of the resource that you're updating is made. And that's available immediately. So that's almost like an atomic operation. But over time, Kubernetes will work to bring the status of the resource whose specification has changed up towards that specification. So the system will drive towards the most recent spec. And that makes the behavior of Kubernetes level-based, not edge-based, which is quite a nice feature. Okay, so now the tricky bit. I'm going to open a terminal window. Bear with me for a moment. Try and mirror this display. Yay, that works. Okay, cool. Okay, so what I've got running here is... Yes, sorry. Ooh, I could. Yeah, I should have tried that before. Now, say when. Is that good? Sure, okay. Okay. So I've got a single node Kubernetes cluster running on by MacBook Air. By the way, if anyone was interested, knowing how to do that, just come and see me at the stand and we can have a chat about it. It's quite cool. Right, so what I'm going to do... Okay, right, so, Python, Kube. Here we go. So what you do is just import Kube, spelling it probably right. Remember that America thing where I was like really jet lagged and was up till three o'clock in the morning trying to write this stuff. So be nice. So import Kube. So the key entry point in the Kube API is a cluster. So we can say something like cluster equals Kube.cluster and we create an instance of one of those things. So that gives us a cluster object. So there's... If you want... Okay, so one thing I forgot to mention was when you're interacting with the Kubernetes API, the preferred approach is to run a KubeControl proxy. And what that does is it proxies the KubeControl API from wherever it's running to localhost on your machine. So what I've got here is quite simply KubeControl proxy. You can just see it on the bottom running here. If you're running your Python code using Kube, you know, in a container, then what you normally do is have a sidecar container inside your pod. You're running the proxy and one's running your Python code. Okay, so the other thing I can do here is I can specify a URL if the proxy is running on a non-standard endpoint or port. So we can just say localhost, port number 8001 slash apri, something like that. And then we get, obviously, cluster instance. You can use context managers as well. So, yay. So you can say something like withKube.cluster, say K.nodes. We'll talk about this in a sec. So K.nodes is returned a node view and that will become clearer in a minute. So there's a few ways to actually create your entry point as a cluster. So do you remember I was talking earlier about collections and elements? Well, they're represented here as views and items. So this kind of nodes thing here, because it's plural, you can see that's actually a node list. So that's a collection. And I can iterate over that to get actual view items out. So let's have a look at a few of these. So we've got cluster.nodes. The cluster object has a few of these things, many of these things. You can look at the documentation. It's all on read-the-docs. It's a work in progress, but there's some essentials in there. And we can see things like the cluster's replica sets and namespaces and that kind of stuff. So, okay. So we want to get a resource item out of a view. So I can say something like RS because I'm going to get a replica set from my cluster.replica sets. And I can do a .fetch. And I need to specify the name. Now, something I prepared earlier, I have... This is just a cube control on the command line. And I can get the replica sets and I know I've got one called service demo. So I'm going to say get me service... service demo. But I have to specify the namespace. So I have to say namespace equals default. It's the namespace that that's running in. You see how bad my typing is. It shouldn't be allowed in the alive demos. And then we look at RS. Oh, look, we've got a replica set item now. So this is an actual element as opposed to a collection. And it's got some attributes associated with it. So I can say look at some metadata and I can see what the name is and lo and behold, it is service demo. So I actually got to give them the right thing. And I can see what namespace back came from. And I can also see what labels are associated with that particular replica set. So... Sorry, a bit closer to the bottom of the screen. Okay. So what's important to remember about resources is that they're versioned. Kubernetes versions, all of the resources it returns across the API. And if you remember when I was talking about the separation of spec and status, when you get given a resource item back, it's versioned. So we can see here that RS.meta.version is versioned in 1561. So... Sorry. So one thing I forgot to mention was, I think I did mention briefly, is that these collections are actually iterated. So I can do cool things like a list comprehension. So I can say RS for RS in cluster.replica sets. And you get... There's only one that you get a list of those things back. So... I can build a list, say, for example, saying node.meta.version for node in cluster.nodes. So that's going to give me a list of all the versions for all the nodes in the cluster. So there's only one, and at the moment it's in that version. If you keep doing this, eventually you will see a different version coming out. The state of the node resource has changed because something's changed about the node. It's used a slightly different amount of CPU and that's been reported and that, whatever. So when you're interacting through Qube, you need to make sure you've already got the latest version of the object. Otherwise you could be looking at stuff that's wrong or out of date. Okay, so back to labels. So let's have a look at our replica set object that we had and it's got some labels associated with it. It's got one. It's actually a dictionary. So I can do stuff like, look at run, the run attribute and get the value of service demo. It is, however, immutable, so you can't mess up that way. And that was kind of a design decision of ours when we were writing Qube that we wanted every operation to be done by a set call. So you can update the label using a set command. So you could say something like, let's add a new one, foo, and we'll set it to label.setFoo and we'll give it a value of a bar. That's not predictable at all, is it? Okay, so we get one back. Okay, let's have a look at RS. See if anyone supports what's going on here. RS.meta. And it's not there. That's really annoying. So that's because I'm actually looking at the old version of RS because that's the one that got returned from an earlier call. That version. So what I can do is this. I'm going to be fancy and use a list comprehension because I know what I'm expecting. RS for RS in cluster.replicasets. And I'll get the first value out of that and I should get an RS. So now if I look at RS.version, lo and behold, it's a slightly different version. Yay! Okay, so now let's have a look at RS.meta.labels and we can see that our foo actually is on there now. So that's really nice. And so updating a label is kind of the same as creating a label. So I can do that. It's returned by a new replica set which I didn't assign to a variable. So I'll do that. I'll look at RS.version. And let's have a look at labels. And we've got Baz set on there. So cool. So to go on about labels a lot. One, it was kind of easy to do in this. And the other thing is they're a really good way of managing your Kubernetes cluster. If you want to manage the way your resources, pods, services, et cetera, are managed, then setting and resetting labels is a good way of doing that. Okay, so we can also delete labels. So we can say RS.meta.labels.delete and we can say we want to delete foo. I'm not going to be caught out a second time. I'm actually going to assign that to RS and then look at RS.meta.labels and foo's gone. Okay, so that's kind of the end of the... That bit, the live code demo bit. So I'm going to go back to RS.meta.labels. Okay, so briefly talk about some of the features that I haven't got time to demo. And in the latest version of Kube, we've got creating and deleting resources which actually makes it quite useful. So you can actually go and create pods, delete pods, replicasets, services, namesplaces, all that kind of stuff. It's just a simple create call. It's a JSON specification and it does sense a call to Kubernetes. We've also got a watch API implementation which, you know, say, come by the booth and let us show you because it's really cool. And my colleague who wrote that bit actually wrote a blog about how it was tricky and he's done all you guys great service because he's insulated you from all the horrors of how to do watch support using Python and over HTTP and yeah, it's neat. There's also, if you remember the fetch command that I used to get resource items from collections, there's actually a filter capability so you can filter the return results on label values, which is also really natty and really cool and I didn't get a chance to show you. Finally, the cluster instance, which is your entry point, has a proxy to the Kubernetes API. So if all else fails and you want to get to the actual API in Python, while you're using Kube, you just use cluster.proxy to do that. Okay, so time for questions. It's on BitBucket and I'm really interested to hear if you all think BitBucket sucks and you think it should be on Git or if it doesn't really matter to people. I've had a sharp intake of breath from some audiences when I've asked them about that and anyway, that's where it is, happy to move it. Check us out on Koby.io. I'm Koby CTO. Follow me on Twitter because I'm funny and yeah, so I'll take questions if we've got time. Oh, no. Thank you. Oh, good. Hello. Okay, so the question was are we here or we can... Yes, we're in the vendor area. We've got one of those little booze on the green and yellow carpets. You'll see that that fancy graphic should be up on a monitor and we can show you where we've got it. It's still in beta, but we can show you where we've got and you can have a chat with us. My colleague, by the way, is one of the developers on Py.test so some of you may have heard of him anyway. Yes. Okay, so the question was what version of Kubernetes are we working with here? It wasn't. Oh, okay. So it's just an opaque number and it just represents a version of the resource compared to the last time the resource changed. Now, depending on the resource type, the kind, that could be anything. So for example, for a node, it could be because some of the nodes attributes have changed. It could be because the label has been updated on a replica set. So that's when the version number is incremented. Not just when you make the call, but when Kubernetes itself changes the resource. No. So what I should have said was don't rely on the version numbers. Just always get the latest version of the object. So I showed you the version numbers. I was kind of advised, don't show people the version numbers, but I just thought it was an interesting thing, so I did that. Any other? Okay. Okay. Okay. Come to the booth, ask my colleague, and he'll give you a really good answer. I'll give you an average answer. He'll give you a really good answer. Thanks, guys.


Okay, very good morning Friday the 10th of September. I hope you're doing well and before I begin the normal briefing Don't forget to check out the market maker podcast and the episode that Piers and I put out earlier this week We had a special interim episode We've got the normal one wrapping up the main market events of the week coming out in a few hours time But on Wednesday we recorded one called in search of Serena So not just because the US opens on at the moment, but more importantly About the changes that are happening happening at amplify We've got amplify me and our new platform officially launching on Wednesday the 15th next week And I would really love it if you could take some time jump on Apple Spotify search for amplify me and listen to specifically the episode on in search of Serena really explains our mission as a company me personally my My overall motivations for what I want to achieve as well as the business We talk about everything from the technology we have but to things like diversity in the workplace mental health in young people And yeah, it would be amazing if you could take a listen. I think you'll really enjoy it Hopefully but also join us on our mission But otherwise that let's get back to what's going on in markets this morning And I guess starting off in a chronological order the US closed last night was a little bit soft The S&P was down about half percent the Dow pretty similar the Nasdaq down four tenths of one percent So fairly uniform in that downward move the weekly jobless claims of course that we saw yesterday fell to a near 18 month low Allaying fears of a slowing economic recovery We have been seeing talk about kind of peak recovery and things like that and definitely this is a good situation With that number decreasing To kind of the best but we've seen since the onset of the pandemic But here comes the fine balance between when that trend starts to emerge in such a positive way Does it stoke then the expectation further about the Inevitability and more near-term timing of potentially of tapering from the Fed and and equities generally very sensitive to that One thing I would say though is overnight That any kind of negative handover into Asia emerging from the US was pretty quickly turned around The Nikkei in Japan among the outperformers do a lot of that Suga succession race Helping just boy things alongside M&A news flow also spurring some Renewed risk appetite and also Chinese tech stocks saw a bit of a bounce and we'll talk about in a moment US President Biden spoke to Xi Jinping for the first time in seven months last night And in fact silly the second call that they've had since Biden took over the administration So that in itself just restoring perhaps a little bit of calm about them being less fractious in their Communication more open dialogue is always typically well received And that was also reflected in performance of the Chinese Yuan overnight where the Yuan is headed for its strongest close in any three months But as far as the charts are set up this morning The dollar index is pretty flat and that's reflected in both major pairs pretty much trading unchanged Obviously we had a little bit of see-saw price action in the euro yesterday And that came by way of of course Christine the guard in the ECB So just while we're here a quick recap on that and what was said The ECB said they will slow the pace of pandemic bond buying program in the final corner Quarter of 2021 the guard pushed back though against any notion of this being tapering as we were discussing yesterday She knows the markets are ultra sensitive to to that word and the the meaning behind it And she described the ECB's decision yesterday as simply one of recalibration of their kind of emergency QE program The pandemic emergency purchase program for the next three months Officials who revealed new forecasts showing inflation will still undershoot their target reiterated the pledge About the 1.85 trillion euro kind of envelope running until March 2022 or later if needed Signaling then they're not yet really ready to discuss the ending of the measure just this recalibration. So overall Just looking at the way European assets. I mean, obviously was a degree of volatility yesterday in the day after mass generally speaking We saw lower yields Low euro and stock positive. So I think there was a little bit of trepidation perhaps that the guard wouldn't have been able to convey what she did which was Essentially reducing their bond buying moderately from their earlier pace But doing it in a way that didn't spook the markets and overall looking at how European assets are performing this morning She she did achieve that so That hurdle passed for the guard from the time being she does speak later on today But I wouldn't be expecting anything from her given the fact that it was only yesterday We had that official meeting now, but otherwise back to the charts Things are pretty flat Just given the positive tones that I said overnight in Asia European US equity index futures marginally positive Nothing really too exciting there technically going on crude oil as well has seen a bit of a Bit of a roller coaster in the intraday environment at least yesterday And one of the headlines that was quite interesting was was of course this one This was talking about China's SPR So let me just get up to speed and what exactly this was For those who weren't in markets yesterday China announced it will sell oil from its state petroleum reserves for the first time As Beijing steps up efforts to rein in inflationary pressures stemming from commodity markets And so it's this isn't too surprising They've been doing this particularly with a lot of metals That we've had just given the supply constraints bottlenecks squeezing up prices and we've seen this yesterday With the the fact that the ppi producer price index in china was tracking at 13 year high year on year And so they just want to keep those prices in check and so hence the reason why China is going to sell oil from its state reserves its strategic petroleum reserve in a bid to contain those Prices as I said since the start of the year china has been really ramping up efforts to control this Which has pushed up costs of everything pretty much from manufacturing to power to food And so hence the reason why they're taking that action, but I think this is Um, not a consistent thing. It's just a reaction effect that we saw yesterday that was pretty quickly Reversed and also of course We've got the fallout and all of the infantry data as well that we can have to work our way through From hurricane ida and the complications That that has created but for the moment Prices have stabilized and after kind of the sea shore price action from yesterday in oil There's not really too much movement happening this morning, albeit up above pivot in the future is up 50 cents Um, so let's get straight to it and let's talk about these two guys They're like best buds As far as that photo is concerned, but I'm not sure that that has been the case over the last recent few months You remember generally rhetoric between the two has been quite hostile Particularly given the fact that all of the issues of which biden has been facing domestic Now at foreign policy in Afghanistan Perhaps he's just looking to steady the ship a little bit and then also a meeting of two minds because China themselves are dealing with Quite a difficult covid outbreak At the moment, so perhaps for those reasons it's brought the two back to the table But overnight the chinese yuan as I mentioned traded firmer as the call between Xi Jinping and his counterpart Said to have lasted about 90 minutes. It's the first time they've spoken in seven months Has raised hopes of improved relations between the two nations the two countries vow to hold more regular communications Although the american leader expressed his frustration with recent dead end talk, so If you if you're new to this There's not that there's a tangible outcome to their discussions last night. That's not really what we're looking for It's just the fact that they're talking So instead of throwing verbal stones at each other, you know, this is a meaningful um More positive type response and generally markets tend to Have a bit of a lukewarm response to that in a more positive fashion But by no means is this any kind of deal making things like that These are the first tentative steps to Re-initiating dialogue between one another So I guess the next thing to look out for really is when are they going to talk again and the frequency of those talks? Not really focusing so much on actual outcomes at this point in time Um, how long can this last just a final point on this probably not that long I would say and the reason for that is you've got the midterms coming up and I think it's a difficult juggling act For biden given that he needs to remain pretty assertive with china It doesn't really want to be showing any type of concession going into Literally 12 13 months from now. So it's going to be interesting It's more of a I would say a relationship to manage up until that point rather than one I think we're going to see an incredible amount of of change in the next 12 to 18 months Okay, the other things I just wanted to mention feds speak feds bowman Encouraged still by the recovery said taper is likely this year Now that's probably going to sound very familiar and the reason for that is that bowman becomes the fifth fed official Fifth in the past two days Signaling that the disappointing jobs report shouldn't stop the fed from pressing ahead and beginning to pare down on its bond buying program Or i.e. tapering So I think that's pretty much baked into market expectation now again as we've always said it's not about if but when and it's fairly Neither really here or there. I think the ship has sailed on a near term initiation of tapering So if it does happen Towards the more back end of this year, I think that's just in line with what people are thinking And the market can manage that without any real severe disruption at this point. So yeah, just the latest on that Otherwise one thing I just wanted to note was a latest view from analyst at colman sacks on the uk And probably something you'll read a little bit more about perhaps when we go further forward Through this month and the next fortnight in particular and the reason for that is of course that furlough Ends at the end of this month in the uk and obviously there's still a particularly large amount of people who are on furlough Irrespective of the fact that we've had the reopening And kind of activity mobility things like that starting to open up and people are starting to go back to work So essentially a messier end to that furlough program from the boe What furlough program than the bank of england expects Will prompt the central bank to delay raising interest rates So goldman's basically saying that they think the bank of england a little bit too optimistic about the smoothness of that ending of program And the impact that that's going to have consequently unemployment and the economy Context investors expect the bank of england to hike its benchmark rate in may Um next year with 28 basis points of cumulative increases by the end of 2022 It's kind of how markets are priced and what the recent reuters Economists survey actually overnight said as well economists at goldman's though They don't anticipate borrowing costs will rise until the third quarter of 2023 So markets at the moment are priced for 28 basis points of cumulative increases by the end of 2022 So that would be more than one rate hike And whereas goldman's saying they're not even looking for the first one until the third quarter of 2023 So they're way more bearish in their outlook But again, they are an outlier with that view Compared to the street generally So it's a sense to just be aware of again. This isn't impactful for the pound this morning Just something to be aware of If you're tracking kind of bank commentary and outlooks on those areas Terms of the session ahead. We've already had some uk data and the latest gdp readings The pound didn't even blink I think pretty much as you would imagine The numbers were A touch soft the gdp estimate year and year seven and a half percent against expected eight Manufacturing output came in flat against point one Again, none of these really dramatic enough to really Change change sterling direction this morning Otherwise then looking further forward going into the morning. It's particularly quiet. I think really too much going on You've then got the ppi numbers coming out the states this afternoon And You've got the canadian jobs data probably worth keeping an eye on if you're in the fx market trading the loony But overall it's pretty quiet. There's not really a great deal of scheduled major data today Um, you legard is speaking at 10 30 as I said, you're a group press conference, but Not expecting too much there and then feds voter daily at two messed up at the same time Uh, but non-voter also speaking later on this afternoon So again, that is it. Don't forget to check out the podcast Specifically the midweek episode we put out But also there's a new one wrapping up the week and some thoughts about what's been happening That we'll go out later today other than that. Have an amazing weekend. Stay safe and I'll see you on monday. Thanks guys