Computers keep changing the world, but their power and safety is limited by their rigid design. The T2TILE project works for bigger and safer computing using living systems principles. Follow our progress here on T Tuesday Updates. This is the 33rd T Tuesday Update. Let's get into it. Last time we had the trip to Vienna for pioneers, it was great. In this past week, it was focused on making the inner tile connectors. I have a little bit of video, a little time lapse making them, but I'll drop that in here. Since then, the other thing this week, it's been about making a software load for these tiles. I mean, you know, these things have Linux in them and they have Ethernet and all this kind of stuff. But all of that is not really even essential to the research part, which is the movable feast and the ULAM and SPLATN programs and all of the robust first best effort stuff that we're laying on top of it. But the way it works out, the Linux load is coming in through a little microSD card and it's a little bit hard to change. So I spent quite a bit of time this week trying to come up with a load that was reasonably fresh and had things in somewhat sane positions and so on. It's not great, but that's what it was. And I ended up with the E-Series Flasher, a little microSD card that we plug into these things and hopefully not have to redo that. We're going to be using the Common Data Manager, which we talked about a month or more ago, to spread the research stuff, but hopefully the underlying Linux stuff will be relatively stable. We'll see what happens. We also, in the past week on Saturday, we had the second T2Tile project public meeting about how to explain this stuff that was really very helpful for me, not a whole lot of people watching the live stream, at least in part because social network genius I am. I forgot to make the link public until the last possible minute, but still the folks that were there, we had a good discussion and it was helpful for me at least. So in the coming week, it's time to get the camera-ready copy, the final copy of the paper that's going to the A-Life conference in Newcastle upon Tyne in the UK this summer. So that'll go out. I think maybe there might be some kind of thing that it can be an official preprint and we can kind of like talk about it after the camera-ready copy goes in. I'm not sure we'll find out. So okay, first up we'll talk about the intertile connectors. We got 375, it's a 354, I don't know how that happened, assembled PCBs with the Y-Pay-less connectors on the bottom and then these 3D printed handles that we put on top. I've now got a bag full of them. There's plenty more to be made and more coming still. In addition this week, I made a deal with the same company PCB way they're now going to manufacture the other kind of tile, the other kind of intertile connector. This is the PD or the DP that shares data and power that's used within a single zone controlled by power but we also need to have a different kind of connector, which is this is the handle for it, although we don't have the circuit board for it yet, that just connects the data and the ground pins but doesn't connect the power pins so that separately powered zones hopefully won't interfere with each other. The order for that has now gone in, that'll probably show up in mid-June so before then we won't really be doing a whole lot of between power zones but we have so much to do before we get to that anyway, hopefully it'll be alright. Okay, we'll take a look at that little video. The main event today is I put together a lotus. I put together 19 tiles, one with six around that, with 12 around that. I have never booted the entire lotus yet. I have booted fragments of it to test it out and see if things are working but I have not yet put the whole thing together because I thought, you know, what the heck, let's do it live and see what happens. So let's do it. So this is the question. Ladies and gentlemen, children of all ages, I give you a T2 tile lotus. It's not quite complete because you see these guys down here are not yet connected but all of these guys up here are. I mean this is big. I'm not even sure how much of it the camera is actually getting. Hopefully it's getting this. So what I'm going to do is I'm going to hook up these bottom ones so that we have the full lotus. And then we'll power it up. And so the reason for some concern is that, you know, when you first power up a piece of electronics, it's like all of its tubes for electricity are all empty. And so they all have to kind of fill up before things can start working normally here. Are we okay? And there we go.  It's not just like filling up with water, but it's kind of like filling up with water. And you know, if you don't have that much head of water behind you, if you just have a trickle of water coming in, then it'll take quite a bit of time for the pipes to fill up before everybody gets to the level that they're expecting to get at, which you'd say so what? But a lot of electronic circuitry is expecting the voltage to go from zero to whatever its working voltage is rather quickly and the more pipes you have to fill from a given power supply, the more current that is going to be drawn from the power supply. And if the power supply is not able to supply that much current quickly, then the voltage will rise slowly and we can end up having the electronics not actually boot properly. So I'm hoping it'll be all right. It'll probably be all right. But this is why we test over the heck is the other end of this? Here we go. All right. So you're ready for this? This is the first T2 tile lotus attempt to boot in the history of the universe. Here we go. All right. So we've got tile power everywhere. Those are the reds. We've got grid power. I'm sorry. We've got grid power. That's the reds. We've got tile power. Those are the greens. They look plausible. But we have one of them. We have this one here connected to the serial port. And where did the serial port go? Here we are. Okay. And it looks like it's kind of booting. So maybe we're all right. Come on. He's not going to boot. I mean that would be exactly the sort of thing that I would be worrying about if there was not enough current to supply this whole thing. That these guys might have gotten kind of starved. It looks like not everybody booted. So we have 17 out of 19. Well, so I'm going to try, well, I don't know. I guess I'm going to try, well, see, and this is the other kind of thing. You don't actually have to boot the entire universe all at once. You can hot plug these things.  First, I'll just try a little polite. What I'd really like to do is move the serial port over to one of these guys that's currently. Ah, oh look, so it's not, it wasn't even dead. So this may or may not actually start up okay. I think it isn't. I'm going to force the power cycle these guys. This is the kind of stuff I was talking about. It's terrible that due to my incompetence and the underlying software stuff and a shift to this thing called system D. The Linux boot process on these things. How do you like this for an irony? It is non-deterministic, but Linux is not ready to handle it. So, you know, it's not like, oh, so you like non-determinism, Dave. Stuff this in your pipe and smoke it. Yeah, I like non-determinism when the rest of the system was designed to handle it from the bottom up. Here, there's some kind of race conditions. Things might happen one way or they might happen another way. And especially, I don't really understand it that things will sometimes kind of get hung, either permanently hung or hung for a very long period of time and then eventually come up in the boot. All right. So, there we have it. We haven't quite gotten to... All right, we've got MFM running. We've got MFM running grand. I'm going to go back over here. Let's see if I can hook back up to this guy. I need to get some kind of little extender thing for the serial port. A little 3D printed gizmo that would extend these things so that it would fit in properly.  All right, well, screw it. I'm not sure if we're getting anywhere. Can we display them talking to each other? I don't know what's going on there. I probably pressed the power button on him, didn't I? Let's get him booting back up. Well, you get the idea, huh? We're going to figure out how to make computations that work on top of all this and not even notice. We're going to try it out. Rebooting in the middle. The chunk missing and so on and so forth. And that's what's coming. Because we're giving so much freedom to the hardware. So that's a definite problem connecting the... I got in. So what I wanted to do, let's see if we can get everybody, is I wanted to drop a chunk of new content into one of these tiles while we're displaying the talk to each other and see if we could see it moving. So I made a copy. So if we move CDM 11 to CDM common, then eventually, I guess we're not getting that much debugging. So we'll just have to see. But CDM ought to notice that it's got a new file here. It should gradually pull it in, parse it up, find out what's in it, check some signatures and so on. And eventually start announcing it to the neighbors and we should see some bigger arrows going as data starts getting exchanged out of this guy and then gradually it should flow all the way to the farthest corner of Lotus. I don't know if we're actually going to want to sit around and watch all that where we at here. See, he's consistently sending relatively big packets to this guy. So that'll mean both of these guys will know about this new content and we should see some big arrows going. Oh, it's going the other way. Could have gone this way. And usually, so this is, I don't know, 10, 12,000 bytes or something. It's not big, big, but mostly we're thinking about moving MFZ files and configuration files that hopefully won't actually be all that big. There's some stuff moving. And hold on, not entirely sure if that would be the same thing. Maybe you need to enhance our display here to give us a little bit more information about what's moving. I mean this is all, again, the low level debugging stuff and as we saw a while ago, the movable feast is still running while all of this is happening. We just tell it to not do its display and then send our own stuff to the display instead, which is one of the reasons why it's all so slow because it's actually sending signals between processes and so on. All right, well, so sort of a mixed bag. We definitely got it all booted. It did not all quite come up cleanly, although it does seem like that may have actually been the raciness and system D and so forth that's just due to, you know, let's say just due to my incompetence in using system D and that let it go at that. But with a little bit of futzing around, which kind of drove home the point that you can futz around with this thing while it's running, we have the full lotus. We have 19 tiles, they're talking to each other. So, you know, basically what I want to do and actually next week I would like to set some goals, set another plan, another target to try to get all of this stuff lifted up to the movable feast level. But it took more work than I expected just to get to this this week. So we'll do that next week. This is very cool. And, you know, stuff is just going all over the place. Let's go back to MFM mode here. And if we can, if everybody see, and the response to this button is not as snappy as it could be because it's being done by shell scripts, pearl scripts. But again, these are things that can be tweaked once we get the basic nutrition working again. Oh, yeah. And, okay, so, yes, it will boot after a fashion. The next update will be out in a week. We'll have a plan for getting to movable feast events talking to each other across tiles. Once we get to that, we can benchmark this thing. We can set the initial record for average event rate on an indefinitely scalable computer. And that's our big goal. And then we're going to play with this thing. I mean, this is one lotus. We're aiming at a ring lotus. This thing with six more of these things around it. We're going to have to be doing some infrastructure work to figure out how to manage all this. And that'll be something to talk about next week as well. Thanks for being here. Have a good week.


Emotional Intelligence and Emotional Leadership L Emotional Quotient EQ and Emotional Intelligence Quotient EQ is the capability of individuals to recognize their own emotions and those of others, discerned between different feelings and label them appropriately, use emotional information to guide thinking and behavior, and manage and slash or adjust emotions too. Adapt to Environments or Achieve One's Goal S Although the term first appeared in a 1960 for paper by Michael Belduck, it gained popularity in the 1995 book by that title, written by author and science journalist Daniel Goldman. Since this time, AI and Goldman's 1995 analysis, have been criticized within the scientific community, despite prolific reports of its usefulness in the popular press. Empathy is typically associated with ETI, because it relates to an individual connecting their personal experiences with those of others. However, the number of models exist that aim to measure levels of empathy ETI. There are currently several models of ETI. Goldman's original model may now be considered a mixed model that combines what has since been modeled separately as Ability ETI and Trait ETI. Goldman defined ETI as the array of skills and characteristics that drive leadership performance. The Trait model was developed by Konstantin Vasily Petrides in 2001. It encompasses behavioral dispositions and self-perceived abilities and is measured through self-report. The Ability model, developed by Peter Solovey and John Mayer in 2004, focuses on the individual's ability to process emotional information and use it to navigate the social environment. Studies have shown that people with high ETI have greater mental health, job performance, and leadership skills. Although no causal relationships have been shown and such findings are likely to be attributable to general intelligence and specific personality traits rather than emotional intelligence as a construct. For example, Goldman indicated that ETI accounted for 67 percent of the abilities deemed necessary for superior performance in leaders, and mattered twice as much as technical expertise or IQ. Other research finds that the effect of ETI on leadership and managerial performance is nonsignificant when ability and personality are controlled for, and that general intelligence correlates very closely with leadership. Markers of ETI and methods of developing it have become more widely coveted in the past decade.By whom questioned Mark when? In addition, studies have begun to provide evidence to help characterize the neural mechanisms of emotional intelligence. Researches have centered on whether ETI is a real intelligence and whether it has incremental validity over IQ and the big five personality traits.


Thank you. I'm not going to start yet. We're just trying to get the volume right here. Is that okay? Is that loud enough? Should I get it closer? Can you all hear me? Good? Okay. Thanks, Landon. I'm going to be pressing space and arrows. Yeah. Space arrows. Hand over to me. It's the same. I'll stop there. Yeah, for sure. If you're going to stand over here. I have this question. I can be here when introducing Landon. Stand over here. Is that a few of these arrows? Yeah. You need some press enter because if you want to walk and switch the slides it's... Ah, that's not good. Yeah. There might be some. It's for projects, I guess. If you don't mind, definitely not that much. It's fine. It's fine. You've got laptops. What kind of projects? Just in case. Are you prepared for the adults? I hope so. I think so. It's also 40 minutes. Yeah. Right after my mission. Yeah. I cleaned up my slides and printed out a PDF and put it into the repository. I guess there were two kind of slots, like the long one and the short one and we had the short one because I think Marcel had more than one hour. Oh, wow. I didn't realize that. Okay. I mean, 45 minutes is fine. You can make questions and everything. It's a lot of time. Was there a break in this workshop or were you given my will and something? Yeah, they took like a 5-10 hour break. Just one? I think so. Yeah. I stuck around for the beginning and then I went to do some work on the terrace. Yeah, on the terrace. And I saw that midway through the whole group kind of came outside to get off. On one side or something. Yeah. So I think they took one break after the first hour. It was a little bit of a long time, like three and a half hours. Yeah. So they took like a 5-10 hour break or something. The tough part about taking a break that is like how do you get everybody back in the workshop? People go wandering around. And I just said like, let's meet the year in 5 minutes. Yeah, I know all these people coming outside. Still getting a call? Yeah. They're going to the bathroom. Yeah, for sure. So are you happy with the demo? Did you get a community out there? Yeah, we basically showed what I showed them in the practice talk. Okay. Rafe, I guess. We're here to talk. Yeah. I mean, you said Eric dropped. Eric is a customer towards the end there.  Really? That'll be good. Yeah. Language. Yeah. Brain half, you know. Language. You can just say this language here. The strange of people at Armandet is figures in English. Consider like swearing in the second language is not swearing. Well, it doesn't have the same kind of way. Yeah. Yeah. Because I see English in all those movies and they use it the more a lot, right? Right. Right. In English, especially, a lot of that stuff has become pretty common. Yeah. Just that much. I mean, what's it like in Czech? Are there swear words that people don't use all the time? Yeah, yeah. Especially in different parts of the cities they use. Oh, really? Different words. Okay. Okay. It's strange that in Poland they use Urla, which is like pretty nasty in our country, but in their country it's like they use it all the time. Really? It's like lose the weight. Inflation. Right. Right. Exactly. Yeah. That's funny. Well, I can imagine too, like from what I understand about Czech and kind of Slavic languages, there's a lot of dominions, right? So I can imagine there's probably tons of swear words that all kind of sound similar, but they have different endings. Is that the case? Yeah. Okay. You can just kind of change it a little bit depending on how you feel over here. That's right. Yeah. But it's interesting that a lot of those swear words are in it, because it's really good. Is that the R with the hook of the word? No, no. It's the one word. Oh, wow. Yeah. We have a zic, something like that. But it's not that common. Okay. Prdl is us. This is nice word. I like prdl. It does sound nice. Prdl, prdl. So what's the R noise? What does that character look like for that? Prdl? Yeah. Prdl. Prdl. Okay. Prdl. And the R and the D, do they have anything? No, no, no. Just without any. Yeah. But see, that's what throws me out. When I see like prdl, it's like that word like prdl. Prdl. Yeah. Stranger. I'm supposed to say the H or what? Like, how do I say, you know, yeah. Oh, and I've added one slide today. It was this one. Just to sum up the demo because... Don't know.  I was looking for the logo of the language, but apparently it is not. Okay. I think it's like, it simulates the language. If anybody knows it, like, yeah, you know immediately what it is. You know what it is?  Hella low. Yeah. I mean, I cannot read very far. I understand it. What it means, but yeah, I can't mentally figure it out. We started in 50 or 40? 40. Yeah, 40. I think it's 50. I don't know. So are you prepared for, like, how hot it's going to be in Washington DC? Yeah, so that's like, yeah, it's pretty hot. I don't know if you know it or not, but Washington DC is basically built on top of a swamp. Uh-huh. So it's really humid down here? It's all the time? Not all the time. Like in the winter time it snows and stuff like that. But in the summertime it gets hot and it gets really humid there too. Because it's warm. Right, because of the swamp. Exactly. Smell it out? No. No. I mean, no more than you ever see. Just cars and stuff like that. But it's, but you won't, you don't know that you're on a swamp. Right? I can't tell. But that, it'll just be really muddy there. It'll be really humid. Oh, Jesus. Yeah, the temperature is pretty high. And if it's cold, so humid, yeah, we'll die. Yes, we'll just, like, spend a lot of time in the museums. They're nice and air-conditioned. Yeah, exactly. But you know, if you want to go see the Washington Monument and stuff like that. It's closed. Oh, it's closed? I saw it in the news in the morning. In the morning? It's on my TV and they said, like, it's very open amounts. What about the Lincoln Memorial? Can you see that? The big statue of Abraham Lincoln? I think so. That's, like, sitting Lincoln, right? Yeah, yeah. I'll check the Capitol. That's a class man, I think. You should be able to, you should be able to see the Washington Monument from there, but maybe you can't go out and see it. The park is pretty huge. Yeah. I don't know if you're allowed to go there, because it's pretty, pretty big. Yeah, these are the points I would like to visit. Yeah, that's fine. And there's a grave of Goura Cordero in Princeton, so I want to take a photo for him. Yeah, this is pretty good, actually. I don't know if people are allowed to go there or walk in the park. Yes, okay. Yeah, yeah. The reflecting pool. You can definitely, you may not be able to get, well, yeah, you go from the Lincoln Memorial, you can walk along, and you'll be able to see the, you know, the memorial there. And there was the scene for his gun, right? Yes, yeah. Yeah, exactly. That's where they had the big rally. And yeah, he comes running across the water.  No. Did you look at it? So like, go to where they wind. If you go to where they wind. Hey, not bad. How about yourself? Ah, yeah, pretty much. Okay, cool. We're just goofing around at this point, sorry. You want the light left on for now? You can turn it off, that's fine. Okay. If you see like, if you see how the, how there's like a circle over here and these lines go out and everything. Look on line about conspiracy theories about that. Yeah. Because there's, people say the masons, they, all the guys who founded the city were free masons, right? And so they drew out the lines of the city and people draw like an owl and stuff. Well, if you say the lines make an owl or like a, or like a star shape and stuff like that. So read about it. It's really nice. If you've gone to all the streets, it will get like 660. Right, exactly. Exactly. But if you, if you see like this. Yeah, right, right. And if you look at where the White House is, it's all kind of centered around there.  And so people have like taken the streets and they, they, they draw lines over it. Here's the owl. It's a lot of crazy. It's fun. It's fun. Turn it off. Oh, so we can have like one, one browser with the presentation and the other one for, because I will need the browser as well. It will be easier to like switch between. Yeah, I won't need to switch it off. So do whatever it's convenient for you. Oh, and Control 5 makes it full screen. If you, if you lost this full screen, Control 5 and Control is FM, I will have to switch it. Okay, okay. So Control 5 makes it full screen. Okay, cool. But if you want to leave the full screen off, you don't have to put like, turn it on again. Yeah. I don't know, I don't know, I swear to God. I think I can switch it to that. 89, man. It's low. It's low level, surely. I'm sure I'm ready to answer that. If so, few left-hand people. I think there are like 17 attendees that confirm that they've moved here. Okay, so, I'm 50% sure. Yeah, I could plan two. What's the, is this the one doing? Do you want to turn on the, to turn on the mirroring or whatever? Yes, it's Control F7. Oh, it doesn't work because it's probably behind. Alright, it's not Control, it's FM, sorry. So, so, it's actually FM. Oh, you switched the button? Yeah, yeah. We can turn it on like this. Okay, so it should be a mirror. Presenter. Yeah. I think I could take my phone. My own and take your phone. I was expecting there will be some. We can ask. Yeah, it's coming down. I'll take your word if you want. In case I get a turn emergency situation. It was my next idea. Turn on the notification. And mode is turning off, I think. See, I used the spreadsheet feature. Lighting. Yeah, yeah. So, it's turning off. Five, six, seven, eight, nine, 10, 11, 19. Oh, yeah, I see. We're doing better. We're all set to get started. Yep, we're all set. Keep going. All right, cool. All right, great. So, my name is Michael McEwen, and I'm joining Yerka Kremser today to talk about polyglot operators and in specific, the spark operator. We're both engineers at Red Hat. This is based on a lot of the work that we've been doing over the last few years. All right, so just a little outline. I'm going to start with kind of a history lesson of how we got here, how we arrived at the operator pattern. Then we'll go into how the operator pattern works and kind of what are the pieces of it. At that point, I'm going to hand it over to Yerka and he's going to talk about the spark operator and how we built it. He'll talk a little bit about an abstract operator library that we've been working on to make these things easier. We'll talk a little bit about different languages that you can write operators in. And then lastly, we'll talk about the OLM, operator lifecycle manager. So to start with, let's just get a quick show of hands. How many people here are familiar with Kubernetes? Okay, so a pretty good chunk of the audience. So I'm not going to go into too deep about Kubernetes, but as most of us know, Kubernetes has all different types of objects in it. These objects represent the resources that exist within a cluster. You have deployments, services, pods. This is just a handful of what's there. And as users, the first patterns that we came across for how you instantiate these objects is making miles of YAML code that you can then inject into your Kubernetes cluster. And this is a portion of a manifest that our team has been working on. And I couldn't, even at 6.font, I can't fit the whole thing on one slide. So this is just obscene, right? Like having to manage something like this. And as a user, the pattern I want to do is I want to take this manifest, I want to tell Kubernetes about it, and then Kubernetes will deploy something for me. Whatever it is I'm trying to do, it will do that. And if I always have to be the one controlling this, it can get very onerous on me to have to continually do this and maintain these manifests, especially when the patterns we use inside the manifest are repeated many times. So early on in the Kubernetes days, there was this idea of what we wanted was a control application that could sit inside of Kubernetes and could do the work of controlling these manifests and creating objects for us. But there's a problem that exists with this. Who's the user who's doing that action? If I run the commands from the command line, I've logged into a cluster that has some sort of authentication on it, and it knows who I am and it allows me to do work. But if I put an application into the cluster, and that application wants to create objects, who is the user who's doing that? Because I'm not logged in at that point, just the application is running. And there's a notion of something called a service account, and this is something that can do work for you inside the cluster. And this is what we used early on to build applications that could do this type of operation. Now, to take things a little further, once we built these control applications, what we wanted was to have other applications that could speak to them and say, I would like some resource to be deployed for me, and I don't want to have to manage the manifest or the objects that are associated with that. I'd like the control application to do it. So now you can imagine we're even one step further removed from what user is running all this. The answer to this came in the form of what we're known as controllers or more recently, operators. So these are kind of the basics of the operator pattern. It gave us a way to extend Kubernetes, so we could start to build custom applications that could control various object life cycles inside Kubernetes. It's also kind of fundamentally tied to the idea of resources and controllers. So in general, a controller is a type of pattern a loop that can watch objects and do things for you. And controller is really the language that is at the heart of this. But where controllers differentiate themselves from operators and an operator is a type of controller, but an operator has the notion of being tied to custom resources, and those custom resources would allow you to describe complex topologies or architectures using something that you can control Now, controllers are able to react on events that occur inside of Kubernetes, and we put crud here, but we kind of crossed out the R because really a controller is watching creation events, it's watching update events, and it's watching deletion events. It's not watching read events because you're not going to watch when everyone's reading an object. It's just out of the scope for what they're doing. And you might see in the Kubernetes documentation these terms get kind of confused sometimes. So if you search for operator, you can find that in the Kubernetes documentation, but you'll also find this term custom controllers. That's another piece of language they use. And a lot of this goes into how these patterns evolved and how they were brought into the Kubernetes community. And this is kind of a historical thing that just has to do with who developed the technology and how these words were differentiated from each other. So in general, and I'm just going to do this from a very high level, I'm not going to get into the internal control loops and whatnot, but this is our pattern. We have an operator that's running that before I might have called the control application, and it wants to tell the Kubernetes API, I want to listen for some sort of resource. And this CRX is, you know, this is our custom resource. This is whatever we've created that we want to monitor. So we tell Kubernetes, all right, I'd like to listen to this object. Especially Kubernetes is just like, yeah, okay, whatever, like, you do you, I'll do me. But what's happening internally in Kubernetes is you set up a watcher so that when Kubernetes gets a new event on the custom resource you're looking for, your operator will get notified about that. And now you can do some sort of action depending on what it is you need to do. So at that point, the operator kind of says, all right, you've asked for some new resource or maybe you've deleted a resource. What do I need to do to clean up for this complex architecture that you've deployed into Kubernetes? And so then the operator can say, all right, well, you know, maybe deploy this many replicas or change the state of something depending on, you know, this would all get into the specifics of what your custom resource was trying to do. Then Kubernetes will say, all right, yeah, you wanted to delete this or maybe a deletion event comes in and Kubernetes is able to inform your operator that, hey, someone just deleted this custom resource that you made, and maybe your custom resource represents several pods and services and your operator can now go through and clean all that stuff up. Like we see, your operator can now send that back. And this is all taking the place of what we used to see in these manifests and running command line operations. This is all happening in the cloud now, so I don't need to be running this from my command line. Now, I mentioned custom resources and this is kind of the representation. This is talking about how we represent these resources. So we create something called a custom resource definition and this is how we inject new object types into Kubernetes. So you saw in the beginning, I had some of the different objects up there, like pods, service, et cetera. In the case of what we're going to talk about specifically, we wanted to make a Spark resource because Spark is a distributed computing platform. It can have many different nodes that get deployed and we wanted one resource to manage that instead of looking at all the different pods that make that up. And so custom resources are what come out of the definition. So once I've defined something, I say I've defined a Spark cluster. Now the custom resource itself is an actual instantiation of that. You know, they bundle in a lot of the same things that you see in the other objects. You can represent the state or the life cycle or what's going on. There's all sorts of information that you can encode in there. Now, the last line here about config maps. You don't have to use custom resource definitions. Those are the most commonly accepted, and I think that's the way you want to extend Kubernetes. But it is possible to create watchers that watch other things. And so config maps are a way to put data into the Kubernetes, you know, store into XCD so Kubernetes can know about it. And you could actually set up a watcher on config maps and have some sort of, you know, complex structure inside there that you could do action on. We have some of that in the abstract operator. And we mainly did it because in platforms like OpenShift where you have a strong role-based authentication set up, creating a custom resource definition is something that only a cluster administrator can do. Whereas a config map, anyone can create one of those. So it makes it much easier for a standard user to come and start, you know, doing whatever activity you'd like them to do. This is a quick example of what a custom resource looks like. This is not the definition. This is actually what the resource would look like. So, you know, you can see we've made a kind here called a Spark cluster. In this case, we're giving it a name. This is for an actual specific deployment. You know, we can tell it how many workers and masters. And this is all specific information to the actual application that we're writing. So, you know, in the case of a Spark cluster, this is information we want to know about. If you were deploying something else, maybe a database of some type or a website or, you know, something along those lines, this information would be specific to whatever it is you're doing basically. So a couple of quick notes here. As I said, custom resource definitions are the main way to extend Kubernetes. This is the community is kind of rallying behind this as the main way to add your own custom extensions into Kubernetes. And then building operators around those. One of the kind of nice things about this is you can imagine the kubectl command, normally when I want to look at an object, I say, you know, kubectl get pods or kubectl get services. It's much nicer if I could say kubectl get Spark cluster and see my Spark cluster as one object as opposed to saying kubectl give me back everything in this project which has all the pods that go with my masters and workers, all the services that are related with them, all the deployments that are associated with that. So you can imagine that for managing these things, it's much easier just to be able to look at one entry than to look at an exploding list of things that make up all the resources. And also, on systems like OpenShift and other distros and vanilla Kubernetes that has RBAC enabled, the role-based authentication, you can now start to put access controls on who can create custom resources. So you can start to get really fine-grained control of how those things can be made. And like I said, in OpenShift, and in other Kubernetes distros where there's a strong role-based authentication, you might be restricted in how many custom resources you can make or how many definitions you can put into the system or even if you can. So it's something to kind of keep in mind as you do this. Now, we might just think, well, all the operator is doing is just deploying manifest for me, right? But it can actually do a lot more than that. And there's a lot of tooling around this, and Yurka's going to talk about some of that tooling, but, you know, manifest are just the beginning. You can use Ansible. There's an Ansible operator where you can just take Ansible playbooks and put all the logic, the conditional and looping logic that goes into those. Those can be encoded inside an operator. If you're familiar with Helm charts, which is a very specific way to deploy things that the Kubernetes community likes, you can also encode those inside of operators, case on it and customize our other methodologies. You can go even further than that and write operators in specific languages, and Yurka's going to show you how we did that with Java. So now we can use Java code to do all sorts of complex tasks that maybe a manifest or an Ansible playbook would not be able to do. Now, this is an example that we pulled out of the O'Reilly Kubernetes patterns book. This is actually Bash. Just to show you how flexible these operators are, this is really all that's happening at the base of an operator. We've got a few pieces up here that's set up kind of how you connect to the Kubernetes cluster. But then all we're doing is setting up a watch and then we just kind of loop continually. And this is what's sometimes referred to as the reconciliation loop. So this loop continually runs, and when new events come in, your application will get notified, that loop will run once every, you know, whatever the cycle you have set up to run on, it will run and see, okay, have new objects been created, is there some work I need to do. So this was just an example to show you really how simply these things can be written. I wouldn't recommend writing them in Bash, but if you feel that way, you could do it. So I'm going to hand it over to Yurka now, and he's going to talk a little bit more about the actual implementation details. Thank you, Mike. First, I'll start the cluster. So thanks for introducing the general information about operators. I will focus more on like one particular instance, which is Spark operator. It's written in Java. For those who don't know Spark, it's a unifying analytics engine for distributed data processing. And this operator supports free custom resources, Spark cluster application, and history server. Spark cluster obviously deploys Spark cluster application. It represents an application that can itself deploy a Spark cluster that's desired or dedicated for this application. And history server is something that can keep track of your running jobs. So it started as a toy project, and now it's adopted by AICOE project called the OpenATAP. And it's compatible with Google's operator on the CRD level. So it's written in different language. It's written in Java. The Google's operator is written in Go. But the CRD's custom resources look the same way. So people can migrate smoothly between those two. Right, so let's look how it looks like. I have the cluster deployed. So first I need to deploy the operator. Is the font visible? So I will show you the manifest of the operator first. It's always Vim, actually. It's a list of yamls that does the deployment of the operator. It contains service account, the role that's assigned for the service account. And the most important part is the deployment where we specify the Docker image or container image that's going to represent the operator. And with this environment variable we are seeing, like, watch in this namespace. Watch for events in this namespace. This convention brought by OLM and also specifying the limits. So let's apply it. I have to look as an admin, sorry. Yeah, because I was required for cluster admin rights because I was also creating CRD's. So now everything passed and I'm watching the pods. So there is a new pod called Spark operator and it's running and listening for events. I can split the screen and show you the logs of the operator. This is an LES for showing the logs of the operator. And I'll make it bigger again. It started and it's already exposed an endpoint. If I open it in a browser this is endpoint with metrics. So the part of the framework is exposing a couple of simple metrics that can be scraped by Prometheus. And I can now deploy or create the custom resource for the Spark cluster and hopefully it will be caused by the operator that will create the actual Spark cluster for us. Again, split the screen. So this is the example of the custom resource for the Spark cluster and when I apply it here we can see in the logs that operator called this event and is creating Spark cluster for us. And we can see three new pods because we asked for one instance of master and two instances for workers. So they are being deployed and now they are ready. We can verify that it's already Spark cluster by exposing the Spark UI. So let's do that. A lot of resources were actually created. There was replication controls involved, pods and services. And if I expose the service for Spark UI it should be responding. So we just created a route for the web UI. Here it is, the web UI for the Spark and I can also create a new notebook for that can attach to the Spark cluster and simulate the client application, the driver. For that I will create simple web and I will also expose the service for the newly created notebook. So this is the new workshop notebook that will try to attach to the cluster. But it needs a token so first I need to grab it from the logs.  I have the default settings. Here is the token. It contains a couple of notebooks and one of them is a notebook for connecting to Spark application. By default it tries to spin up its own local cluster and local host. But we can provide an external hostname and this should correspond to a service represented by the Spark cluster. Spark is listening on board 7077. So let me put it here. And if I evaluate the cell by pressing control enter we should be able to see in this Spark web UI before it was no connected application but if I refresh the page there is now one Spark shell application connected to it so it works. So it was the Spark operator in a nutshell. It has a lot of more features than the basics. So how it was done. This is basically the implementation that can fit into one slide because of course I'm hiding the complexity by the method calls but in a nutshell it's one class. This is for one watcher. This is for the cluster operator. We extend abstract operator which comes from the library and we have to override methods on edge, on delete and on modify which basically handles the events of the Spark cluster. So and we are using Kubernetes client for this. So this is like the what's happening. I'm showing you the shiny thing but a lot of stuff is happening under cover. And one of those libraries, one of the dependencies is Kubernetes fabricate client. It has full an API. It's a types of client so it works with method calls I don't have to compose strings and call those strings. And what's really convenient about the client that it just works out of the box. It tries to figure out from which environment it was invoked and it grabs the security from either config file or as a mountain secrets from the container. And the other library was the abstract operator and that's something that I've created for other Java people that would like to write operators in Java or JVM languages. Automate the bootstrapping of the application but also creating those watchers for those event loops. And also it supports JSON schema as a single source of truth so you can describe your entity objects as a JSON schema and that will create classes for your bootstrap your application with entity classes. Both approaches are supported custom resource and config maps. As Mike has mentioned custom maps may be useful for testing or when you don't have the cluster admin rights in Kubernetes. Recently Quarkus.io support was added so now it can use the Grail VM compiler for ahead-of-time compilation and it can create similar binary as GoLang does so it's just one binary when everything is technically linked together and it can be added to a container and you can basically use from scratch. I wouldn't recommend it in the local files. Add just this one library and just one binary and run it. It supports also CDI and just context independence injection but it has to sacrifice like big performance for the boot speed because that's what the Grail compiler does. I have examples for other languages which are only the JVM languages currently but Grail VM also supports like really polyglot inter-operation but this is not done yet. So I have example for Java, Scala, Kotlin, Groovy, Haskell, JavaScript and the talk promised that it will be polyglot operators so now I will show another demo which is crazy. First I need to run the VS code and in the behind the Makefile is building the project and deploying the operator so I first go for the code so it's an application written in Groovy and as you can see we are again extending the abstract operator class that is like generic class and where the type parameter is the entity we are watching and in this Groovy class we are statically importing function from a language called Fregge which is an implementation of Haskell on top of JVM so it's three languages Groovy, Java and Haskell and also later on we will also import a feature or function from language called BrainFuck and so what this operator does is it watches for cast config maps and it will basically create another config map with the result so config map will express an input which is a number and it creates a new config map which it's a calculated like n-fibonacci member of the sequence so it should be running by now and it's a config map so now if I create a new config map it started doing something and if I ask for all the config maps in the cluster there is the first one I have created by this ocapply I can show that one online so this is the first this is the input basically for the algorithm and this one was created by the operator so if I show the result I think cm so this is so it says result is this huge number which it happens to be 40 second member of the Fibonacci sequence but what it also did was calculating a Pi it's like really artificial example but it can say the interoperability between multiple more or less esoteric languages and the Pi function Pi approximation was done in this main method so here we have on-head handler which calculates the Fibonacci number but also calls the main method which comes from this statically imported function so if you look into it it's a bf interpreter written in frege and all it does it has three methods Pi approximation hello world and 9 to 0 and this main method calls the Pi approximation so this is the program for approximating Pi in brainfuck it's readable right and as we can see it was written in the log so this is the Pi approximation and here it has a very simple UI or interface that if I put more pluses here it will calculate like the number of digits we want to approximate so it's like unary coding and this is the content of the tape of the simulating machine so just to sum up we had a plan being written in groovy that was extending class from Java the library was added as a normal jar library through Gradle and this is logo for frege which is basically Haskell on the JVM and from frege we firstly called the n-fibonacci number and then we were able to simulate the brainfuck language using the interpreter and which itself approximates the Pi. It's a really artificial demo but it can show you that operators are not only go action so people today write operators a lot in Go which makes sense because all the ecosystem is written in Golang Docker is written in Golang, Kubernetes is written in Golang but Go is not as important is not as popular as Java in those indices and I would argue that a lot of existing infrastructure is still written in Java and it may make sense to use the same language for the operand and the operator itself people complain a lot about startup time when it comes to Java memory footprint but it gets much better with the porcos and Gravian recently and as for the spark operator the memory footprint is under one max and the container is also under one megabytes so yeah as I told it's considered writing the operator in the same language as you write the operands yesterday there was talk about Python SDK for operators from Subin which is another approach and something that allows all this interoperation is tool called OLM operator lifecycle management where you can write describe metadata about your operators by something called cluster service version manifest where you can describe what your operator requires when it comes to writes what reads and what resources it should be able to read and write but also what custom resources it should be created for it so it kind of work around in open shift to overcome this need cluster admin write so you can create this CSV manifest and the open shift itself there is an operator that watches for this CSV files and it will create this custom resources for you there is a operator marketplace these days and also upper registry when you can store these yamls and you can push those yamls using something called operator career so you can have your operator deploy it release it as a docker image and then provide this manifest in a guay.io from which people can use it this is the example of the operator app.io and there is pargo operator right here so this is the java operator the other famous operator written in java is streamz for apache kafka but mostly all of them the others are written in go so how to start new operator first understand what you want to do understand your domain we have examples for the java operators and copy pasting is always good source of information when it's we are in the open source world so here is the point I would like to I wanted to like to make that if you have an existing framework database distributed system whatever written in java consider using the same language because you can maintain the expertise or people don't have to use another language just for writing an operator can be useful for when it comes to money thank you that was it we have questions any questions zac all the way in the back thank you great presentation just had a you mentioned corkis if you can tell us a little bit more about what corkis is can you speak up a little bit you mentioned something about the java footprint and using corkis how that might help maybe if you can explain that a little bit more so corkis is a framework developed in redhead generally and it uses grahlvm which is compiler started in oracle and it provides a way to take your jar file and create like one binary from it one of the functions of grahlvm that contains more features and they call it native image so it takes this jar file and transform it to statically just one binary that has statically linked everything together which is self-contained binary that can be run and how it does it work it in java like the code is interpreted you have the bytecode and jvm tries to interpret the bytecode and after some certain period of time it identifies the hotspots which lines of this bytecode were run frequently and it just in time compiler kicks in and tries to compile the hotspots for the bytecode but in grahlvm they basically compile everything once so they sacrifice the interoperability between different platforms is not right once run anywhere anymore but you get the fast bootstrap because they also have some smart features that it will actually try to evaluate all those static initializers create a heap snapshot and the heap snapshot is part of the image itself so once it's starting it just loads this snapshot of this heap and it's able to start faster because it's not chill any other questions thanks for the talk I'm glad to see things happening in other languages I was wondering though after you've made your operator or while you're making it how difficult are these things to debug when you're when you're building it I imagine like in the reconciliation loop or something like this you might have bugs how hard is that typically in your experience I think it's pretty easy one of the things you didn't see here like what you saw Yirka doing with the example was he started the pod that has the operator in it and the operator is just an application and we could tail the logs from that so we could see the logs coming out but there's actually another way we could run it we could run it locally on the laptop and you could have it connected remotely to the cluster doing the same thing so you could actually run you know like your ID like eclipse or something like that you could have the operator in eclipse and so if you wanted to you could actually go to the level of using a step debugger on the actual operator code and that isn't just JVM you can do that in a lot of different languages so there's an Ansible operator right that comes out of the operator SDK framework you can actually run that locally as well and just tail the logs right there and see what's going on so I think I don't know I think like maybe I'm speaking for Yirka a little bit much but I think we both found it pretty easy to debug these things basically you're running it you know in whatever tooling you wanted to use basically and that's actually the feature that comes for free by using that fabricated client because it can realize in which environment it's running if it is in a Docker environment in Kubernetes or on the local hosts it can take the Kubernetes config file from whatever it has some like rules that takes precedence like precedency rules like from which it takes the config file but if it succeeds it just takes it and runs yeah I was wondering can the OLM be leveraged to make it easier for less privileged users to install these objects or do you still need admin to use that so I have a little trouble here you say using the OLM is it easier for less privileged users to install an operator? yeah that's right you talked about how to have admin privileged to actually do the install I was wondering if the OLM can be a way to get around that problem I think you still need a cluster admin to install the custom resource definitions for you but can that be done through the OLM? yeah I think with OLM the CSV custom resource definitions is already there so you need a right to be able to create the new CSV and then the OLM operator will create those CRDs for you so it kind of shifts the problem somewhere else so you need a different set of privileges to do that basically but presumably it's less than cluster admin still this is when you're getting into Kubernetes and we talked about role-based access for all the different objects it's like this is just one more object you can put a role on is someone privileged enough to install an operator in your cluster the custom resource definition will have to be there in order for the OLM to be able to deploy your operator so someone would have had to install it presumably a cluster administrator actually there are like seven or even more other custom resources just for the OLM to work well there's like subscription and something like that so you can subscribe to a channel of where the OLM operator is published and you can create new versions updates and such things and it's like ideally people don't have to care about the CRDs at all it should be exposed by the console in OpenShift any other questions? alright well thank you very much for your time thank you yeah I look pretty well yeah that was also again too quick can I turn it off? yeah just turn it off I'll turn it off


The Avid and Costello program brought to you by Camel, the cigarette of costlier, properly aged tobaccos. See if your throat and your taste don't make Camel a first with you, too. Find out for yourself. Listen to the great rhythms of Will Augbernany's orchestra, the swingy singing of Connie Hayes. And that dumpy, dumpling-head little diplomat, who, when he heard that Mussolini and Hitler were dead, had this to say. Hey, Costello, it's about time you got here. What were you doing at the music shop down on the corner? Oh, I would have needed to get a record of that song about Molotov. A song about the great Russian diplomat? Molotov? Yeah. What is it called? I came here to talk for Joe. I know you're getting dumber every day. I think you could tell everything you know in five minutes. I could tell everything that both of us know and it wouldn't take any longer. Ah, no. Never mind that, Costello. You've been acting very peculiar since we started our picture at the MGM. This is going to kill a lot of people. Yes. I'm afraid you're getting very conceited. I am not conceited. I'm the same talented, lovable, high-class, big shot I've always been. I was right.   Well, I had to do it, Abbot. I always wanted a picture of me. What did you write on that picture? With love, from one handsome guy to another.  Abbot, I wish you'd tell that to my scout master. Why? He takes on a joke. Oh. Costello, you are becoming impossible. Everybody at the studio is talking about you. Yeah, but they all say a nice thing. Yeah, I wonder. Sylvan Simon, Martin Gargile, they're all speaking so nice of me. Just yesterday, Margot O'Brien paid me a compliment. Margot O'Brien is just a little child, and I heard what she said to you. You did? Yes. Margot O'Brien said you had a face that only a mother could love. Yeah, but did you ever see her mother? No. Costello. Banana! You know, the way you've been chasing the girls at the studio set is disgraceful. Those actresses don't want to be bothered with you. You're not the romantic type. Oh, is that so? Well, Judy Garland, she thinks I'm a great romantic lover. She said I reminded her of Rooney. Judy Garland said you reminded her of Rooney? Well, she didn't use them words, but she said every time I kissed her it was like getting a Mickey.   Now, what's wrong with my face? I'm getting prettier every day. I'm getting so pretty that I'm even making my own mother jealous. Oh, Costello, how could you make your mother jealous? She looks at me and gets jealous that you're her mother's. No, nobody is jealous of you.  Is that so? Yes. Well, it so happens, Abbott, that Mabel Mustard Plaster is stuck on me. Last night, her... I don't get it.  Do you know what made those coals turn red? I don't know. I don't know. Tell me, Costello, when you first met Mabel, were you infatuated? No, but she was about half-plastered. Costello, you don't understand. I mean, when you started to woo Mabel, were you smitten? Oh, certainly I was smitten. We were both smitten. You don't think I woo standing up to you?  I was smitten right by the... Please, I didn't say smitten. I said smitten. When you held hands with Mabel the first time, were you smitten? No, sir. You weren't smitten? No, when I hold hands with a girl, I don't wear no smittens. Now, look, Costello, I'm only trying to find out how you feel about Mabel musted-plastered. Now, if you were smitten with a girl, you might hanker for her. Did you ever hanker for her? I even hankered with her. Oh, no, I didn't. You sap. How could you hanker for a girl? Well, it happened last Sunday, Abbot. Mabel and I got on a roadboat and rode way out to the end of the point, yes. And we hankered there all day. Why did we have fun? I wasn't even wearing my smittens. It wasn't cold. No, no, no. No, Costello, you're confusing the issue. You're talking about hankering a boat, and I'm talking about hankering for a girl. Now, hankering is like yearning. Tell me, are you yearning for Mabel? No, sir, I'm yearning for myself and my father. You yearn for yourself and your father? Yeah, I make $20 a week, and my father takes half of what I yearn. No. Costello, when I say yearn, I don't mean yearn like in earning. I mean yearn like in yearning. And to yearn, you must be smitten. If you are smitten, that constitutes infatuation. Now, you've got it. Now, I don't even know what I'm talking about!  You'll never be as successful as a lady's. Oh, no, well, for your information, Mr. Rabbit, there's a dozen women in Hollywood tearing their hair out just to have a date with me. Well, why don't you go out with them? Who wants to go out with bald-headed women? Oh, get me out of here! A soldier in Okinawa is lighting a camel, and so is the soldier in Stuttgart, and a welder in D.C. and a welder in D.C. and a debutante in New York and her grandmother. And each of these camels and millions of others the world around are delivering the rich, full flavor and cool mildness always associated with the name of camel. The flavor and mildness of a superb blend of costlier tobaccos now, as always. For this brand will not be sold down the river. War or peace, camels are still camels. In spite of the pressure of these times, the fantastic demand for more and more of the world around us is still growing. The world around us, the fantastic demand for more and more billions of camels, costlier tobaccos properly aged and blended in the time-honored camel way are being used. Why camels just wouldn't be camels if green, insufficiently cured tobaccos were used. So ask for camels every time you buy cigarettes. Camels, still the cigarette of costlier tobaccos. Folks, last week at rehearsal a young fellow walked in the studio and started singing. And nobody stopped him. Up until a short time ago, he was an aerial gunner and a B-17. And nobody stopped him there either. And after you folks hear him tonight, I don't think you'll ever want him to stop. Ex aerial gunner Bob Matthews with Will Osburn and the orchestra. Things for our camel fans. Should camp, I should go. But for a dream. Hey pictures, no more.  Getting basketballs bounced off of my head and having oyster squirtin' milk in my puss. Oh, calm down. No more! Calm down, Gastella. Never mind. Listen, no more of that now.  You can be a dramatic actor. That takes training and background. Oh, I got that habit. My whole family was high-class actors. My Aunt Minnie was a fan dancer. A fan dancer? Yeah, and one time when Aunt Minnie was doing a fan dance, they dropped their fans. And what happened? The mouse fainted. Did they get rid of the mouse? Huh? Did they get rid of the mouse? No, he had a ticket. They couldn't put him out. Ah, look, Gastella, please. You don't understand. I'm talking about dramatic background like I've got. Why, when I was 12 years old, I was with the Abbey players of Ireland. That's nothing. When I was 12 years old, I was with the Hookie players of Paterson. Come in. I beg your pardon. Which one of you is Luke Costello, the great actor? That's me. Mr. Costello, please face my camera and give me a big smile. Thank you. Thank you. Thank you, Mr. Costello. And don't forget to look in the paper tomorrow morning. Will my picture be in? No, but Dick Tracy's in the terrible math. I'll put that guy as Liesl's brother at Chicken Punks. Hello, yes, this is Bud Abbott. Okay, I'll tell Castello. Hey, that was Universal Studio. They said they won't be able to complete our latest picture of the 1990s until they are able to secure a dramatic actress to play the final scene. They said that Betty Davis, Catherine Hepburn, Joan Fontaine and all the other dramatic actresses are busy and our picture will have to wait. Did they realize that this is a half-hour program? Why, what's wrong? They said all that just now? Yes. We must be running overtime, brother. Never mind that. Costello, this is your big chance to prove your acting ability.  Take you to the studio and we'll see if you're good enough to pull the director into letting you do the final scene. But they'll recognize me. They know all the dramatic actresses. Yes, but they don't know all the South American dramatic actresses. Oh, I get it. You want me to be another common veranda? That's common veranda. With my shape, it's veranda. Some people even think I'm a stoop. All right, look, come on, Costello. I'll take you to Professor Mellonhead, School of Spanish Acting, and have him coach you for the part. To the School of Spanish Acting gentlemen, I am Senior Mellonhead. I've seen your Mellonhead around here for ten weeks and it's starting to get right. Now, Costello, I'm surprised at you. Senior Mellonhead is a great artist. Then why don't he have... Where are my mixed up? Never mind, he said I was... I got it, I got it, thank you. Then why don't he paint next line? What's the matter with my head? Your scarf runs all the way down to your heels. Is that so? Young man, I'll have you know, Costello, before I married my wife, I had hair as black as the ace of spades. Looks like your wife trumped your ace. Mellonhead, was your whole family bald? No, not exactly.  That's no way to talk about your father. Costello, be quiet, Senior Mellonhead. Costello wants to play the part of a pretty Spanish girl. Now, can you coach him? Can I coach him? Gentlemen, I am the greatest authority on Spanish customs. Why, I've even been a bullfighter. In my native Spain, I used to enter the arena like a methador.    Mr. Mellonhead, could you start Costello's lessons right now? Why, of course, I'll start his lessons immediately. Here, on this piece of paper is a simple Spanish phrase. Read it, please. Okay. Muches gracious, amigo? No, no, no, not gracious. That word is gratias. You see, in Spanish, the C is pronounced T-H. Gratias. The C-T-H. You see?  Get over there! In Spanish, the T-H. In Spanish, it's pronounced T-H. That's right. It's a good thing we don't have that in English. Can you imagine Bing Throsby and Gary Thuper taking floret, cold dirt in a restaurant and ordering three sapsasofi and three pieces of sauce in a mustard pie? That's great! I don't know. Look, let's talk sense. Come on, let's get on with the lessons. Very well, Mr. Abbott.    He does? Yes. And do you know what you do?  You do nothing of the sort. You invite him.  Can you remember that? I can remember when I didn't have a patio to cook in. Now. All right, now, Castello, while you're cooking the meal, the caballero strolls into your kitchen. He admires your free food. He admires your free holy. He slyly sprinkles... He slyly sprinkles cheese on your tortillas and then he pushes your enchiladas on the back of the hot stove. He wouldn't dare. Just a minute, just a... What's the matter, Castello? Mellonhead, this time you have gone too far. I didn't mind when that cab driver clicked his gasket. I said nothing when he banged his bazookas together, right in my fiesta. But when you make him push my poor old anti-lotties on the back of a hot stove, you have not only a pewter, my good name, but you have cast a smirk on the good neighbor policy much as precious without a TH and that's that. Oh, get him out of here. Figure it this way. Suppose you were in Germany now. Sure, maybe the big battle phase of the war is over, but there's still plenty of dirty fighting ahead. Long, weary slugging.  Would you give him one? And how you would? Why, you would even give him the last one in your pack. And that, folks, is the thing to remember when you, causally here at home, can't get all the camels you want. You are giving your camels to that fighting pal of yours in Germany or wherever else on the global war map he may be. Yes, it's the service first. Army, Navy, Marines and Coast Guard, wherever they go in their winning of the war, they have first call on camels. Sleep, A-M-P-L-F. The service first. Lovely Connie Haynes brings her camel fans one of the most popular songs of the day. With Will Osburn and the orchestra, Connie sings... Every time, every time, every dog on time, I fall in love. Get us shoving around every time. I'm gonna learn to be a hermit. And live in a hermit's cave until I lose all my bridges behind me.  You can look, but you'll never find me. Behind the eight-ball, again. Cause every time, every time, every dog on time, I fall in love. Gonna burn my bridges behind me.  You can look, but you'll never find me. Behind the eight-ball, and every time, every dog on...   I can't help it, it's a long pull from my gut to my shucks. Quiet, quiet, now remember, Castellas, it's your chance to prove to the director, Mr. Teknikolovich, that you're a great actress. Come on. And who is this beautiful young lady with you? Mr. Teknikolovich, allow me to introduce the famous South American actress, Louisa Castellio. Ah, Sr. Teknikolovich. Hey, she and the Buenos Aires La Cienica, Sunset Vine. The senorita does not speak English. Not a word. Mr. Average, she is wonderful. She is the most beautiful girl I have seen since I left home. No wonder he left home. But, senorita, a moment ago, you didn't speak English. Oh, senorita, you are ravishing. This is the first time I ever saw a leading lady... Stop looking at me with those eyes, brother! But it's still the first time I ever saw a leading lady with muscles. Tonight, I will take you to dinner, yes? Yes. Then I take you to the theater, yes? Yes. And after that, I take you to my apartment, yes? No. Senorita, I have something to show you. I have etchings. You have etchings, then scratch yourself, but I'm getting out of here. See me out. Now, wait a minute, senorita. Mr. Technicolor, she's a great director. He can make you a star. I will give her the little bit's touch. If he lays a finger on me, I'll scream. Get a finger on me. We will make a scream test. A scream test immediately. Hey, Evan, this is what I've been waiting for. No more comedy for me. Nice, dignified acting. Now, quiet. Now, we will take the scene. Senorita, this is a love triangle. You will play the part of the other woman. Why can't the other woman play her own part? Now, be quiet. I mean, I don't want to take some other poor woman's job away. Now, quiet, please. I mean, but after all, I'm... Now, the scene opens with you in the arms of your lover. Action. Ah, my fiery Latin beauty. Let me put my arms around your waist. You think you can make it? Ah, you are so gorgeous. You have the kind of hair I love to touch. You have the kind of eyes I love to gaze into. You have the kind of lips I love to kiss. You have the kind of throat that I love to... Cut! Senorita, you are too cold. Have you never been in love? What do you do when a man tries to kiss you? I'd felt him in a kisser. Will you be quiet? I mean, but I'm only trying to tell you that there's a limit. Now, continue the scene. Camera, action. You big, strong man. Let me take you in my arms. Senorita, please, don't bend the actors. But I was only... Quiet! I mean, I was just... Quiet! I mean, after all... Dad is Sylvan Simon if I ever seen a guy. Now, the jealous wife comes in and catches you making love to her husband. I'm behind my back. You Latin cheater, where's my gun? Oh, wait a minute, Matilda. Put down that gun. Senorita and I love each other until death. You was part. And I think that's what's gonna part us. Hey, Abbot, please take me back to funny pictures. Oh, you're doing great, Castel. You'll never have to do slapstick comedy again. No more rough stuff. No more pulling down to get laughs. No more getting pies thrown into your face. All right, quiet. He was only trying to...  Continue the scene. Camera.  It's my pie. Thanks to the Anks of the Week, tonight we salute Staff Sergeant Raymond Simmons of Decatur, Illinois. In a Philippine battle, he killed seven Japs with his rifle and wounded several others. Then he was wounded, too. For two days, the Japs left him lying in the blazing sun, left him there as bait for rescue parties they could shoot down. On the second night, however, though critically wounded, he pulled out and escaped back to her own land. In your honor, Sergeant Simmons, the makers of camels are sending to our fighters overseas 500,000 camel cigarettes. Each of the two camel radio shows honors a yank of the week by sending free 500,000 camel cigarettes overseas. A total of more than a million camels sent free each week. Camel broadcasts go out to the United States twice a week. Our rebroadcast to practically every area in the world where our men are fighting and in cooperation with the Good Neighbor Policy, also to Central and South America. Listen again next Thursday to Abbot N. Costello. As General Eisenhower has said, every man in this Allied command is quick to express his admiration for the loyalty, courage and fortitude of the officers and men of the Merchant Marine. Now skilled seamen and experienced officers are needed more than ever before for the final push to victory. This is vital. This is an emergency. No beginners, but skilled experienced men. Wire collect Merchant Marine Washington, D.C., giving your rating, license and address. And now, here are Abbot N. Costello with a final word. How did you like your experience as a dramatic star? Abbot, you can have that dramatic stuff. I'll stick to scookin'. What's scookin'? Nothing much. What's cookin' with you? Oh, get him outta here. Good night, folks. Good night. Good night, everybody. Folks, be sure to tune in next week for another great Abbot N. Costello show brought to you by Camel Cigarettes. And remember, camels are worth asking for every time. See for yourself how Camel's mildness, coolness and flavor flick with you. Science is wonderful and all that, but one thing they haven't got around to yet is what I'd like to call smellivation. Rather how I'd like to be able to waft the fragrance of Prince Albert's smoke over this microphone and write to your critical nostrils. Then I wouldn't have to say a word. You'd just head straight for the nearest package of Prince Albert and load up your pet pipe. And you'd find not only fragrance, but flavor. It's a rich, full-bodied, real, he-man tobacco flavor. But no tongue bite, no sir. Because Prince Albert gets special no-bite treatment that gets cheers from your tongue. Crimp cut, too, for perfect packing, easy drawing, and even burning. And a beaut of a bargain, Prince Albert, just about 50 pipe fools per package. Saturday night, be sure to listen to Prince Albert's Grand Ole Opry for nearly 19 years, bringing the real, authoritative American folk music and fun to Southern radio audiences and now broadcast coast to coast. Remember Grand Ole Opry every Saturday night on NBC. The Aberdeen Costello show for camel cigarettes will be back at this very same time next week. Don't miss it. This is Ken Niles and...


In the last few days, under the banner of pardon is insert, massive mobilizations have been happening in Peru. Thousands have been protesting the decision of the constitutional court to accept the pardon of former president Alberto Fujimori. On March 19, people gathered at the Plaza San Martín in Lima and marched to the constitutional court to demand the revocation of pardon. Fujimori, who ruled between July 1990 to November 2000, has been serving a 25-year prison since 2009. He has been convicted for crimes against humanity and corruption committed during his tenure. On March 17, the constitutional court of Peru reinstated the humanitarian pardon granted to him by former president Pedro Pablo Kudzinski in December 2017. After three votes in favor and three against, the decision to release Fujimori was taken by the casting vote. Judge Augusto Ferreiro, exercising his decision-making power as president of the constitutional court, voted twice to revoke Fujimori's imprisonment. In 2017, when former president Kudzinski was facing an impeachment process in Congress, he signed and promulgated a supreme resolution granting humanitarian pardon to Fujimori on medical grounds. However, critics point out that it was a part of a deal with the former dictator's youngest son, Kenji Fujimori, who was a legislator at that time. Kenji Fujimori had offered the support of the legislators of his sister Keiko Fujimori's far-right popular force party during a no-confidence motion against Kudzinski. The pardon was annulled by the Supreme Court in October 2018. The court concluded that the procedure was irregular contrary to international standards, peculiarly fast and the medical records supporting Fujimori's illness had inconsistencies. Fujimori's dictatorship in the 1990s was marked by grave human rights violations as well as corruption. These included the crimes of aggravated kidnapping, forced disappearances and murder of thousands of leftist guerrillas, especially of the shining path. Forced sterilizations of thousands of indigenous men and women also happened during his rule. Alberta Fujimori's government deployed right-wing extremist death squads like Grupo Golina, along with Peruvian security forces to eliminate left-wing insurgent groups, leading to large-scale human rights violations and casualties. In 2000, when the parliament geared up to impeach Fujimori over charges of corruption, he fled to Japan. He was arrested in Chile in 2005 during a private visit and extradited to Peru in 2007. In 2009, he was found guilty as an indirect perpetrator of the Barrios Altos massacre in 1991 and the La Cantula massacre in 1992. The Peruvian courts found him guilty on various charges such as financing the human rights violations perpetrated by death squads in the two human rights violation cases and 10 corruption cases. Meanwhile, the constitutional court's ruling has been widely criticized nationally and abroad. President Pedro Castillo condemned the decision stating, the institutional crisis to which I refer to in my message to Congress is reflected in the last decision of the constitutional court. Several members of the ruling left-wing Free Peru party and its allies also rejected the verdict. The party announced that it would resort to international justice institutions such as the Inter-American Court of Human Rights to protect Peruvian's rights against the court's decision. The Inter-American Commission on Human Rights also expressed grave concern over the constitutional court's decision. The United Nations Human Rights Office on March 18th also expressed its disapproval of the ruling.


I want to react to something. Come on give me something. React to this.  This is Corbin. This is Rick. And you can follow us on Instagram. I got it, I got it, I got it, I got it, I got it. And follow us on our personal YouTube channels. Yeah, or with stabby and nipples. That's true. Link's always in the description below. Today we are reacting to a new trailer that dropped, I believe, a day ago. It's on that. Did you just call me a dago? Yes, it dropped a day ago and it's on that Z5 app. Huh? And I believe it was made by the AIB people. It's not presented by AIB, but I believe it was made by those people. Okay. And it's called Chin Tu Ka Birthday. Okay. In a war-torn Iraq, an Indian family awaiting their turn to return to India, decides to celebrate the youngest son's birthday. Amidst all the chaos and danger, the family struggles to celebrate and make the day memorable for him. Cool. Okay. Interesting. So it's a family that's stuck in Iraq trying to get back to India? Yeah. Okay. That's epic. Iraq, not always fun. Not a great slogan for the tourism industry there. All right, ready? Three, two, one. Chin Tu Ka Papa. Chin Tu Ka Papa. You can't do it, can you? Tell us, Ramachandra. Adorable kid.  Chin Tu Ka Papa's birthday is today. Happy birthday to you. I don't want to go to electricity. Don't go to electricity, don't worry. Smile a little. Dad, I'm talking to him that he'll become a best birthday. He's so cute. He's really cute. Huh? 25. And we were talking about 50. We were talking about the same thing last year. Chin Tu. Now you remember, it's the grandma's birthday. Yeah. Dad, I remember, grandma. They're going to break our hearts. They're going to break our hearts. They're going to break our hearts. They're going to break our hearts. They're going to break our hearts. They're going to break our hearts. They're going to break our hearts. Yeah, I knew it. They're going to break our hearts. It took you so long, buddy. Oh, God. We'll check the room. I can explain.  Is he part of your family? See, there is a mystery.  Vika, I'm for Chin Tu birthday party. Best friend. Girlfriend. She go to school. You destroy this morning. Oh, God. Welcome to Bump Guy Rai. My name is Madan Tiwari, sir. We're Indian. Where's your whole family working for these insurgents? Happy birthday, Chin Tu. My Chin Tu is crying on his happy birthday. It is wrong. We're going to bring him back to school. Whatever is wrong, it's wrong. We're not going to stop Chin Tu. Damn. That looks good. I want to see that. That looks good. Yeah. Looks powerful. It's also interesting, just from an American's perspective, to see a film where the American is the bad guy. It's obviously, you know, usually from your own stories that you tell, you usually, especially the military, you don't make them the bad guys. Correct. Just because it's just not something, and you know there's people that are awful people, obviously there's awful people everywhere, in the military and everything, but it's just not something you normally see outside of that's the villain in the military and the rest of this military is good. You know, like the generals is the bad guy. That's basically what you'd see, but not this guy is racially profiling these people and interrogating these people, even though they're Indian. Or maybe it may have gotten bad intel. We may find out that they didn't get bad intel. We may find out something about Chin Tu's dad that we didn't know about. You know what I mean? Yep. And I'm very interested to see this because that's one thing we have yet to see that deeply intrigues me, is something that comes out of India that depicts the American military. Yeah. I really would like to see that. That's one of my favorite things, I've referenced them before, of Clint Eastwood's films that he did back to back, which were the flags of our fathers and Iwo Jima. If you guys aren't familiar with that, Eastwood told a story of a critical battle in World War II, and he told it from the American standpoint of the battle when he made a completely separate film, and told it about the Japanese standpoint. And it's a really beautiful depiction of both sides of the picture, and the insanity of war. So this is, I'm very interested. Yeah. This looks really, really good. The one, the kid looks adorable. All the acting looks really good. I am nervous about those Americans. That always just makes me nervous. I know. Me too. What we're referring to everybody, if you didn't know, is we don't see good actors who are white in Indian films, and the fact that these guys play a significant role is going to piss us off if they're not good actors. Yeah. Let's see. It's one of the black military men. His name is Reginald L. Barnes. Okay. He was in Blue Bloods. Okay. It's not too much outside of that, so obviously it's a smile. And then Nate Skoles, who was in NCIS, Criminal Minds, and Grimm. So he's been in quite a few. He has quite a... That's encouraging. He has quite a repertoire, which is great that they're actually getting actors that are from America that are... Good.   But I do feel like the dad we've seen before. Have we seen him? I did too. I was feeling the same way. My name is Khan. He was in my name as Khan. Oh, okay. Well, that's where. Yeah. He was in my name as Khan. And I feel like there's more, though. Maybe it was just trailers that we've seen him in. Dude, dude, dude, just checking his IMDb here. But he looks familiar. But he looks really... He looks really, really good. The entire thing looks really good. I love... Because, like I said, you don't see that perspective here. If there's an Indian family and the people that are the antagonists and the bad guys almost in this, are the Americans, which is I'm sure actually how, like, if you have any films in other countries that depict American soldiers, I'm sure it's not a good look. Because obviously, you know, we see the best sides of us. We oftentimes choose to ignore the bad sides. Correct. It's something that I enjoy seeing because you don't want to be blinded by... Yeah. You want to know what people think about you and the realities of what's actually happening, not just what your news is telling you. Yeah. And Stupid Babies, what I was thinking about as you were talking, Corbin, was, correct me if I'm wrong. I don't think it was the first, but I know one of the first films to depict American military in a not attractive light was Oliver Stone's Platoon. Mm-hmm. Johnny Depp's first big role. Right. Which... It was just a whole lot of big names in that thing, but it not only depicted some people who do things that aren't the right thing to do as soldiers because there are some of those, but it also talks openly, as did many films afterwards, about the atrocity that was the Vietnam War. And it's just a good film. If you guys haven't seen Platoon, it's a really good American film that shows you pretty raw reality about good and bad soldiers and bad things that America have done. I feel like that's the war that we've seen the worst like in terms of film, because it was basically an illegal war that we decided to start. And so that's why I feel like that you've seen a lot of bad light of Americans about that one is because it was so awful. Oh, yeah. It's so awful. Yeah, but there, if you want to... I don't know why they haven't made a film. Christopher Nolan, if you're watching. They should make a film. I just watched a segment of a World War II documentary that's on Netflix. It's an in-color documentary. And it's a segment on the battle of Dresden in Germany. And I didn't know much about that battle. You want to talk about gross, what the Allies did there with under Winston Churchill and Franklin Dillon Roosevelt in killing 25,000 innocent people in Dresden and bombing it because it was a civilian target. Woof. And I asked my friend Rich, I said, why haven't they made a movie about this? He said it's too brutal. And it also doesn't portray America and Great Britain in the most beautiful light. Or Churchill, which as you guys know... Or Churchill. We are only... Obviously you guys know Churchill in one light. And that's...  Yeah. And so that's a pretty high mark from coming from an American perspective. He's the greatest Britain of all time. That's how he's taught to us. He is the greatest Britain of all time. And so, obviously what you see in your films in India and in every all over the world is what you want to see. Yes, it's the old adage and it's sad but true that history is told by the victors. Yup. It's a sad fact. But this looks really good. So let us know anything that we need to know about this down below. And thank you. Thank you very much.


Garrett Cole dominant in game one of this doubleheader. Let's hear from the Yankees Hates. Garrett, you typically attack hitters from the jump anyway, but are you able to be even more aggressive when you get that type of run support early? Yeah, I think you, I don't think you have it. You don't really have an option. It's kind of, when you get that kind of, when you get that kind of run support, that's your job. You got to, you got to get the ball with the plate early. What do you think allowed you to be so dominant tonight? I just thought we had good command. I thought that, I thought we had a lead. I thought we made smart pitches. We mixed up well, had good stuff and finished it out this time. Take another from Ken David off. Garrett, you wore the NYPD cap pitch in this game. How much have you learned? I know you're really just a kid in 2001, but how much have you learned about 9-11 and did it carry special meanings to wear that cap as you pitched? Yeah, I'm actually thrilled we have a doubleheader because I'm wearing the FDNY in the second game because I wasn't going to like switch hats out during the game, but I did want to wear both. I think everybody remembers that day. My mom woke me up, me and my sister before school and before she took us downstairs, she talked to us, both my parents talked to us for a minute on what we were about to see. And it's just a really sad day. So hopefully we honor the people that passed away that day. We honor the people that worked to save lives in the NYPD and the FDNY, and this is a very somber day, but hopefully we were able to provide some joy for the people that are having a rough day today in New York. Thank you, Jared. Kristi Acker, you have the next question. Jared, you just made a point to say you finished it off this time. Was it frustrating for you not to finish off starts before and how important was that to you to go out and finish this off? Yes, it's frustrating and it was just the opportunity presented itself, especially with a doubleheader. We've got seven more endings to cover, so I was happy to be able to finish it for me personally, but also for the rest of the balance of the bullpen for the rest of the day. And so it was just nice to put a bow on it, I guess. Take another from James Wagner. Jared, it seems like last start and this start specifically, you used your curveball more. I mean, what led to that process? Like why emphasize it more? Was that a specific game plan or adjust as you went on? I think it was, I just don't think we were using it enough. I think the last, you know, as we started to settle in to the season now, stuff's been more consistent. And so it's given us, you know, because early just the curveball was, you know, non-competitive to a certain extent and like burning us in some counts.  So, you know, if the command's there, it's a useful pitch. Take another from Andy Martino. There's a stat that this year your fastball, the vertical drop in the zone was a little bit more, which I guess makes it a more middle-middle fastball. Is that something that you were aware of or like working on? And was there any improvement there? I guess the fastball not rising quite as much. Is that not something you're thinking about? It sounds like that. Yeah, it's not really something I'm thinking about. I mean, we want to get through the base all the best we can. You know, there's just like fine-tuning, stuff like that. The first four or five starts of the year is just not really, like the priorities to get out of the box there in a good position to keep going for the rest of the year. And so I think the quality of stuff is just kind of evolving as we continue to get settled in. So some of these like deep dive analytics in your pitches, maybe it's a little bit of a small sample size that too. Yeah, I think I said it last week when I was like, we're seven starts in, but we're only four starts away. So normally to have another like 23 at this point. So 24, it's pretty much on par with last year's start, with what we had in a couple of games prior to this. I thought we did a good job and we maximized what we needed to do. We're always trying to get the stuff a little better. So, you know, but making a slight adjustment and not making too big of an adjustment knowing that, you know, we're still giving ourselves a competitive chance to win the game. But, you know, I know that, you know, the fastball to also different locations has sometimes a different profile. And so if we're, you know, working a specific corner to a hitter because we don't have command in the other part of the zone or for whatever reason it's a pitch that's valuable to us that day, you know, that profile, that pitch down a way to either side of the hitter or just working the bottom of the zone or maybe really, you know, focusing on locating on the corners can maybe lend its, I mean, the priority is not to really bum rush that pitch all the way up, it's still located. So maybe a little bit of that, maybe just, you know, settling in too, so. Thank you. Dan Martin, go ahead, you have the next question. I don't know how important no hitters are to you, but was it, you know, you had one going into fitting today, is your mind today any different knowing that it's a seven inning game and it's not really a no hitter or would that matter to you that much anyway? Yeah, it just wasn't, I wasn't really thinking about it.


This study has demonstrated the use of renewable piths from sorghum stocks as a material for potassium ion batteries. The material was found to have excellent performance with a high reversible capacity of 304.6 mAh G1 at 0.1 AG, 1 after 100 cycles and a stable cycling performance of 189.5 mAh G1 at 1 AG, 1 after 50 cycles. Additionally, the material can be produced on a large scale in a short time frame, making it ideal for commercial applications. This article was authored by Rong Chaochui, Bo Su, Ho Ji Dong, and others.