And now, AutoLite and its 60,000 dealers and service stations present... Suspense! Tonight, AutoLite brings you Mr. Dana Andrews in. If the dead could talk. A suspense play produced and directed by Anton M. Lieder. Friends, you know what happens when you take a fish out of water? Sure, it does. Well, by Cornelius, the same thing happens when your car's battery runs out of water. It lies right down and quits. No water, no light. So, what did the AutoLite people do? They made the AutoLite stay full battery with an extra large liquid reserve. Gave it more room for more water. Result? The AutoLite stay full battery needs water only three times a year in normal car use? Think of it. AutoLite stay full batteries need water only three times a year in normal car use. Just like that, AutoLite practically eliminates one of your major battery bothers. So friends, be right with AutoLite. Switch to an AutoLite, stay full battery tomorrow. And now, AutoLite presents Dana Andrews in a tale well calculated to keep you in. Suspense! They'll never know how it happened. No one will ever know. I knew I was going to have to kill him almost from the first. That's how I am. That's what my blood is. I couldn't change it even if I tried. We were on a circus train, the three of us in the Trapeze Act. Going from Tulsa to San Louis. Fran had asked me to come and sit with her. But she had something to tell me. When I went over she was staring out the window into the night. And the dim train lights made her features kinda soft and blurred. And I stood watching her getting all choked up like I always did. Wanting to freeze this picture of her in my brain with all the other pictures. Then she saw my reflection on the window glass and she turned. Oh, Joe. Hi. Sit down, Joe. Joe, what's the secret? Joe, I can't keep it inside me a second longer. If I do, I'll bust. Hmm? Tommy and me been talking about getting married. Hi, you kids. Well, honey, did you tell him? Ah, as she told me. Congratulations. That's all, just congratulations. Well, you know Joe's a man of few words. Ah, so what do you think, Joy Boy? Least we'll be able to keep her in the act now, huh? Yeah. That's probably the only reason he's marrying me. Well, the way I figured it had to be one of us. Joe, you're my pal. I couldn't let it happen to you. Well... And then Tommy threw his arm across my shoulder. I felt every nerve in my body tighten up. Like somebody was turning a screw. And I thought, so this is how your life goes smash. Rattling through the night on a dinky train with a circus fat lady sitting across the aisle munching chocolates. I didn't know what I was going to do. Not then. At first I tried to go on just like before. When we got to St. Louis, Tommy and me shared a room in a theatrical hotel like always. And the three of us went on through our routines on the high trapeze. Like always. Yeah, that part was the same. That part was as natural as breathing. But the other things, like the looks they gave each other, they had long walks together. And nothing worked for me. Drinking myself blind, taking out a different girl in the show every night of the week. Nothing worked. I still woke up in the middle of the night shivering, my heart pounding and crying her name. Fran! Fran! Fran! Joe, Joe, what's wrong? Huh? Oh. Nothing's wrong. You were yelling in your sleep? I'm okay. You sure? Yeah, I'm okay. What are you getting dressed for? It's the middle of the night. I'm going for a walk. Look, I want to go for a walk, so I'm going for a walk. Joe, Fran and I were noticing. Noticing what? We've been going at this nightlife pretty hard and heavy lately. For a fellow who works on a trapeze 60 feet up and without a net, ladies and gentlemen. Well, that's not so good, Joe. What's the matter?   It's all right to have a good time. Good time? So that's what I'm having. What do you know? I walked the dark, empty streets for hours. I didn't know where I went or why. Why did it have to be him and Fran? Over and over again. Why did it have to be him and not me? And then it was like coming out of a sleep almost. I realized that for a long time I'd been looking through the lighted window of an all-night pawn shop, looking at a gun. At first I started walking away fast. Then I turned back and went into the shop. Yes, sir. What can I do for you? That revolved in the window there, the black one next to the binoculars. Oh, yes, that's a beauty edit. I want it. Good enough. Can't go wrong on that one. You got your permit, of course. No, I'm just passing through town. I didn't have time to get one. Well, I'm sorry, mister, but I can't help you. I've got a hundred dollar bill that says you can. You just bought yourself a gun. It was after three in the morning when I got back to the hotel. The gun was in my topcoat pocket.  She stopped me as I went past her. Turning in, Joe? Yeah. Lucky you can sleep. Wish I could sleep. I started for the elevator and then it hit me.  Walking into the lobby like that, being seen going up to the room. Is that all you want, Joe? That he should be dead, no matter what happened to you? Don't you want Fran? Don't you want to live? I turned back and started out again. No, Patsy, I guess I won't go upstairs after all. Nothing to do until tomorrow afternoon, anyhow. Maybe I'll take in an all night show. I haven't seen a show since I was a little girl. Can't fit in the seat. I went around to the back of the hotel. Tommy and me roomed three stories up next to the rusty fire escape. It was so quiet there I could hear the pounding inside my head. The first rung of the fire escape was a good ten feet off the ground. I jumped forward and pulled it down. It made enough noise to wake up half the building. I scrambled up into the shadows. I expected the lights to start going on in every window. But nothing happened. So I started up the fire escape. I started up for Tommy. I reached the landing. The room was dark. The window was closed. I tried raising it, but it was locked. Why did everything have to go bad for me? Oh, wait a minute. He never locked the window before. Why did he lock it now? What was he afraid of? How could he know what was inside me? Well, suddenly I had to do something so I smashed the window with my fist. I didn't care. Let him know it was me. Let him know what was coming. I reached in, unlocked the window, went over the sill. I took the gun out of my pocket. I could feel the blood running warm down my arm. And then I saw that he was gone. The room was empty. I sat down on the bed. I felt weak in my knees. I sat there a long time. And then I heard a key in the door. It was him. He'd come back. I put the gun back in my pocket. I held it there. And the door swung open. I saw him framed in the light from the hall. And I thought, now, do it now! For suspense, Auto-Light is bringing you Mr. Dana Andrews in Radio's Outstanding Theatre of Thrill's Suspense. You know this spell of freezing weather that drifted over sunny California by mistake last week? How's she? Well, by Cornelius, I haven't had so much fun since my Auto-Light stay full battery last needed water. A mighty long time ago. You mean you enjoyed the cold, huh? You bet. Listen, I was purring along up in the mountains in my Auto-Light-equipped car, you see, when I spied a stricken stranger stuck in the snow. He had on a raccoon coat and a coon-skinned cap, and he was looking under the hood of his car, muttering water, water everywhere, and not a drop in my battery. Friend, I said to this shivering shambles, if you had an Auto-Light stay full battery in that thirst-starved convertible, you'd be singing how deep is the ocean instead of how dry I am. What do you mean, ask-see? So, of course, I told this chap that Auto-Light stay full batteries have an extra large liquid reserve. Auto-Light stay full batteries, I said, need water only three times a year in normal driving. You get that, pal, only three times a year.  But, Hollow, did you get the poor fellow on stuff? Sure did. I just happened to have an extra Auto-Light stay full battery in my truck. So, I lent it to him until he could get one of his own at his nearest Auto-Light dealers. I'll sure switch to Auto-Light, he said, as he zoomed off, and I answered, you're right with Auto-Light. Right, Hollow, but right now, suspense. And now, Auto-Light brings back to our Hollywood soundstage, Mr. Dana Andrews as Joe, in a tale well-calculated to keep you in suspense. I held the gun in my pocket. The door swung open and I saw him framed in the light from the hole. And I thought, now, do it now!  A while ago. Where's that light switch? Don't turn the lights on, Tommy. What's the matter with you? I said, what do you got against lights? How can you just sit there in the dark? You know, Fran and I wonder what happened to you. We were out looking for it. I held tight to the gun in my pocket. I followed him with it as he moved around the room, stopping at the dresser to comb his hair, whistling, because he was getting framed and it was such a good feeling. And all I had to do was just squeeze the trigger. Come on in! Say, honey, Fatsy tells me that you...  Look at that arm, Tommy. His arm, it's bleeding. I didn't know to say.  I'll get some towels and a cure-chrome from the bathroom. What did you do? Get yourself on a bra? No, not exactly. Tommy, where's the cure-chrome? Hurry up. I'll show you where it is.  I hurried to the dresser, dug the gun out of my pocket and put it in the drawer. Fran came back with an armful of stuff. Her fingers started to probe my arm while she was rolling up my sleeve. Look what this guy did to himself.  What are you fighting for? Tommy, get a... Hey, what happened to this window? Well, that's how I cut myself just now. I thought it was stuck. You know, me, long on muscles and short on brains. No, it's all right. Just a little cut. Our boy's gonna be all right, Tommy. The show goes on, doesn't it, Joey? Sure, sure. Oh, such a sweet, helpless guy this is. We gotta take better care of our boy, Tommy. Yeah. You know, our Joey's just a great big kid. He likes to go on adventures with silly blondes, but there's nobody got wrists like this man to catch my Tommy when he flies through the air with the greatest of ease. You know, Joe, I wouldn't trust Tommy's life in anybody's hands but yours. And she leaned over me and I could smell her hair. And her warm breath danced around my eyes, and him and that whistling. Why shouldn't he whistle? He had the world. He had friends. There. How's that feel, Joey? I'm talking into my face, smoothing my hair.  Didn't she see what she was doing to me? Didn't they see what was happening to me? How could two people be so blind? Couldn't they see? Feel better, Joey. I asked you. Leave me alone.   It was after four in the morning when I got back to the hotel. Nobody in the lobby, nobody with a room clerk taking a snooze at the desk. This time Tommy was in bed asleep. I sat on the edge of the bed for a long time, listening to his breathing. Then I went to the drawer and got the gun. I laid it aside for a moment, and I scattered the stuff on the drawer like a burglar would. He was looking for something. Then I went over to where his pants were hanging on a chair. I guess I got a little excited as I grabbed for the pants, the chair fell over. My heart hammering away like it was trying to break loose. But he didn't wake up. I found his wallet and his pants. Then his watch on the nightstand. Then I went over to the broken window looked down. The dark, not a sound. Tomorrow all the cops in the city would be looking for the burglar who came up the fire escape and killed his victim when caught in the act. I went back to the dresser for the gun. I went over to the bed. I wouldn't let him take her away from me. Simple as that. I raised the gun barrel level with his head. My finger curled around the trigger. I felt a tiny nerve start throbbing in my wrist. I squeezed the trigger. What is this? Ayo Joe. Yeah, yeah. Gonna bet you. Okay. When Tommy had gone back to sleep I broke open the gun. It was empty. But it had been loaded before. They must have found the gun after I left. But why had they taken the bullets? I didn't understand. How could they know anything? All of a sudden I was afraid. I put the wallet and the wrist watch back. I put the gun back in the drawer. What was I going to do? I flopped down on the bed and tried to think. But somewhere along the line I fell asleep. I slept until almost noon. When I woke up Tommy was gone. I dressed and went down the hall to friend's room. She was gone. At the desk they didn't know what had happened to them. I went down to the armory where we were playing. They went around there. It was getting close to the matinee. I went to the dressing room. No sign of either of them. Then just a few minutes before we'd go on. The door burst open and they were standing there. We thought we weren't gonna make it. That's no kidding. Just feast your eyes on the little gold object. Third finger left hand. Sometimes called a wedding ring. Oh! I at least couldn't say bon voyage, weren't I? Sure, sure. Best of everything. Hand left to change into a costume and Tommy started getting ready. Happy as a lock. And I felt the hate choking me till I couldn't breathe. Burning in me like fire. Then I realized something that sent the cold shivers through me.  It made me sick thinking about it. Everybody's got to have some kind of belief. I grew up different. Not like most people. The only belief I had was the act. I had to keep the act clean. I couldn't let it happen that way. But it would happen. If I went up there, it would happen. Three minutes. Okay. Well, better be getting out of here, Joey. Well, Joe, come on, come on. They're not going. What are you talking about? I'm not going on. Can't you understand English? But, Joe, I'm not going on. He couldn't do anything with me and the time was running out. He left and I thought, what I'd better do is just pack and leave and never see either of them again. Then, just beyond the door, I heard him whispering to somebody. I knew what it was. He was putting her to work on me. I didn't want to see her. I went to close the door, but she was already standing there. Her hand on the door knob. But it was the wrong hand. It was the hand with a ring on it. His ring. Is it something to do with the act, Joe? No. Nothing with the act. Well, then... Don't ask me to go out there, Fran. You know we can't go on without you. Well, do what you can, fake those triple plays. Look pretty and swing hard. Just don't ask me to go out there. Joey, what's wrong with you lately? Look, don't... I'm worried about you. You've been acting so funny the last week or so. What were you doing with a gun, Joey? I... We found it in your dresser last night. Scared me to death. I made Tommy take the bullets out. I just bought it for protection, that's all. Protection from what? Joe, you've been so moody, so melancholy. I'm so afraid you might hurt yourself. You think that's why I bought the gun to hurt myself? Gosh, I hope not. I could... It's our cure. Come on, Joe. She moved up close to me. Her hand touched the side of my face. Soft and warm. We'll be waiting for you.  She left. I didn't know what to feel. Inside me, some of the hate was unwinding. I didn't want to hate him. I began thinking maybe I could... I could get by today after all. And after today, I'd just beat it and never see him again. I began thinking how lucky it was that everything had gone wrong last night. I started for the door. I saw the two of them behind some props kissing each other. While they were waiting for me. I'd never seen him kissing her before. I felt cold and empty. I went back into the dressing room. On the table was the tube of Vaseline I used to hold my hair in place. I stuck the tube into the waistband of my trunks. I didn't worry any more about hurting the act. The act went off like clockwork. It always did. It was such second nature to us by now. The precision climbed up the ladders to the two little take-off platforms. Me and one side of the ring. The two of them on the other. I felt good like I always felt up here. I knew what was going to happen, but I wasn't fighting it anymore. When it came, it came, that's all. And then, it was time. All the easy stuff was over. We were ready for a big specialty. Tommy's triple somersault. Ladies and gentlemen, once again my present, the most bread. I was already on the lower trapeze, lolling on the crossbar. It was Tommy's stunt, so no one noticed me. I reached up under the waistband of my trunks and flicked the cap off the tube of grease. I pinched the tube and a coil of Vaseline spurted into my palm. I greased my wrists until they were as slippery as a pair of heels. That was where he was going to hang on to. Where he was going to try to hang on. Tommy signaled that he was ready. I was ready too.  I was dangling by my legs, flexing my arm. My eyes running over the row upon row of tiny upturned faces. It was a matter of seconds now. Five thousand pairs of eyes watching. Five thousand hearts starting to speed up. Even the peanut and popcorn boys had stopped. Just the roll of the drums building up louder and louder. Without looking I knew Fran was putting on Tommy's blindfold. In another second I'd swing around and face them and begin the count. I began turning. What happened? I turned quickly. Fran was alone on the platform. For a split second I couldn't figure it out. And then I saw Tommy falling through the air. He grabbed it a guy wire as he passed and he held on.  Down all the way to the bottom but never letting go. He landed in a huddle at the bottom. But then he picked himself up. So he was alright, nothing broken. Except the way he held his hand you could tell it was as raw as if he'd cut it open with a knife. I swung around and looked up at Fran. She caught my eye and formed the words, my fault, with a lip. And then, sorry. Then she had made him slip. She had kept him from swinging out on that trapeze. But why? I swung back. All of a sudden I wanted to get down, I wanted to get away. But while my back was turned to her, she must have passed along the signal because suddenly I heard... Ladies and... This was something I'd never figured out. Sure she'd done the trick before but then there was a split second in which she signaled me to drop my head and begin the count. And then before I could get my own desperate signal back to her to stop, not to go ahead.  Fran! It had already begun that time. My voice couldn't reach her now. She'd swung the empty trapeze out into space. The count had begun. One, as she let go. Two, as the trapeze made a talk. Three, as it returned. Twice more the empty trapeze would swing out and then on its return she would grab it. Fran! Don't do it! Don't do it! I knew she could only hear the drums. If there were only some way to stop the drums. I heard the terrified roar of thousands of throats and I knew it was death. I'm not the deceased. Look officer, I told you I'm only the manager of this outfit. Why don't you ask those two over near the body, they know all about it, they're part of the act. I told you I'd get to them. Now, how exactly did the deceased... Listen officer, why so many questions? It wasn't Murdy, you know, it was just an accident. Slipped and fell off the trapeze. I guess it was the excitement of seeing Tommy take that bad spill. Why can't you just put it down as an accident and let it go? Locke, I'm only following the rules, Mr. I don't tell you how to run your circuits. Yeah, yeah, but when you're all finished with your questions it'll still add up to the same thing. An aerialist named Joe Crosby was accidentally killed while giving a performance. Just as simple as that. Yeah, fool Joe himself couldn't tell you anymore, even if the dead could talk. Thank you Dana Andrews for a splendid performance. Mr. Andrews will return in just a moment. Uh, hello. Yes, Hap? A question. Shoot, do you ever run out of words? Oh now Hap, be sensible, how could any guy run out of words with those sensational auto lights stay full batteries to talk about? I got my answer. Why Hap, those auto lights stay full batteries have the start of a jackrabbit, the power of a bulldozer and the life of a redwood all wrapped up in one. And to top it all off, they need water only three times a year in normal car use. So friends, when you buy a battery, buy the best. Switch to auto light, makers of over 400 automotive aviation and marine products in 27 plants from coast to coast. Auto light, the lifeline of your car. Always remember, auto light means batteries. Day full batteries. Auto light means spark plugs. Ignition engineered resistor spark plugs. Auto light means ignition systems. The lifeline of your car. And now here again is Mr. Dana Andrews. My thanks to Tony Liede for the opportunity of appearing again on suspense. It is always a pleasant and rewarding experience. And you'll have a pleasant and rewarding experience I'm sure next week when radio's outstanding theatre of thrills brings you Robert Montgomery. In another gripping study in suspense. Dana Andrews appears through the courtesy of Samuel Goldwyn, producers of Enchantment. Tonight suspense play was adapted by Larry Marcus from the short story by William Irish. Music was composed by Lucian Morawek and conducted by Led Bluskin. The entire production was under the direction of Anton M. Leeder. In the coming weeks, suspense will present such stars as Fiber McGee and Molly, Charles Lawton, James Wyman, James Mason and many others. Make it a point to listen each Thursday to suspense. Radio's outstanding theatre of thrills. Next Thursday, same time, here Robert Montgomery. With auto light. So switch to auto light. Good night. This is CBS, the Columbia Broadcasting System.


Hello, everyone. Thank you for attending my session. Introducing Metaprotocol Proxy, a near-saving proxy framework powered by N-Way. My name is Hua Bingzhao, and I'm from Tech2O. I work on N-Way, N-Way Gateway, and A-Steel. So first, I will give a little bit of background why we need a so-called Metaprotocol framework. Then I will introduce an architecture of Metaprotocol Proxy and how it works. And then some user kits, finally, a demo. So when we talk about microservice, most of the application, Microsoft's application, they are just using ATP for inter-save some communication. But for some user kits, as far as law, when I work in my process company, like for some internal application, for game application of some streaming service, they might have some opinionate protocol for inter-save communication because ATP originally are designed for transfer data, like documents or resource on the web, a lot for RPC. So they may want to use some other protocol, in some cases, like Swift Double or some internal protocol. And also, we have messaging, cache database, and other layer-saving protocol in our Microsoft's application. So if not all of the sidecar edge proxy, but maybe most of them don't understand this protocol, I mean, after the layer-7, basically they trade them as plan TCP data. So if we put a proxy in front of our application, what we want, really want, basically we want traffic management on the layer-7. For example, load balancing at a request level, and load limiting at a request level, and also routing, observability for the integration, or all of this functionality, we want layer-7 level. And what we really get is that just the layer-3, layer-4 level traffic management, like routing based on IP address, TCP port, or SNI, and the collecting level, observability, like status based on TCP send received bytes, open, closed collection, something like that, and security based on the collecting level authentication or relation. That's it. So that's the reality, but that's what we want. If we look into the different layer-7 protocols, we can find that actually, the processing of this protocol in our proxy looks quite similar. First, we want to extract some k-value pair from the layer-7 headers.  For example, we have ATP 1.1, AP2, JPC, TAR, STUB, and any other RPC protocol. Basically, the service discovery, we use something called designation for service discovery. For ATP 1.1, it's HOST. It's a HOST header. And for ATP 2, it's the authority. It's a pseudo header. For other protocols, we also have something similar in their header for service discovery. And for other processes, also, we use some layer-7 header, the k-value pair in the header. So that's very, very similar. So do we really need to create a dedicated proxy for every protocol? I don't think so. So in the world of layer-7 protocols, managing traffic is usually done in a similar way. So instead of building a dedicated filter for each protocol, we can just have a very common function. Or, generally, in our framework, we call it a metaprotocol proxy filter. That's what we want to create. So it's a two-layer filter architecture similar to the ATP collection manager in OE. So the metaprotocol proxies actually are layer-4 filters in OE, layer-4 filter chain. So all the common functionality, including the load balancing, the limiting, routing, both include the dynamic and the static routing, traffic monitoring, mirroring, tracing, magic, logging, et cetera. So all this functionality, they are similar. So actually, they are the same. So we built into the metaprotocol proxy in this framework. If you have your own protocol you want to support, you want to create layer-7 proxy for your own protocol, you just need to implement the code interface, basically that decoder and encoder. Decoder can extract layer-7 requests from the TTP-clicking string and get whatever header and then use for the data processing. And the encoder, encoding the data and send it to the upstream. So that's the basic idea of metaprotocol framework. So there are two important structure in this concept. First one is the metadata. So you can extract from a data package using the decoder. And anything you think it will be useful for your data processing, you can just store them at k-value pair in the metadata. And they can be used by the layer-7 filters in the metaprotocol proxy, like for routing much, for limiting much, et cetera. So let's look into the mutation destructure. So basically, if you want to modify your request, you put whatever you want to modify into the mutation destructure. The encoder will use that information to encode the request and send it to upstream. And then let's look into the request path. So first, when the decoder gets the request from downstream, I just extract header of this request and populate the metadata destructure with any value. Like if you have a user header, like you have a header for the environment. It's a test or production environment. You can use that in your header and store some information in the metadata. And then all the filters, all the layer-7 filters, like a router, or maybe a custom filter, or maybe a latimeter, can get that information from that data and use it to match against any configuration. And then use that for processing, there's some processing like for routing. And later, when the router has chosen the final destination for this request, the encoder can get all the mutation. Like if you want to add a header, like Trason, you want to specify Trason header value to 100%, then you can add it to the header. And the encoder will get that data from the mutation and create the request and send it to the upstream. So response path is similar, but just in the opposite direction. So that's how metaproduct proxy works. Let's say you want to add a new protocol. What you need to do is just to implement the code interface. If you look at it there, it's just three methods. The first one is decode. You get whatever data from the TCP collection buffer, and you populate the metadata with K-1 up higher. You extract from the header. And for encode method, you just use the metadata and mutation destructure to construct the outgoing request. And if you have any error during the processing, like maybe the request has been limited, you can create an error and send it back to the downstream. So that's it. So let's compare the work. If you use or with or without the metaproduct proxy, if you want to create a little same protocol proxy for yourself, before I think the work is huge, because you have to write a full-fledged little same filter. Just consider the effort writing an HTTP connection manager by yourself. It's huge. And after, it's manageable, very small work, like just write a code implementation. I know someone did this for a hundred of lines of code. Just in one week, by one developer, you can do that. So that's a comparison. Right now, we already support more than 10 protocols, including the open source and private protocol. For open source protocol, like DABO, Swift, BRPC, because the open source that we already support inside the built-in, inside the metaproduct proxy, built-in. And for some private protocol, the user have their own private get-up repository. So we don't want to open source. But overall, I think it's more than 10 protocols supported. And for the use cases, I think the most significant use case that has been used in the 2022 Olympic Online Streaming Services is private protocols for streaming services. And we also have use cases from Tencent Music, BOSS-SPIN, and a lot of cloud. And some more use cases can be found in this issue. So finally, our demo. So in this demo, we use metaproduct proxy as a sidecar proxy. Actually, it's part of a project, created called Alchemych. So the metaproduct proxy is on the data plan, serve as a sidecar proxy. And on the control plan, we have STL. And we also have another component called Iraqi to manage the long ATP protocol. So that's the architecture. Go to the demo. So first, we install Alchemych demo application. Just use metaproduct proxy as a sidecar proxy. So if we look into the part of the application, you can see that the used proxy, actually, the image is metaproduct proxy. So it can understand long ATP protocols. And then you can get layer 7 load balancing by installing just the demo application without any configuration. So if we look into the standard out of the application, you can see the request has been sent to two different version of the server, version 1 and version 2. So it means that the request has already been load balanced at the request level. Then you can get the X logs in the standard out of the metaproduct proxy. So that's similar to the ATP, but a little bit different because we have our opinionated logos format. It's different. The first one, you get the actual protocol. It's double. So then the status of request, zero means success. And the request and response size and time. And the request ID, the destination service, and the destination IP, et cetera. So if you look into the configuration of the in-way, you can get a sense of what's going on under the hood. Basically, the T3 proxy default is a T3 proxy, but has been replaced by a metaproduct proxy. And you get all the configuration, like the X log, the loader, the tracing, et cetera. Most importantly, it's the codec, so which private protocol, which protocol, specifically for this metaproduct proxy. So here, this protocol called double. And you can also have slave here. You can also have your own private protocol here. And there's some filter for getting the metrics. And the RDS configuration and the tracing. Yeah, that's it. OK, then let's see how we do routing, right? If we look at this CRD, it's similar to virtual service, but a little bit different, because virtual service is specifically designed for ATP. So we have our own opinionated CRD called MetaLooter. So it's quite simple. If you look at this CRD, it means that OK, we send every request to the demo service to the version one, version one of the demo service. That's it. So let's apply it. And then if you look into the client side of the application, you can see all the requests instantly have been routing to version one. So without any interruption on the user side. So it's a dynamic routing. The routing rule has been sent out by the Iraq and the East Hill on the control plan by XDS. And then we switch to version two and our rule. So that's the routing. And then traffic mirror. So we just send a request to the one version of the server under the client side, but we can get actually by mirror traffic to another version. So you get this. We're used for feature if you want to get the traffic from production environment and you want to fit it into your testing environment. So that's the rule. You can see that traffic will be sent to version one and being mirror to version two. So if you look at the client side, all the client has been sent to version one, but we fully look into the server side, you can actually see a request coming in both of the send out of the server side version container. OK. Then global routing machine. First, we configure the routing to server. So if the method is say hello, we have an imitation, like 10 requests per minute. And we apply the routing to the rule. OK. You get this result. Some of the requests have been rejected because it has been routed immediately. Of course, you can do local routing limiting as well. So it can be quite flexible. You can have a routing limit rule for the whole service, but you can also set some condition, like set a rule for a subset of the services. Now you get some requests rejected because they are already limited. And then the tracing. You can get a tracing auto box without any modification because for this protocol, the double protocol actually automatically pass down the header in the thread context, so you don't have to modify any code. You can get a tracing. And all the k-value part in the metadata have been populated into the tracing as a tags. So you can get all the information. And the metrics. So you get all the metrics. You can have a cluster-level metrics. You can also have, like, STL-compatible service level metrics. For example, you can have request total, this metrics, and the double services. OK, I think that's all for my presentation. Any questions? Cool, OK. Thanks very much, Robin. Oh, wait, sorry. Do you have some per-measurements, for example, for the regular plain, fully implemented proxy versus the meta-alternative? You mean performance comparison? Yeah. I don't have one right now. But I think we have one, not specifically for Swift, but for our protocol on our website by some of our users. So I think the main difference that is the efficiency of the codec implementation. So if you can implement your codec very efficiently, you can get a high swath. Otherwise, you have some problem. OK, thank you. Great, thank you.


Hurricane season is here and the Navy wants to remind you to prepare for potential storms. Well for hurricane season you need to be informed, you need to make a plan and you need to make a kit, have a kit ready. And one of the first things you should do now is get on ENFAS and that will make sure all your family's information is up to date. Kits should include a first aid kit, a battery powered radio, a manual can opener and three days worth of water, non-perishable food and prescription medications for each household member including pets. You should make kits for your home, car and workplace. Visit ready.navy.mil for additional resources and the full emergency kit supply list. From the Defense Media Activity, I'm Petty Officer Ian Cotter.


So, in promo, we have a problem, well, we have plenty of problems, but we have one specifically with social media. We post a lot to social media and we post to many places on social media to cover a wide spectrum of people and to reach a lot of people. So this is a very error prone and long, not long, but tedious process because we have to do it by hand. We do not publish the same message to different platforms, although the content may be the same, the form may change. So what we post to Facebook and Twitter, for example, may have a different phrasing as to what we post to LinkedIn because LinkedIn is more professional, so we can't be so chatty or what we post to Reddit because Reddit users, well, they're quite particular and so they don't respond the same to what we do on Twitter and Facebook, et cetera, et cetera. When we post to Instagram, again, it changes because Instagram is a more visual medium, et cetera. So when we have to post something to social media, there's quite a lot of work involved, and it can take quite long and, as I say, it's quite error prone because you can post something and then you realize you've got a mistake and you have to take it back or whatever, or you post the wrong message to the wrong platform and then you have to take that back and substitute it with the new one, et cetera. That is the first problem we have. We have another problem that is about scheduling, so a lot of platforms have a scheduling feature that allows you to post stuff at a later date or at a later time, so you can post stuff, for example, that you need to post for another time zone that is not yours. You can post it at four o'clock in the morning, but you don't have to stay up, so you can post it, but not all platforms have it, and every platform implements scheduling in a different way, and that is, again, is a bit of a mess. For example, if Twitter has scheduling through Tweetdeck, Facebook has scheduling built-in, Macedon has scheduling built-in also, but, you know, actual, you can't do it from the web interface, scheduling can only be done from a mobile application, so you can't do it from a desktop client, either. Reddit has just included scheduling for mods, but if you're not a mod, you can't use scheduling, et cetera, et cetera, et cetera, and as I say, they're all different, they all use different formats, and so it's a mess. You have to, again, it takes a lot of time, and it is not convenient. We have another problem with social media in that we're talking about credentials here, about accessing stuff. So some platforms do implement users that have different privileges that access different accounts, so you can have a team. So on Facebook, you can have an admin, and you can have an editor, and they have different privileges, editors can only post, and admins can do things like post, but also they can ban people, or they can remove comments and stuff like that. Dect also has a certain degree of credentials and roles. MasterDone has nothing, PeerTube has nothing, Reddit has mods, but that is a different thing altogether. So basically, on many of the platforms we've put, I think Instagram doesn't have any roles either in any shape or form, and it can confirm this. So on those platforms that don't have roles, it's either all or nothing. So if somebody wants to post to MasterDone, for example, they have access to everything, they could delete the whole account if they wanted instead of posting, they could do all sorts of things. This, of course, is also a problem. We have looked into existing solutions, and they do exist. There is a famous one called Tootsuite, which you would probably have heard about. Their logo is a little out, and there are many more. There are whole dashboards for posting to social media, but they don't really help us because of several problems they have. So the first one is represented graphically here. None of them are free in any sense of the word. So you always have to pay for them, or you get a very watered down version that only lets you post nothing, not what we want, and they are also all proprietary, which comes with another problem. And that is that they are a bit spied. Part of their business also means harvesting the data that really should be for you, about your users and about what you post and so on, which does not marry well with any of our principles. The other problem they have is that, okay, I didn't know how to represent graphically a service, so I just drew a dot. So they ignore the existence of the Fediverse completely. They have the typical things. They have anything that becomes popular in this proprietary goes. So they have Twitter, they have YouTube, they have Facebook, they have Instagram, TikTok, et cetera. But there's nothing like Macedon or diaspora or anything like that. So when we post to these places, we have a special interest in promoting our stuff on the Fediverse because that is sort of like the ecosystem of social media platforms that we can most identify with. And the final problem that these services have is that they are very inflexible. So you get what you get if another platform comes along that you are interested in, you have to wait until they implement it, or if they don't have no interest in implementing it, then you just don't get to post there via their service, and that's it. So these things exist, but they would not work for us very well. And the fact is that we have been going after this, solving this problem for literally years, and we have never found a service that would help us. So, enter our solution, and I'm going to play a video. I hope you can hear it. If not, Adam, please tell me. If you can't hear it, I'm going to transfer. This is always a bit dodgy. I'm going to transfer the screen control to the video player. This is Manaf, my colleague running a demo of what he developed during a season of KDE to solve this problem. This is a proof of concept, but stuff works. So let's see if you can hear it. If not, Manaf can explain later what's going on all live or whatever. So let's see. Here we go. Make that full screen, and here goes. So good evening, everyone. Hi, I'm Manaf, and today I'm going to give you a short demonstration of the social media app I've been building. And what I'm putting was that the promoting needs to spend a lot of time pursuing two different platforms. The content was same or similar. So I wanted to work on this application that would let you post in just one place. And it would then post accordingly to the other platforms. So the app itself is built on top of fast update. So if we could just also show you how to actually run the app itself. So step one is to export the parts for the credentials, which are all the social media credentials. So we need that environment to be even set. And then we can run the main server. Yeah, so we know that we have the server ready. Let's head to localhost8000, maybe. So currently there is no client. I work on the server. I am currently working on a CLI client. So meanwhile, let's just head to slash docs, which is the documentation endpoint for the Swagger UI. So please, Swagger UI will let you test and work in case it's similar to. Oh, sorry, Paul, you need to unmute yourself. The song is coming from the mic. Sorry. OK, so let's just hit the post. So the platforms that are currently supported are Twitter, master, and Android. So first of all, let's just post to all platforms. I'm just going to type all. The thing is that we have a test image in the main directory as well. So I'm just going to say test.png. The text is, let's say, the text is going to be never going to give you the time. So now I'm not adding a time right now. But you could add a date, timestamp over here, and you could specify what date and what time to post. So currently, if you don't add a time, it gives you a buffer of two minutes. And after two minutes, it goes automatically. So let's enter the master on base URL. So my master on account is registered with master.com. This separated tutorial to post to is Python is a log. The Reddit text is never going to give you the time. Never going to give you the time. So now let's just execute this. So say start the scheduler to using this to start the jobs. And then it gives us an ID for each of the jobs. Now if I go to skid start, let's just start. It says scheduler started. Now if I do, there's another endpoint that I can call the scheduler. It's skid game. So you can do this to get what the jobs are currently. As you can see, we have the ID and the date line. So it's 536. For the next couple of minutes, let me talk a little bit about the text tag that is used over here. And then we can see the post actually happening. So the primary text tag, as I have mentioned before, is fast API that powers all this entire packet. Other things that you can do with this are basically you could potentially, of course, you have a ping endpoint to just check if the server is running properly. And then you could also look at the user's endpoint to see your user information which I'm not going to do right now. And you can have post to the token endpoint for authentication. So it's 35. Let's wait for one more minute. Another thing which you could do, which I'm not going to do right now, but you could potentially go and just add the, you could call the cancel endpoint with an ID. So you could just paste this idea over here and cancel the job. I want to demo on three, so I'm not going to cancel the job. And after, so with fast API, we have AP scheduler, which is advanced Python scheduler for handling all the scheduling. So one important thing that we wanted to have with this app was that it could have some scheduling built into it. So it has a server and a client. The server runs 20%. The client just schedules the post on the server. And it doesn't matter if your laptop gets destroyed or whatever, the server is still there and the post is still going to happen. So it's statistics. Let's see if the post has happened.  And we have the response for everything over here also. So now let's just go and see the post, actual post. So we have this post on writing. Then we hopefully, yes, 48 seconds about this post. We have 50 seconds about this post on master. So this is how the algorithm works. Currently there is no actual client for this. I am working on a simple CLI client that is just going to pass the ML5. And it's going to schedule all the posts for you. Yeah. So this is pretty much it for the demo. Thanks for coming. OK. OK. So that was the demo. Thank you. I mean, thanks, Mana, for recording that. I have watched that demo like three or four times. And I always get excited when I see the post actually pop up in the social media platforms. Although I already know that it's going to happen. But anyway, anyway, so this solves several things. It solves the problem of multi-posting. So let me qualify that. It's not because Mana has done a bad job or anything like that. As you can see, it works. The thing is that at the moment, and this is what Mana was able to develop in the time I located in the season of KDE, at the moment it posts only to three of the platforms that we regularly post to Twitter and it posts to Master Don, right? We have tried Facebook, but Facebook is very, very complicated. We'll figure it out sooner or later. And so on. So multi-posting works. And also scheduling works. Scheduling already works completely well, as you have been able to see. And as Mana said, what happens is that you can have a server out on the internet running 24-7 and you can send the stuff to the server and the server will be in charge of scheduling it, not each individual platform. So the scheduling happens at the server level, not on the platform. So we don't have to worry about all the different ways scheduling has been implemented in each of the platforms. Then this is not implemented yet. This is the question of roles. So what we want to have is to be able to have teams access in the server with different privileges. So that you will have an admin who will be able to assign roles. You will have an editor who will be able to post, but not assign roles, for example. And things like that. That is not done yet, but it is in our future. We are, as you saw from the video, it does have a login. So it's not open to anybody. But at the moment, it's very much like one only user. But hey, again, when we get this implemented, it will solve a lot of problems because each platform, Facebook, and Twitter, and Reddit, et cetera, implements roles in a different way again. So we will have only one way, and it will be done by the Cockatoo server. Next. This is private. You can run it on your own server, or you can run it locally. And you can just connect to it locally. So although, of course, we haven't stress-tested it for vulnerabilities or anything like that, we haven't done anything like that. It is already a bit better than sharing all your stuff with the platform that you pay for. So because you can run it locally, and it only gets the stuff you want it to get. And before I go on that, I've missed apparently a slide. It is also flexible because it's plugin-based. So each of the platforms it posts to is implemented in a plugin. So as new social media platforms appear, or if you want to post to a niche platform, you would have to develop, obviously, you would have to develop a plugin for that, and just plug it into the Cockatoo server, and you will have it implemented. And now, how hard it is going to be to write the plugin for that platform will depend on the API of the platform, of course. But for things like the Fediverse, it's pretty easy because we document everything. Everything is open, et cetera. For Twitter, apparently, it wasn't very hard either. Facebook, we did have a problem, but there you go. Yeah, so it's time to meet our mascot as the title of the talk said. This is called Cockatoo. Because Cockatoo are noisy little birds that and we make noise on social media. And that's why it's Cockatoo, and also because Cockatoo start with a K, of course. And the mascot is called Carmen, which is a nice little Cockatoo, and it was designed by somebody on the Krita Artist Discourse Forum. He was very, very kind, and he created all this, and he created our logo, and he created a little icon. And they are very pretty and very funny. Now, now comes what we need from you folks. So to continue the process, of course, Manav is going to continue developing, but it would be good if we had some support from other developers. So for example, I divided them into what we want short-term, mid-term, and long-term. Short-term, we need a client, mainly a proof of concept client. Manav tried to develop a CLI client for this talk, but he didn't have time. So we want, first, that's something that we can just use from the command line just to test it. And we also need the rest of the plugins for the rest of the platforms we support. So as I say, Facebook, we haven't got a plugin. We haven't got a plugin for Instagram. We haven't got a plugin for LinkedIn, and we haven't got a plugin for Hack & News, either, and we haven't got one for diaspora. And those, I think, are all the platforms that we regularly post to, and we need a plugin for each of those. That's the short-term. Then we would need, this is not in any particular order of importance, but we would need to implement the roles and privileges, of course. As I mentioned before, at the moment, it is one user gets the login and does all the posting. And we would want to be able to assign teams to posting, because that is what we actually have in promo. We have actually a team of people who have access to the social media platforms and they are who post. We would also want to implement accounts. Now, this is different from implementing roles and privileges. I, for example, personally, I manage three accounts for KD. I manage the KD, three accounts for KD on Twitter. Sorry. I manage the KD community account. I also can post to the Academy account and I can also post to the Labplot account. So we would also want to implement that, that one user could have several accounts. So several people should be able to post to one account and one person should be able to post to several accounts, ideally, right? So that's another thing. It would also be cool to have a convergent client. I don't know if the Tocoton people are here, but if they are, you know, convert, if you can convert your MasterDone client into a Cocotoo client, that would be really, really cool so that we could have a graphic client. I don't know what that would look like because as I say, this is not a one-to-one thing. You don't have one message to one account like you would have in your Tocoton. You have potentially several messages to several platforms. How that would look instead of a big long list of fields and stuff like that may be something node-based. I don't know what it would look like. This is, I think, an interesting challenge. We also want to create the API documentation so that people outside from our immediate, but outside even from KD, can develop plugins for their own platforms. And we want to set up a server. We want to set up a server for the KD community so that all projects can post using this system to all the social media accounts they have. This would be really, really cool thing to have. Long-term, well, it would be interesting to turn it into an end-user package. So package the server with maybe a watered-down server with a client so that people could just have it installed locally on their desktops or on their mobile phones or whatever, and they could manage several of their own accounts, not maybe getting rid of the team stuff, maybe getting rid of the multiple roles stuff. So it's a watered-down version and it works on a phone so that you can just put it out like an app. People can manage several accounts, there's several social media accounts from one place. It would be nice to have a dashboard to see how posts are going. This is a typical thing in the other proprietary solution. So you post and it also tells you how it's doing, what sort of engagement it's getting, how it's doing compared to other posts you have made, et cetera, et cetera, that would be nice. I mean, it's not a priority. It would also be, this engagement feature is just being able to respond to when people comment or reply, et cetera, to whatever you tweet or whatever you post on Reddit, et cetera, directly from that. Again, not super urgent, not a super priority, but nice to have. And finally, make it into a service that the whole world can enjoy. That would be a great thing to be able to do. So that's it. And I think we have 10 minutes. Is that correct, Adam? Yes, we have 10 minutes. So we have, that's the end of the presentation. And you can find the code there, right? That is Manav's personal repository on Event. So questions. Okay, thank you very much, Paul. Thank you, Manav, for the presentation, the demo. We don't have questions yet from the audience, but personally, I would like to ask a bit about the mascot. If I can. I really like, sorry, what was the name again? Carmen. Carmen, the- Carmen, the Poco 2, all with K. Okay, amazing. So will it join the other big mascots of KDE as a- Exactly. We followed IK's lead. He, when he was making Kiyogi, he went to also to the Blender Artists Forum and us. And, wow, the people there, they are so, they are so kind and they're so talented. I mean, it was no question. After a day, we had like five different mascots in different styles. This is the one we like most, because it's really cute and funny. Yeah, it's a very nice mascot. Yeah, so I'm not seeing questions right now. So- This always happens to me. Everybody goes to the other room. Everybody is watching the cute sex talk by Lars. You should, this is, you should probably, when something rubbish is happening in the other room, not something good. First of all, there's never rubbish on Academy. No, that's true. Second of all, we do have viewers and they were enjoying the talk, I'm very sure. They're just probably not sure what to ask the tool. It's a new tool. I think there's a lot of technical things you could ask Manav, there's tons of technical things. Yeah, I think for the technical stuff, maybe Manav can hang out in the Academy tax room and in that case, so we can just chat about that or in the just Academy attendees general chat as well. Okay, thank you very much both of you for this presentation. Good luck with using Kato and upgrading it with new and new features. And thank you. Let's hope somebody saw this. Paul, I'm pretty sure people did. I'm pretty sure people did. Thank you very much. All right, bye-bye.