Okay, we'll catch up with everybody else later. So let's get started. Do-do-do-do-do. AIs, nothing too exciting there. I do not see an Austin on the call, so we have no update on the SDK, but I don't think they had a, I'm sorry, I know we did not have a meeting, so there probably isn't anything to update there. Other than to say, I will mention that I bumped into Mark Peek, who's not gonna be able to make the call today, because he was traveling, that they did get permission to transfer over their Go SDK, he just needs to actually make it happen. So that should happen relatively soon. Other than that, I don't think there's been any real progress on the SDK's front. Moving forward, Cathy, is there anything you'd like to update us on relative to the workflow subgroup? Oh, really, thank you. No, okay, thank you. There's a lot of background noise, people can go on mute if you're not talking, I appreciate that. Let's see, KubeCon. So Cathy Clemens and I had a discussion last week to talk about the preparations for the deep dive and intro sessions for KubeCon. If you guys are interested, there's a Google doc here under update. I did put together some very, very rough slides, just as an outline of our various topics. If anybody's interested in contributing to that, even if you're not going there, please feel free to look it over and correct things if you see that things are wrong. As of right now, the slide deck really won't have a whole lot, just sort of an outline of what we agreed to talk about. So I really want to wait a couple of weeks to see something close to the final version. You might be better off, but anyway, feel free to take a look if you guys want to. Interop work, as far as I can tell, no one's really putting any comments into the interop demo Google doc that I put out there. I really need some feedback here, in particular on the type of application we want to do. The two leading candidates are the natural language translation, meaning go from English to French to German, back to English or something like that, or a madlibs kind of thing, where each participant in the demo just generates a random adjective, adverb, whatever, and we put it into sentences and steal kind of funny things we come up with. Personally, I'm leaning a little more towards the madlibs thing because I'm not sure how many participants actually support natural language translation, and if everybody just calls out to some popular servers on the internet, then that doesn't really do a whole lot for us, so I really need some feedback from you guys. This is probably not gonna be done in time for Shanghai, but we are looking to do something for the KubeCon session in Seattle. So people probably need a lot of time to put code together, so please do comment on that if you get a chance. I really need some feedback there. All right, any topics or any questions or comments on any of the topics that we just ran through? All right, cool. In that case, Richard Hartman is on the call. He's from the open metric side of CNCF. He and I conversational a while ago about the possibility of some sort of collaboration between our two groups, and we thought it might be good to just spend 10 or 15 minutes just to have him talk to this group to share some of the ideas that we've bounced around. So Richard, do you wanna unmute and join? Thank you. Also sorry for the background noise, but that seems to have subsided. For current information, I will be at both KubeCon Shanghai and Seattle. We can also sit down in person if need be. I also try always to be a little bit early, a little bit late and leaving. So there's actually time to sit down in peace and quiet outside of the actual KubeCon. So open metrics. Most of you will have heard of Prometheus, which is the de facto monitoring solution within the cloud native space in the meantime, especially since it's really well integrated with Kubernetes in Prometheus or with Prometheus, where the second project to graduate within CNCFs. And there's quite some velocity behind what we do. Yet we have the, I think there's a ton of political stuff around projects or even vendors supporting a competing product slash a competing project. So what we did is we took that standard, which was already existing for how Prometheus emits data and it has data into its database. And basically updated a little bit, mostly with input from Google and from Eber into something more versatile, which is still backwards compatible with Prometheus exposition format. And that's what we're currently doing, basically creating a standard for transmitting metric data over the internet or whatever with a special focus on the cloud native space. We already started to branch out a second thing, which is not yet fully done, which you'll probably call open steps or something, which is more like steps where you actually push data as opposed to the open metrics to pull data. There's also some other operational differences, certain large deployments need that kind of thing. So we decided to split the input nice and simple. But we also plan to expand beyond that with then cover for example, events, log files, traces, all these things. So basically what we are doing is we are defining the format through which you can transmit data. And from what I can see of cloudy ones, basically what you're doing is you're defining what needs to be transmitted on the wire while being flexible about how the accept format looks. And that's basically where I see the potential for coloration in as much as we have an opinion about how things should look and ideally things for metrics, for steps, for logs, for traces, should look very, very similar. So people learn it once and then they basically can deal with that data no matter what type of data it is. Whereas you only have minimal requirements on certain data types, which need to be exposed but else you don't need to care about the format. And that's where I see the intersection with a possible intersection. That basically you support something which looks like open metrics but for events. And we on the other hand basically support it and then we call it whatever. That's basically the really short version. Right, right. Any comments or questions from people? I know you guys aren't that shy. You can go ahead, I can also, if need be, I can also expand on stuff or on wire and how on such. Yeah, so I might have to. No, no, I think it might be useful actually to expand a little bit because you were very quick on it on where you see the collaboration. I mean, you put it in very precise terms. Like for example, do you see us producing a cloud event mapping for open metrics or how did you see the collaboration? What was the collaboration result and put it that way? Ideally it would result in a format which is supported by cloud events which is also supported by whatever we call it on our side for handling events. And then basically we define that you have to emit certain metadata about events within that spec, within that format. You define that it can be done through that format and that basically both look the same. So we have something that people can use something existing which is coming from the metric space and stuff actually looks the same. Maybe it's best if I just copy and paste something in for people but before trying to explain this that's probably better. Is everyone aware of what promises and how promises does things? No. Okay, very good. So let's start at that point. So basically we have things with a text to have a format. For me this proper actually decommissioned the proto but Google needs it so open metrics expect for our stuff we are actually quicker in things with just parsing text which was surprising but that's the case. I'm just going to look into the agenda. Okay, so I'm going to put the link into the agenda I put in there just now. If you click on that link what you'll see is current live data from a demo instance of Prometheus and this is how Prometheus explicit format looks like but basically in this specific case it would look exactly the same if you're doing open metrics. So what you're seeing here is a certain format of how to define data which is attached to things. You have the name of the type of the time series then you have certain label sets which are basic key value pairs and then you see different keys with different values. This opens an n-dimensional matrix with which to slice and pass your data and at the end because this is metrics you just have one single number and this is the actual data being transmitted or the actual value of the data. So if you look at that you can easily see how you could transform something which is already now being done in one of the formats of CloudyWinds to just look the same in respect to the format. And that's basically what I'd like to see come out of this possible collaboration. So wait, so what are you, so in which direction? So what are you, I'm not clear what you're expecting. Basically in both directions. So again, from what we do at Open Metrics we actually named the group in which we are doing this and have open observability to deliberately expand the purpose beyond just metrics course you need more for through observability I don't have to convince you of that. And that we say as a CNCF member project okay this can or should look like that and you as also a CNCF project say okay it can also look like that and just by happen sense it's exactly the same. And then we just, I don't know say you support the open whatever format within CloudyWinds and the open whatever format of CloudyWinds also supports CloudyWinds. Based on the background I'm being distracted. Yeah, so so far what we're doing with CloudyWinds is we're expressing distinct events and then are effectively dispatching and routing events. And there are different from, so I think what we're mostly, we've been so far been focusing on also in our interoperability samples in most of the discussions are events which are actionable which means that you raise an event from a source something just happened and then you dispatch that to a handler which sits somewhere on the other side of the world and that then goes and reacts to it. It looks like what you have here is more a data stream of observability things which are not necessarily immediately actionable but they rather need a later processing which is a bit of a different pattern and which we've also discussed like we've had we have extensions that are allowing to put sequence numbers on cloud events, et cetera but we're really looking more at discrete events which are individually handled and then individually dispatched for PubSub systems and there are individually invoking functions rather than looking at streams of events and what you see to have here is event stream. I get what you mean. So, and that's where basically or to the other way around. Your focus is on a different level than our focus. Our focus is to have a common format which people can basically parse and rely on certain aspects of having a certain format for the data to make it easier to then for example, most systems today or the legacy systems are hierarchical data structures. You don't have them, that's great. We don't have them either. So, that's for example, something which people should be able to rely on to have certain baseline assumptions about how data is being structured at the conceptual level. And we both just finished your thought. If you send something actionable and that's, I know that that is basically your current focus. You don't care as much about how the format looks. We care a lot about how the format looks and that's where basically this is coming in. I don't really care what is being transmitted as long as the format looks the same for all the different types of data. That's where we are coming in from. So, we're looking at two totally different layers. Think of it as exit. I mean, HTTP is the new TCP IP. You've probably heard of that one. So, we want to be the format within HTTP to transmit data and then people basically just have something which looks alike and can reuse parts of the parser, blah, blah, blah. So, why do we need to have another data encoding? You don't need to. If you say you're not interested, then that's totally fine. So, I'm not trying to convince anyone. My only thing is I want to make sure that people are aware this exists, how it works. And if it's interesting, then great. You should collaborate if not, no hard feelings. So, quick question, but Richard, did you ever see a time when the, where the data that you're displaying here on this page would ever be transmitted as a cloud event? No, this specific type of data, no. But this is just for demonstration of how the format looks. Of course, it makes it easier to discuss things when you know what is being talked about specifically. So basically, if you have an event, you want to transmit that event. What I would expect to happen if you are open, whatever compatible is, you have a format in which you say, okay, this is the name of my event. That would be the first part. For example, where you have the cursor go, you see duration seconds, obviously you had a different name. Then all the metadata with human data must be included with an event which would come within the curly braces. Then at the end, you would have the actual value of the event or maybe in your case, you would put everything into the curly's and as key value pair. And that's basically it. And you send this over the line. And the only thing I would care about is that this looks basically like that. So someone who's familiar with open metrics, open stats. Again, we are also looking at transmitting traces with the same format, blah, blah, blah. That this basically looks the same. And that's all I care about, at least on this level. All right. Why do you keep your specs? Mainly in our hats, and this is a large problem of where we currently are. We have, so basically, we have a bi-weekly call and we're currently in the phase where we are both implementing reference code and we already have reference code which emits the format. And also we are currently writing an internet draft with the purpose of this becoming an actual RFC. But it's not yet done. So there's bits and pieces of the internet draft in our repository, which I'm going to link to in a second. But again, this is not done yet. So you can't look at the full spec just also why this is a good short-term of showing where the format ends up at to just look at demo traffic or demo format. Yeah, without a proper wire. So do you have a type system? So basically what you see here is what we are doing. So it's always going to be just written through over HTTP, always. Yes, exactly. I think you don't. And it always is either UTF-8 encoded text or it is proto. And then you have what you see there, that's the basic thing. There is a full request open for the internet draft. I can also see, I'll probably use this for you. I can also link the Python code for emitting. No, the question is, you are showing numbers there in that data, is there a formal type system? Yes, of course. It's also plus 64 if you go by proto, if you do it via text, we basically took the short-term or whatever that as this is text you can fit more than float 64 but by the format you would be required to always have float 64 as a minimum. You're allowed to float 128 at the end. Which means you can only represent fractional numbers and, okay. Yes, in the metric space. Again, this is here exactly and only for metrics and a lot of the design decisions made here are being, have been done because this allows us to compress extremely well in the database, like really extremely well. So what you see here would not work for events for obvious reasons. Of course, this is just for metrics. So if you ignore the number on the right-hand side and basically look at the name and the key value pairs within the queries, that's what you would be using. Well, since we're both, since we're both about transfer, so both projects have a notion of events. And I've, I assume that the data that you have in your project is useful potentially for people who are using, who want to use the call events format. It'll be interesting to map one to the other and see whether there's conversions potential, but we would have to have, we would have to have a, effectively a full wire specification to look at. Yes, agreed. We don't have that yet. Basically, we will have it soon. This is a good place where we have a deeper look. I can also just take some random demo data with captain Europe's entry and transform it into what I would expect this to look like. Of course, this would basically short circuit the need of having the full spec already written out and you have already something to look at, then we go from there. Yeah, so I think what I'm hearing is maybe revisit this topic once that other, once the specification is available for us to take a look at. Is that fair? Sounds good to me. Intermediate offer, I can, I can just transform some of your data into the format which I would expect to come out. Of course, this is probably 80 20 and it's pretty everything. Yeah. I'm prefer, I'm preferring having a spec before in concept before implementing something because I would like to understand how those things conceptually align because putting things in code is relatively easy but having to make sense is a different thing. Totally fine, I don't have a preference. Okay. Is there anybody else on the call who'd like to chime in here? Yeah, hey Doug, this is Austin. I've got a quick question for Richard. Hi Richard. I know very little about Open Metrics but I'm just curious what level of industry adoption does this effort have? So as we are back to compatible with the Prometheus Exposition format, we have over 300 different exporters written by thousands or hundreds of different entities. We are aware of either thousands or tens of thousands of companies actively using this wire format within the context of Prometheus. We have several competing projects and also competing vendors. I mean, we are a project so we don't have a product to sell but still there are vendors which have a competing monitoring solutions which either adapted our format or even just filled in our libraries. Of course, Apache or they can. So there's tons of adaption in there. Google is currently looking at making open sensors compatible with Open Metrics or they're not looking at it. They are actively working on it. Uber is actively working on making their stuff speak Open Metrics. I had Apple contact me two weeks ago. There's tons of others. So basically there is already quite some adaption and also there is quite some interest in this. But this is only for the metrics and for the stats side. Of course, the rest we didn't get really start. There's people interested but we didn't really start this yet. Of course, we need to finish the metrics and the stats. Great, thanks. Yeah, the backwards compatibility there sounds like an awesome way to approach the whole effort. How long has Open Metrics been around? As an idea for I think 2015 or 2016 as something we actually are working on since last year. Okay, cool. Those are all my questions. Thanks, Richard. All right, thank you. Anybody else have any questions? Comments? Hi, this is Dabane. You said you are looking to integrate Prometheus into Open Metrics or actually build Open Metrics on top of that. Does that include the alerting side and surfacing actual events as we're speaking about them from Prometheus and the related systems to users because I see that's where the biggest actual potential for collaboration would be not in actual metrics, but what happens because of that? Yep. So basically currently what Prometheus is doing, so Prometheus itself already is, there's already a branch which is able to ingest Open Metrics data that's the metrics side on the events of Prometheus. I fully expect when we are actually done with defining something which transmits events that Prometheus and Alert Manager would migrate to that. We are also currently looking at having a complete new system for alert systems or events things within the Prometheus space to not only have an alert manager which basically throws out garbage or alerts and then doesn't know about them anymore or doesn't persist anything. So there's more of a user story about actually following up about stuff and persisting important information, blah, blah, blah. It's like the central data point of something is open, I need to fix it. And I would expect everything which happens in the space to use something which looks basically what we're currently looking at. Also information for a fauna is playing with something for lock, like syslock replacing, which is also used. And it basically looks the same. We just have text and not numbers on the right hand side but else it looks the same. So this would all migrate to exactly this format or to this format family, let's say. I have one more question. Okay, I think we're, go ahead, Glamis, but I think after this we gotta wrap it up. Yeah, yes.  I'm curious, there's, if you look at the space of an eventing telemetry transmission, et cetera, there is NQTT, there's NQP, there's Kafka, there's Nats, there's all kinds of streaming, specific streaming protocols, which are really good for this. And so I'm curious, why are you voting this HTTP? Basically, XKCD, I think it's 927 applies. There needs to be more standards. But seriously speaking, no, seriously speaking, what we see especially in a cloud native space is that HTTP really is the NQTT IP and everything is an HTTP endpoint. And that is something which all of Prometheus is built upon. Basically because it comes from Google or it's stolen from or whatever and there that is already the case. But the cloud native space is also really, really getting into that corner where basically everything's an HTTP endpoint because it makes a ton of things a lot easier. You have the low time and you see all this streaming, blah, blah, blah. So you have a ton of working code and working processes which you can build on top of. And that's why we chose that approach. Yeah, there's also a lot of GRPC and all kinds of other things. So that's not necessarily true. But anyways, thank you. Yeah, that's true. Again, we also have code. So you can also toss it in there, guess what Google and Uber are planning to do. All right, well, cool. Thank you, Richard, for doing that or for your talking to us. As I said, I think once you get the specification written, go ahead and ping me or us and then we can probably have another conversation at that point. Does that sound fair? Sounds great. It will probably be one or two more months if I'm going to be at both heap cones. That's basically it. All right, yes, that sounds great. All right, thank you very much for coming and speaking to us today. I appreciate it. Thank you. Is it okay if I do up off the call? There's people waiting for me. Oh, of course. Yes, yes, please. Okay, perfect. Thank you very much to whatever times you're in and talk to you soon. Goodbye. Okay, thank you. Bye. All right, thank you guys. So let's move on to the PRs. Clemens, you opened up one about encoding exceptions. Let me bring that up here. I'm probably mis-enabled that a little bit or it's... That's fine. This is not about encoding exceptions but encoding exceptions. Yes. Yes. Go ahead. Didn't we talk about this last week? I don't... Wait a minute, did we? I don't think we did, but maybe I'm wrong. Oh, maybe we didn't get to it because the other discussion was... Yeah, that's probably it. That's true, yes. Okay. So that basically says that we can go to the... Where can we make it go? H&P is a little outlandish for people to look at, I think. So H&P's clear, probably. Yes. Right here? Okay. Yes. So, effectively, cloud events, extensions. So this is effectively creating an escape patch and then someone raised that. I can't remember. I think that's the view. That if extensions may have to specify their own H&P headers, or they may have a different mapping rule for the attributes that they define in other ways. And so, this is effectively allowing an extension to do that. So there are... Because we have pretty hard and fast rules here in how the metadata headers actually map down. And if you have an extension, then that actually may have a diverging mapping. I think that was motivated by the other tracing thing. Open tracing, what did we have? One of the extensions that has specific H&P headers that must be used in a certain way. And this is basically saying, yeah, what you should do if you are implementing an extension, you should look into the extension and how it does that. And so that's what that first paragraph is for. And if you do this, then, and that's what the second clause says, is you can't just do that for H&P. You also need to do that for all the other program calls that we have. So quick question for you. I don't see anybody jumping on the queue. So let me go ahead and ask my question. Would it be better to define this in one spot, like in the extension document or in the primer, as opposed to having to do it in every single spec? We can. Because as I was looking through this, it just seemed like the same text is kind of repeated in most places, right? It's slightly different. But yeah, it's in essence the same thing. Yeah, that was my only question. Conceptually, I agree with it. I just thought it might be a better way to write it down. But any questions or comments from people? Where would this mapping rules be defined? Are they part of the extension definition and all the transports due to the, I don't know, parking of these definitions? Or does each extension need to modify transport, which sounds like a bad idea? So the first is here, the certainly trade this extension, right? This would have to go and say, when used with for HEP, this spec needs to define how it wants to go and have its HEP headers look, right? Must be encoded over HPS as headers in the following way. And it basically needs to go and define clearly how it wants the HEP headers to look. And I think for interoperability, even if just HDP is defined in distributed tracing, if you're making an extension to cloud events, you must also define right here how that looks on NATS and NQT and NQT. Because we're doing all the stuff right here. Yeah, I agree with that. But in the sense that does every extension writer have to add the transport to actually define and implement these rules? Or will they be parsed by some generic parsing done by the transport? So, no. So, in fact, this guides more or less our plugin model for the SDK, right? Ultimately, an extension should, if it can, avoid making any special rules. If it can't avoid them, which means it needs to go and align with an existing standard, like here, open-trade distributed tracing, then it must do an override. And then that override must be implemented effectively inside of the extension for distributed tracing. So, the way how the SDK must be shaped is that it can go and influence how the headers work. Got it, that makes perfect sense. So, implementation will actually happen at SDK level. Thank you. Yeah. That's how I look at that. Like, if you have overrides, if we allow overrides, we allow the versions from the standard mapping, then effectively, whatever we create at these extension plugins, the transport must be able to go and call into them, right? Use them to say, oh, yeah, and now I have some metadata and now you need to go and please translate that for me into headers because I don't know how. Okay. Anybody else have any questions or comments on this? No questions on my end, but it looks super interesting. So, thanks for this, Clemens. Always for you. So, Clemens, would you prefer to keep it the way it is now or would you rather find a single spot to put this text? I can go either way. I just wanted to raise the question. I prefer having things in the place where you can't ignore them. Okay. That's fair. Which is right in the spec. I'm looking at this. I have another spec to which all interdependent documents right now with an NCP and I'm also finding myself replicating a lot of work just that you can't escape the normative power of what I want to say by ignoring the documents. Right. Okay, that's fine. Okay. I believe this has actually been out there for a while so hopefully people haven't had a chance to look at it. But we haven't had a chance to actually discuss it till today and let me put it in the question out there. Do people need more time to review this before I ask for approval? And do not hesitate to ask for time because I don't think this is critical. So if you need more time, don't hesitate to speak up. But I also don't want to prematurely or unnecessarily block it either. Does anybody feel like they need more time to review this? Can I ask one thing? Even though if each transport spec defines how the extensions are mapped, would it not be quite useful to also have explained the basic idea behind this in the extensions specification or the extensions part of the specification where one would actually know about this without looking at individual transports because now you wouldn't know about this. If you went to look at extensions, if you wanted to make an extension and you just looked at the main spec and the transport findings, that might be problematic. That's true. I can either make that as a follow-on item or I can go and extend this one to tie that together. I can do it either way. So Clemens, how much additional text do you think beyond what we already have, which is what I'm highlighting right here? If we need to put that into the extension section, then that's another paragraph. Well, this is already in the extensions doc. Oh, it is, hang on. Yeah. Oh, there's already a section on that. I guess that might be enough. That's why I thought it might be a little bit of a duplicate text, but I'm okay with it if that's the right thing to do. Okay. Any other questions or comments from people? Is there anybody who objects to, in essence, taking a vote on this one? Okay. Is there any objection to adopting it then? All right. Cool. Thank you, Mr. Clemens. Appreciate that. All right. Next is Clemens. Oh, look at that. Look at that. Geez. Oh, yeah.  Well, I don't know. Which one do you want me to go? This was the new one. You just opened. Which one do you want me to go with first? Well, that's true. I made some changes to the other one because let's look at the second one first. Okay. Can do. Because that's actually, so there are actually two commits that are sitting on top of each other. So that makes, so now here I went all the way and renamed. So the text that we reviewed last week was kind of the core constraining the character set. Down to all lowercase. And now I actually went through the work and made it all lowercase through all the documents, including here in the H&P spec and changing all the attributes and all the samples and all that. So that's kind of, when you scroll down, you'll see just an uppercase lowercase, uppercase lowercase conversions. So that's not more exciting. The normative text is effectively the same. I didn't change that. I just did all the work to go through all the documents and make that change. Now you also see that the effects of that, that this runs together a little bit. And I think that will trigger some reaction with people who are keen on having everything nice and aesthetic. But I don't think it's all that terrible. And, okay, I think that's enough scrolling. I mean, you can scroll through the whole thing, but it's kind of mostly what it is. The only text is the same as it was last week. And that is we're making it all lowercase and we also allow letters. Now you can look at the other one. Okay, Dookie. Hey, Plays in particular here. Yes, we can go to normative text, which is our, I'm trying to find that. Inspec.md, right? I guess, spec.md. Here we go. Here we go. Thank you. All right, so, the underscore symbol. So you see how this underscore already is messing things up because it now makes it all italics. I didn't escape it. We can't use it then. Sorry. Like I said, as I said, that's my point, right? The underscore to the behavior symbol. So the underscore, from the ask the character set, and you must begin with the lowercase letter. And then, so I'm just adding the underscore. But effectively now that I have the underscore separator, word separator, now I'm also using it. And that's what I'm doing in this variation. Where I'm now also using event underscore type and I do this through the, like if you scroll down, I just renamed them all in an appropriate way, cloud events version, did that for all those and renamed them through the entire documents.  But it runs a little bit longer. And I'm, you can see, yeah, runs three characters long in that one. And I'm okay either way. I'm leaning towards the first one, where it's all, where it's without the underscore because of the risk of the underscore character overall. And because I'm a fan of saving a byte or two on the wire, if I can. And so I'm okay, ultimately, with either option, if people like the underscore better, then that's fine. But I'm personally leaning towards the more compact version, which means PR 321 rather than 327. And just to be clear, the only difference between these two PRs is this one allows underscores and the other one does not. Yes, so it's underscore. And then because I allow the underscore also go, I do the logical thing and use it as a word separator for all the places where it needs to be. Right. But that is still optional for someone to use it as a word separator. They could still choose to not use it at all. Yeah, but then it's a little weird to go and introduce it. I mean, we could do the same thing, but I would find a little odd if we would allow it and not use it. So does that mean that we should encourage people to use it a word separate? Because what I'm wondering is, if someone defines an extension and they choose not to use underscore because they just like you, they just don't see the point in underscores that you choose not to. Is it going to hurt the adoption of our spec if we don't encourage extensions to also use underscores? Yeah, well, I don't know. Okay, so something to think about for the group. Okay, any questions for Clemens? This is Jim, not really a question, but just an observation. I would vote for the second one. It's just a stylistic thing from my point of view. I wonder, at the same time, if we could normalize some of the attribute names. So, if we've got event type, why don't we have event source and event data and just sort of keep it all consistent? That's the second, that's the thing I didn't do. Right, to drop the event. On last week's discussion is to actually go and trim the names and basically turn this into because type and ID and all those things that I thought of that, but then that was a bit much surgery for my taste. Sure. In the single PR. But yeah, that's something like trimming the names is something that I'm in favor of which also gets us out of some of those underscore cases. Exactly, yeah. So, Jeb, would it be okay with you if we dealt with that as a secondary issue after this one? It is related, but secondary. No, no, absolutely. I mean, I think I was just trying to avoid multiple iterations and if you could do it in one go, then so be it. But no, that's okay. Yeah, I'd rather deal with one thing at a time because it could make it harder for us to get anything through. So, okay. Any other questions or comments? I do have one question. Why is this even a topic? Because HTTP headers are case-insensitive across the board. Yes, but we have other transports which are actually case-sensitive. So, first, the attributes of the NQP are case-sensitive. And Jason is case-sensitive. So, the problem we have is that we have parts of the infrastructure we're targeting is case-insensitive and parts of it is case-sensitive. And we have observed, I think, some people have observed some libraries that they've been using who try to be really clever about how they do casing with headers and did case-folding kind of all by themselves for aesthetics. And so that's all causing all kinds of confusion, apparently. And that's why we said everything on the wire is always lower case. And if you see it's not lower case, then you have to go and case-fold it down. I didn't make a PR for this idea, but what would you think of if your map goes into the JSON header, it comes along with a translation object? If we use these in the header and it should JSON or AMQP into this field and we know we can't do direct translation between the two, so here's a lookup guide. Actually, Scott, I think that's similar to something I had suggested a while ago, which was, in essence, add another, I'm not sure what the proper term is, a parameter to the HTTP header. So the end of the HTTP header value, you see a semicolon name equals and then the real name in the right case. I think it's almost similar to what you're suggesting there. Yeah, yeah, exactly, like a decoder ring. Yeah. How does that work? I'm not sure how to transfer it. I have the ability to add that though. It works a lot like how J-pigging works, where you can group long colors into a key and then there's a lookup table that translates what the actual color is for that particular shortened color name. That sounds complicated. It's, yeah, it's very complicated. I'm not for complicated. So Scott, is this something that you'd like to actually seriously pursue and write up a PR for it? Oh, what I'm questioning is why force every other transport to have this funny, force them to have cases or underscores if they can handle casing and the trouble is HTTP headers. What we discussed last week was that case folding per se is a problem, right? So if you have, if you need to have case folding in your system, that's causing trouble per se. But only in the case of from HTTP headers to another type of transport. Because HTTP is case insensitive. Every infrastructure is at liberty to do with the headers what it wants. So if you have an event that gets rounded through multiple hops and one of the hops in the middle is HTTP, what can happen to you is you start out in HTTP, the event gets rounded through HTTP, gets case folded, lower case, upper case however the intermediary wants because it's okay to do that in HTTP and then it pops out as something that's completely different on the other side. If we don't constrain it, then basically in case insensitivity of HTTP kind of bleeds into downstream transport. But isn't, aren't all the proposals trying to bleed this the same problem with the names? Maybe I just missed some of the states. No, what this, so we're looking at the lower, the underscore variation of this one which I'm not preferring, but I'm preferring the one that is all lower case. All lower case, lower case rule says if you are putting an event on the wire and no matter what wire format, you, everything has to be lower case. Yeah, I don't think, Scott, I don't think it leads it through as much as this actually avoids the problem. I view it as avoiding the problem, not bleeding it. Yeah, yeah, yeah. It's avoiding the problem of case molding because we're not allowing upper case characters. Right. And we're actually not allowing any characters where case folding would be critical. Does that help, Scott? I'll follow up on the PR. Okay. So, go ahead. Last week, Clemens, you and some other people raised some concerns about underscores also being a problem for some transports and you said you weren't doing some research in that, did you come up with anything? Yeah, I have not seen further cases. I'm just worried about it. The only thing, so I haven't done deep further research into it. All right, I was just interested if you had to spend some time. I was supposed to ask how will they be handled in H2B headers? Do you have concerns that they're not allowed?  I think they are allowed, but I just did some Google research and the hits suggested that some infrastructure might have trouble with it. Really? Okay, so I think I'm going to go over it. If you Google underscores in HTTP headers, you get a lot of forum hits where people ask when they have some troubles with, I don't know, engine X, Apache and you name it. Apparently some CGI legacy. Oh, it seems. Yet another reason. I have this hunch about all the separators. I've been trying to do these tricks with separators in URIs and headers for years and they always run into troubles. So I look forward to all. So I got to jump here just for a sec. So I apologize, the participant list window was half off my screen and I did not see some of you guys raising your hand so I truly apologize for that. So Tim, your hand is up, I apologize. Oh, I think Clemens probably covered it. I just wanted to point out that if you adopt this proposal then you're going to be 100% sure that the representation on the wire and the representation in the JSON blob you got in the representation anywhere is always going to be the same bit for bit. You're just reducing one place where somebody can get in the screw things up, that's all. Okay, thank you. And I'm going to mispronounce it, I apologize. Tapini? Tapini? Yeah, just to follow up. Surely underscores might not be the best idea everywhere but for example with HTTP when you have only a single separator character such as the underscore it's not very hard to just map that to the what to say idiomatic separator in the transport say the dash for HTTP. That's true, like we could do that. It sounds like it's an interrupt problem we need to happen though. I can't explain why I feel that way. I said, I make this, I give you that as an option effectively because people were concerned about not having word separators. If you look at 321 you scroll through it's really not that awful. And really in the SDKs you can go and make it in the SDKs you will make it idiomatic it will make it Pascal case where needed and Camel case where needed like if you have strongly type strongly type representations and so this is really just about the wire so I'm not too worried about it but it's something that I'm putting both options up and whatever wins wins. Okay, so I think we're gonna have to call time on this one because we're also on top of the hour. I don't get the sense from the group that people feel like they're ready to do something as serious as take a vote on the three different proposals that are out there. I think, again, this is people want a little more time to think a little bit about this and possibly continue the discussion next week. Is that fair? Or is that agreed? I heard Clemens say yes, but. Is there anybody? Okay, I'm gonna make it to someone speaking up I'm gonna jump in here and say let's do that. Let's, I was gonna try to force necessarily a vote today but force a vote next week and say here are the three choices we're gonna have a voting scheme to decide that but I'm gonna hold off and say let's see if we wanna continue the discussion next week next week's call we will decide on the voting mechanism to move forward and one of the choices could be to do nothing obviously because we can close all PRs and say we wanna find something else but we'll come up with the voting strategy at next week's call after assuming the discussion does end and then we'll figure out how to do a vote at that point. Does that sound fair to everybody? So we'll not be voting next week we'll be deciding the voting mechanism next week assuming we end the discussion next week. Yeah, sounds good. Yes. Okay. Sounds good. All right. Cool, thank you guys. And with that, I don't think we have time for anything else. However, before people start vanishing let's do the final roll call. Rachel, were you able to come off mute yet? Yeah, can you hear me? Yes, I can, thank you. And I heard Tim, I heard Austin even though I just spelled his name I'll get that later. David Lyle. David, are you still there? Give me that. Yeah. Oh, is that David? Okay, I know Dan was there paying me offline. Doug, are you there? You said Doug, yeah, what was Doug in there? I'm here. There you go. Thank you. Yep, Renato. Renato, are you there? What about Stevo? I'm here. Excellent, Eric. Hello. Hello, thank you. Klaus? Yeah, I'm here. Excellent. Christine? I'm here. Excellent, thank you. Nathan? Yes, I'm here. Erica? I'm here. Excellent, thank you. Hello. Here. Excellent. Is there anybody I missed or what about Renato? Are you there? Or David Lyle? Oh, Renato. Okay, thank you. David, are you back? No, okay, is there anybody I missed? Excellent, I believe we're done then. Thank you guys very much. I'll talk again next week. Thanks, guys. Thank you. Thank you. Thanks, bye. Bye-bye. All right, guys, thank you. Bye. Doug? Hi, it's Christoph. Hi, Clemens. Are you still there? Okay. Doug, Doug, Doug, Doug, Doug. Scott, Scott, Scott, Scott, Scott. Actually, the reason I got back in is, hey, Clemens, we were having a phone call about the prep session. That's true. Although I don't see Kathy. Actually, you know what, to be honest, I was kind of hoping we'd get on here and say no one actually did anything other than me set up the templates. That is the truth. And I'll tell you what, we canceled the call. Yeah, okay, so we can happily do so because my wife just called me to dinner and I said, well, let's set up this call. But if that's what it is, then that's what it is. Well, it's okay. Kathy, welcome. I guess I actually, Scott, you're ticking on this too. So I did create the PowerPoint slide deck. I decided to put both slides into one long deck. That way we can easily just go from one to the other to make sure it all flows nicely. I didn't put anything in there other than basically the outline that we worked on from the Google doc itself. Is there anything you guys want to discuss on this call or is it just a matter of us finding time to fill in our various sections? We need to find time to do some of the work, yes. And I haven't done the work. Right, myself included. I'm on vacation until Wednesday. Okay, Kathy, is there anything you'd like to talk about or is it just a matter of finding time? Yeah, so I actually haven't got time to look at your Google doc yet. Would you like to quickly show that, the outline? Well, to be honest, all I did is take the Google doc that we looked at last week. You know, the list that showed here's the topic for 10 minutes and then this topic and then that topic. I just put that into a PowerPoint version. That's all I did. Oh, so you didn't put like each slide title? No, okay, I see. Well, here, okay, you're gonna make me do it. Here we go. So here's the, last week, by the way. That's fine. I know you're busy. So this is the slide deck right here. Hopefully you guys can see this. Put the agenda. Obviously a lot of the texture's gonna get removed. Like all this stuff from here is gonna get removed and stuff like that. Yeah, okay. And then I create a slide for each of our sections with what was taken or what original Google doc. And then I figured you guys would just change the text as you see fit. Yeah. That's it. That's all I did. Okay, I see. So why don't we do this? Clem, as you said you're on vacation till Wednesday. If I don't see any updates to the PowerPoint deck by next Thursday, let's cancel next Thursday's call and talk next week, but let's really, really push to get something in there by a week from Thursday. Absolutely. The following week I'm all in Redmond, which means I have very long extended workdays because I have no home. And I'm definitely gonna get something done in that week. Okay. Okay, so Kathy, you okay with that? We may have a call next week if there are lots of edits to the doc, but if not, definitely try to get your edits in by a week from next Thursday. So two weeks from today. Yeah. Yeah. So for the SDK part doc, yeah, I think last time you say you will help with that, right? You will do that part. I didn't quite follow that part of work. Or you want to move that to your section? I could do that. Okay, here, hold on. Okay, yeah, I'll change the title because it's obviously not just demo anymore. Yeah, right. Yeah, I'll fix that. Yeah, I can definitely do that. That's not a deal. Okay, sure. All right. Okay. What does the deep dive look like? Actually, hold on a minute. Let me do that taste before I forget. I guess I already did it. Okay, deep dive. Here we go. There's that. There's the agenda. So you mentioned the deep dive. If you know, you'll say there are only two people. So how is it still see three of us? That's right. Yeah, there's the rules of the conference. People in the actual room, which is things. Yeah, so Kathy, they can only list two names on the agenda, I'm sorry, on the session title or in the agenda doc itself. The fact that there's, it's okay that there's three people presenting. They don't care about that. But they can only list two names in the agenda. And since you and Clemens are talking more than me, I thought it made sense for it to be your two names, not me. Yeah. Oh, okay, but you'll still be there talking. Okay, that's good. I'll still be there. I just thought you guys deserved more credit than me since you're talking more. That was it. Okay, I see. Thank you. Okay. Okay, thanks. I'll talk to you guys next week. Yeah. Okay. So Clemens, Kathy, anything else you guys want to talk about? No. Okay. Kathy, last chance. Yeah. Yeah, I'm fine. So after I put in slides, we can review it. And then, yeah, that time we'll probably have more to talk. Yeah. All right, cool. And that case, we'll talk, hopefully, I've had a minimum in two weeks. Yes. All right. I would like to put it by next week, by next Thursday. Yeah, I'm gonna try to as well, but if we, you know, things happen, so we'll see. Yeah, yeah. Bye. Bye. Okay, bye guys. Okay, thank you. Bye. Bye.


Hi, my name is Alugu and this talk is going to be about hacking photoshop. So we built a product previously called markup wand where we learnt a lot of tech around hacking photoshop and this talk is mostly going to be about our learnings and how you could benefit from it. Usually your design or your html css when you start, it starts off when your designer gives you a photoshop design or probably a png file. Most of the time it depends upon who is more lazy. If your designer is more lazy he will just give you a photoshop file and you have to measure every part of it. For example it will be like your font size, what is the font and colors, distances between each block and the images and stuff like that. So all these things are actually repetitive. If you are doing it again and again it becomes really tedious. So what you could actually do is, if you are doing this again and again you can try to take out all this information from photoshop and just inject it into your code. So how can you actually hack photoshop, there are two ways to do it, one is to actually reverse engineered libraries in which you have language specific libraries psd.rb which is for ruby and psd.js is nodejs based library which is what we used extensively and libpsd. All these libraries actually read through the photoshop file format and then they give you information. Most of it is just read only, you will just get a hash of the entire layers or the layer set and stuff like that. So the other way is to actually script over photoshop. So scripting over photoshop is something like your excel macros where you could just run functions over your photoshop file. Now the thing with this is it is actually slow because it is GPU intensive, you have to open up photoshop, click stuff, the similar stuff that you have seen is probably your photographer taking one small photograph and making eight photographs for your passport size photo and probably applying lot of filters for lot of images. So using all these libraries you could get a lot of information from photoshop which generally tends to be a black box. So photoshop file format usually gives you a lot of information. It is about layers, layer bounds, filters and so much of it. But what is relevant to us is probably very few things which is the fonts, the colors, the images and dimensions. Now let me actually do a quick demo of how you can get information from this. So the first example probably I will show is to open up fonts. So here this code, so most of the code that I am showing is pretty much very very simple. It is just reading through the photoshop file and getting out some very minimal information. So what I am doing here, the code part of the code is here. I am just looking through all the layers and I am seeing if the layer is a text layer and if it is a text layer I just print the font family name, okay font family name alright. So let me just run through it. So I have some sample photoshop files. So I have a photoshop file with three fonts. Let me just run through this. So it just reads the photoshop file and then parses all the layers and just gives me all the three font names. Now the similar things that you can do with this is actually reading your colors. So I have a similar colors.tsd which has some four different colors and the code is sort of very similar instead of actually printing out all the font names. I am just checking if it is a solid file and if it is a solid file what I am doing is I am just parsing color which just converts your 255255 to hash hex. So I will just run through this as well. So it just prints all the hex layers. So these are just very meta information that you could just read out from photoshop format but if you are actually trying to use the same reverse engineer libraries the two code that I showed previously were using reverse engineer library it was used it was using psd.js it is a Node.js library. Now if you are using this for extracting out images it may not work right. The reason is most of the photoshop files tend to have clipping masks where you have to apply one layer over the other. Now when you apply clipping masks all these reverse engineer libraries would give each layer each clipping layer as a specific layer so it won't merge both. What you want to do is to merge both and then show it as a single image for your usage. Now that is possible only using your photoshop extenscript libraries which is scripting over photoshop the macro. So the language that the extenscript uses is similar to javascript it is in the same form your ECMAScript. So what you could do is you could just access the DOM element like you access in your browser you could just access the entire document and then loop through. So what I am doing here is just I am going through all the layers and just making everything visible false and then I am going through each layer making it visible true and then saving it as a png file and then setting it as false again. Now how do I run this to run this you have something called extenscript toolkit it is basically a scripting environment over photoshop. So I have compiled this coffee script into a javascript file and that is what this is. So let me just open up so this photoshop file has some images.  So you have all the images extracted separately. So these are some very simple examples that you could do but the more things that you could do around with this is probably finding differences between two photoshop files which is what we usually encounter very often because whenever we are iterating on new pages what designers tend to do is to take out their older version of design and then modify things and give it to us. So it is very hard for engineers to find out what exactly has been changed. So what we could do is to just so assuming I have two designs so this is a design which has a last image and then I have changed that last image by something else. So what I could do is to run I have a script which actually compares to two files and then gives out what are the just layer differences. I am just going very high level just the layer differences. So my first file and then my second file. So it just finds out what layers were deleted and what layers were added. So this is very high level you can actually go as deep as possible try to find out what text has changed and what font has changed. You can go into any level and get an entire diff and what you could do is you could take snapshot of the diff that was made you could actually say that this image was added this font was added. Okay so so all these all these simple examples might not actually be a very huge value add it's very very marginal. So the best use case is to replace yourself entirely as an engineer and and and actually let your designer probably to push to production or probably in Rahul Gandhi's words empower your designer. So the best the best things that you could do is tell your designers to actually give assets which would work live in production. So this is an example while we were working at Zinger we had a lot of fishes. So all these fishes have a lot of motions and they move up and down and they have their own way of bagging tail and stuff but every week they push new fishes right. So what the designers do is they just create new fishes they add markers saying you can the fish starting point is here the tail wag is here and they just upload it to our server right. So what they do is after uploading it it automatically picks up and then it just pushes it to production and the fishes go live that's it we never had to do anything in between you can do a lot of font stuff but it won't be very good if you're doing it again and again but the best thing is you replace yourself with all the scripts the other flow other thing that you could think about is actually adding layers in which you can say markers and all these markers can be clickable you can export them as PNGs and you can say these layers are clickable and you can have a clickable mockup for your designer. The other thing which I just showed is versioning of PSDs a lot of companies already do this there is a company called layer vault which actually helps you to have version PSD files you can version your own PSD files in your own workflow the next thing is really useful the all the fonts that you generated all the colors that you generated you could put them in separate sass files and you could use them in your main file this is similar to your WordPress themes you could just have a single file for your theme and you could modify your fonts and you could modify your color and inject them directly right. So all these things actually increase your productivity as an engineer and also helps you to keep pushing as it's very often okay so all this said why Photoshop of all things why Photoshop why do you want to hack Photoshop the thing is Photoshop actually is not good for web it's a really good software but it's not good for web it doesn't have fonts as when you see a font in Photoshop it's not the same thing and in web and whatever you see in Photoshop is very hard to replicate it takes an artist to actually get a pixel perfect HTML right and the whole structure the DOM structure in a browser and the layer structure in Photoshop they don't go so well and and as an engineer probably paintbrush is much more easier for me compared to Photoshop so the reason why I think Photoshop is still live is because there is no convincing alternative for designers to be more productive and still be able to build stuff that would fit in web yeah that's it I'd be happy to take any questions if I still have time yeah yeah yeah so the clickable prototypes is just to use case that I think what you could do so what you could do is make your designer tell that these are the clickable regions right and then you could use those XY coordinates and with height and you could export that entire PSD as a PNG file and make it as a clickable layer in your HTML and that could point to another page hey I have a question so yeah thanks for the information the whole thing you said is about extracting info from PSD correct extracting information from PSD yes yes can we update a PSD through the script like say I want to add a new layer yeah yeah you can so the reverse in your library is necessarily don't let you do that but all these extents script scripting over Photoshop you can do that the way we were doing is all these clipping layers we were trying to copy all these layers into a new Photoshop file and then merge it and then save it as a new file so you can do a lot of stuff you can do you can do add filters you can do a lot of repetitive tasks using extents script okay can we read can you hear me sorry can you hear me yeah yeah I can yeah can we just as layers can we read slices can we read slices yeah sorry I'm not sure I haven't actually tried slices but with extents script definitely should be possible one one thing with extents script is anything that you're doing on a Photoshop document it keeps you can collect all the information in so you have this thing called script listener log whatever happens in your Photoshop file you're clicking up selecting of a layer or deleting a layer everything gets recorded as a function so you could just copy this snippet whatever action you're doing and you could paste it in your extents script and repeat it again and again so if you're doing clipping if you're doing slicing then you could just see what function has been generated and then use it in your extents script okay thanks yeah yeah hi sorry yeah yeah I can take the rest on chat


Here's how to make a monster and train your creativity in five easy steps. The exercise I'm about to show you is just as good if you're a professional artist or if you've never touched a brush before. And don't worry, even if you don't own a brush and ink, I'll show you what to do by the end of this video. My name is Kim Dias Holm and you may also know me as Den Ungerhard Holm and I've drawn a lot of monsters. Over on my TikTok the hashtag DailyInkMonsters has been seen more than 80 million times and some of my videos have been watched by over 80 million people. Some of these monsters are silly, some are serious, others are from folklore and mythology and a lot of them are my own invention. Being diagnosed by Polar, some of these monsters are drawn on days where I'm full of energy and others on days where I'd rather not draw anything at all. One of the most common comments I get is that seeing me create art makes people want to create art themselves. But then when you sit down with a blank sheet of paper it's harder than you think. So in this video I'm going to show you the step by step solution how I solve this problem myself when I don't know what to draw and I'm going to show you in the simplest way possible so easy even a toddler could do it. And if you want you can even follow along, press pause on each of the steps and draw your monster as we go. Step one, place a drop of ink on a paper and blow on it.  But either way it's ok, you'll get a feel for it eventually. Step two, place some eyes. You don't have to stare at the ink blot and wait for the perfect monster, you can force the process by placing two eyes. Anywhere, it doesn't matter, just place the eyes and you will start to see the monster. Step three, give it teeth. You've got to eat. Again don't worry exactly where, just try to put them in relation to the eyes and wherever you place them will reveal the monster to you in a new way. There are limitless options, none of them are wrong, they're all just different. Step four, give it legs. It's a monster, it doesn't need a body or a tail, it just needs legs. And there you go, you have a monster. Step five, give it a name. Every monster needs a name, if it doesn't make sense you can just pretend it's named in a dead language. So play around with words and sounds, like clur, like clum, cluck, enk, enk- enklerk? Enklerk! I'll call it enklerk! It's an enklerk. That's a monster. got legs and it knows how to use them. Anyhow, if you followed along, what did you name your monster? Of course, there are countless ways to adapt this exercise to your level of skill, to your level of exercise and to challenge yourself in new ways. And even after making thousands of these, they still surprise me. Now finally, I promise to show what to do if you haven't got the right tools. But first, if you like the video, remember to subscribe and press the bell icon. Even though I've been on YouTube for a while, I'm very new to creating videos like this and if you showed a sign that I'm on the right path, that would mean the world to me. And if you'd rather have me make other types of videos, comment and share your thoughts. I'm still figuring my way and trying things out. Now back to what you have to do if you don't have the right tools. For this demonstration, I'm going to use a Legend of Zelda Ballpoint pen. It's not a particularly good pen. It just looks cool. In fact, it's so top heavy that I found it a bit of a pain. But it doesn't really matter. Step one is just to draw a random doodle or scribble. Then all the other steps are the same. Step two, add eyes. Step three, add teeth. Step four, add legs. Bider legs are cool. Step five, give it a name. This one is kind of like the last one, but spiderish. So let's call it Spiddlerk. Spiddlerk? And you can do variations of this exercise with markers, with crayons, with watercolour, with pencils, with chalk on a sidewalk. If you ever find yourself saying, I'd love to do this, but I don't have the right tools. Then there's probably some other reason you're postponing it. Tools don't matter. There's always a way to practice something, if you really want to. And then when you finally get the tools, you'll be better prepared. So that's it. Your step-by-step guide to making a monster. And if you keep practicing, the exercise will grow with you. Finally, remember that all my art is available for free use. This means there are over a thousand monsters in high resolution that you can download, copy, change, you can write stories about them, you can tattoo them on your skin, and you can even sell them as long as you put my name on them. If you think that's cool and want to say thanks, then supporting on Patreon with only one dollar a month helps more than you'll ever know. And if you want a slightly more in-depth look at the process, then check out the video where I explain my thoughts bit by bit while I'm drawing an ink monster and solving a modern mystery.


Hello everyone, Drew with GeoArm and I am back to talk to you about the Geo Alarm System and how to program in the Geo-GBD Wireless Encrypted Glass Break Detector. It's not that difficult, the system is pretty intuitive and intelligent so it pretty much walks you through exactly what you need to do. So we're going to go ahead and hit this button up in the top left hand corner. You're going to enter your master code, which factory should be 1234. Once that's done, you're going to go into devices. Then you're going to hit the plus sign on the right hand side of the screen. Choose the device that you want to add, as she just said, and we're going to choose glass break. Okay, so you're going to press this little button that's located right over here. It's kind of difficult to see it, but it's a little circle right next to the light that's in the middle. So we press that down, it should trigger. Now it's enrolled in there, you choose the location of this device. I'm going to say it's the family room glass break. Not going to be installed anywhere, because I'm just showing you how to program it. But if it was, and I completed it, I would hit done down here. Okay, so it tells you now that there's a glass break enrolled in here. We can click that and then click there, custom name it, you can do so. It's an instantly triggered device, meaning as soon as it picks up glass break it's going to go. There's an about section, it will give you the signal strength as well, and then obviously a delete. I'm going to go ahead and remove it because I need it for any of the following videos, but if you had additional sensors to enroll you could keep doing so, but don't forget to visit www.gorm.com, that's www.g-e-o-a-r-m.com for new parts, low cost month to month monitoring, product manuals and support, alarm certificates and update forms, and many others. GeoArm, the worldwide leader in DIY security.


This week is National Volunteer Week and on behalf of Natalie McDonald, our CEO and myself as your Chief Officer, I just wanted to send this message of thanks. Thanks to all our men and women and the volunteers across the CFA for everything that they do in service not only to this great organisation but to our communities. With over 50,000 Victorians forming part of this great organisation, doesn't matter with your urban or your rural or what role they play in the CFA, it's bringing a great diversity, a diversity of thought and diversity of skills into the CFA in practice of what we do for our community. I've just recently finished my Chief Tour of the State where I visited some 21 districts across our five regions listening to what matters most to our members. Natalie and I are working hard to increase the support available to our volunteers. As Chief Officer, I'm constantly proud of the work our volunteer brigades do day in and day out. This week is to highlight the value of our volunteers in our organisation and the great contributions they make to our communities.


Give the people what they want. Give the people what they want. Give the people what they want. Your weekly movement news round up. It's Episode 143 from Give the People What They Want brought to you by People's Dispatch. That's Prashant and Zoe, peoplesdispatch.org your home for news about the world, about movements in the world. I'm Vijay from Globe Trotter. To be with you. We're going to start with a rather unpleasant story I must say. We first got, of course, news that a storm was brewing inside the Mediterranean Cyclone Daniel initially. Cyclone Daniel wreaking havoc in parts of Europe, north of the Mediterranean, Bulgaria, Greece and so on. And then it whipped around becoming Storm Daniel and struck the eastern part of Libya. Eastern part of Libya is under the control of a government which is not recognized by the United Nations. But it's headed largely by a coalition where the military strongman is Mr. Khalifa Haftar who of course used to live 10 minutes away from the Central Intelligence Agency headquarters in Washington before NATO, the United States and France destroyed that country in 2011. The storm Daniel broke two dams, Wadi Derna and Wadi Mansur flooding the city very rapidly. In fact, aviation minister from that eastern Libyan government said that it looked like a tsunami and that the city had in fact disappeared. Very rapidly it became clear that the loss of life was going to be catastrophic. In fact, it is now said that this cyclone, Cyclone Daniel is the most damaging cyclone since the 2008 cyclone Nargis which some people might remember also very, very great loss of life from Nargis. But Cyclone Daniel incomparable. About 12,000 people dead already in Derna and surrounding parts 12,000 people killed by flooding, flash flooding. This is a very, very high number for flooding deaths. You have numbers like this sometimes in earthquakes. You have numbers like this in war. But you don't have numbers like this from flash flooding. It meant that flood waters came so rapidly people could not seek higher ground. They could not escape from the city of Derna. Mustafa Al-Trabulsi, a poet in the city of Derna about three days before Wadi Mansur and Wadi Derna overflowed, had gone to Derna's house of culture where he gave a presentation saying that there was a danger because the dams had been neglected. Mustafa Al-Trabulsi left that meeting, went home wrote a poem about the flood about the possibility of a flood when the flood waters came three days later he perished along with the other 12,000 people of Derna a city where he was in fact one of the most important poets. This is a devastating circumstance but then again it is going to provoke its own debates and discussions. The world meteorological organizations had gave a press conference where he said that look if they had been functioning meteorological systems much of this could have been prevented. Others have said and there's now a call for an investigation inside Libya that the dams had been fundamentally neglected. Some say since the early 2000s without a doubt NATO's war against Libya in 2011 has destroyed the state in that country and in the course of the almost dozen years since that war there's been lack of regard for the destruction of the state of Libya. Absolute destruction of that state. There is very little accountability for that and in fact when the media reports that this is a tragedy a natural disaster it must be remembered that in fact the experts are saying that this disaster at least the scale of the disaster could have been prevented and it wasn't prevented not because of incompetence of this or that official although I'm sure there's sufficient accusations of incompetence once the investigation gets going but there's a broader issue here the state was destroyed in 2011 by a reckless and callous war persecuted by the North Atlantic treaty organization NATO United States and France in the lead that state has never been rebuilt the lack of that state is what impacted the people of Derna in a sense it's well worth adding the 12,000 dead to the war victims of the 2011 war and in fact the 12,000 is not even the final number because since the city and surrounding areas continue to be underwater the danger of disease is now galloping across the land no disaster comes with only one horseman of the apocalypse they all ride in and they ride at full gallop the situation in Derna is dire and continues to be dire we'll of course be following this closely as closely perhaps as others but with a sharper understanding that this is not merely nature acting against people but also people trying to survive from the detritus of extreme arrogant recklessness arrogant recklessness that should be perhaps a praise of part of our show today the G20 meeting the group of 20 took place in Delhi seems to me there was a lot of arrogant recklessness there when the government of India decided to put green colored plastic to cover over the poor Prashant a kind of arrogant recklessness I believe what happened with the G20 right I mean for those who follow India's politics of course nothing new in the way the event was organized as people have pointed out it seemed like it was an event organized by one person for one person and of one person which is the Prime Minister it was really an event meant to sort of from a domestic audience at least meant to portray him as a world leader as a global statesman as someone guiding the world etc etc this has pretty much become in a lot of how India deals with issues of international relations at this point but nonetheless a very interesting summit for many other reasons as well while of course this issue is something that has to be debated and maybe struggled in India but in a global level G20 summit was actually a pretty interesting one because the fact that one to be fair while nobody expected a joint statement out of it there was a joint statement in fact even last week I was thinking about it I was confident that they wouldn't be one but there was a joint statement that came out of it and that joint statement of course took a much let's say less harsher line on the issue of Ukraine than what happened in Bali last time which was a real point of division and of course the Indian government using it to sort of portray itself in a very heroic light but I think the larger political issue there which has been kind of widely acknowledged is the fact that the west was sort of to some extent forced to cave in on this issue because of recent geopolitical developments and now the real question is what really are these geopolitical developments that forced say the United States and its allies to maybe take a slightly softer line on this issue and it does seem that one of the key drivers at this point was the recent BRICS meeting the expansion of BRICS as a block which basically meant that there has been a lot of questioning of the role of the G7 the role of the G20 many questions regarding whether a forum like the G20 is even relevant anymore for the United States and its allies G20 has a particular significance it remains one of the few fora when it can sort of engage with countries in the global south and as many parts of the global south are seeing a very strong anti-colonial push we are seeing this in Africa we are seeing this in Latin America Asia it does look like there is a bit the countries of the global north the US and its allies are in a bit of a defensive position right now and that is believed to have sort of led to this softening of a position which finally led to the joint statement now of course there were some announcements regarding some infrastructure projects as well which at this point look a bit I wouldn't say dubious but nobody has really been able to figure out how these projects are going to be implemented and whether there is actually any need for these projects other than for a rhetorical push back against China's BRI so all in all quite a strange G20 meeting in the sense that what many experts are pointing out is that maybe this meeting to some extent saved the G20 for a while as opposed to it collapsing under the weight of its own contradictions but whether this is going to save the G20 for a much longer time is a big question the answer is probably no because I think history itself is the present whatever you call it is moving in a completely different direction and the G20 is probably a remnant of an older era countries of the global south they have their own interests they have their own agenda they are trying all kinds of forums regional ones, global ones it does not look like the G20 is going to be one of those well we will have to see for now I suppose in a way Prashant as we said last week the G20 is a little bit like the place where the BRICS countries and the G7 have a kind of neutral place to chit chat maybe it continues just for that meanwhile of course the international class struggle doesn't go to sleep these geopolitical realities take place but the working class trotting along fighting to establish itself under the sun in the United States in this in this setting fascinating Zoe the class struggle at the heart of the imperialist Behemoth what's happening with the united auto workers very very exciting development as of midnight Friday so just 11 hours ago workers at the big three auto mobile companies Solantis Ford and GM are officially on strike this is a historic strike never in the history of the auto industry in the US have workers from all these three companies been on strike at the same time the UAW has been in contract negotiations with these companies for several months they've made radical demands important demands radical only because at this moment organized labor in the US besides this recent teamsters contract had not dared to raise these things but they're not radical in the sense that they actually deeply respond to the needs of the working class at this moment that is suffering in a contracted economic crisis and as of this morning as I said workers at different plants of these three companies are on strike they're implementing a stand up strike so currently there are 144,000 workers that are part of this contract negotiation all of them are not on strike currently essentially the strategy of the UAW is to go several plants at a time start with some and then add more it's a pretty smart tactic because they're able to keep it fresh these are surprises both for the workers and for the owners of these companies able to create buzz in the news so very very very interesting again it's a historic strike they're calling for so many important demands 32 hour work week an end to this horrible tier system that exists in these companies this means that newer workers don't get the same benefits as full-time workers an impossible road to become to go from a contract worker to a full-time worker this is an absolute denial of people's rights sadly it has become the industry standard not only in the US of course but in countries across the world we know that the informal sector in many countries is the largest sector where people are employed in this means maybe they're self-employed maybe they're subcontractors and they're not able to receive the rights that they should be guaranteed health care this means retirement this means sick time so many essential elements that maybe 50 years ago seemed like in the United States that they were a given and now these are so hard to come by we're told this is normal that now people are entrepreneurs but the fact is is that this is just a blatant denial of people's rights and so very very militant organizing by the UAW they have an extremely exciting militant president Sean Fain he's part of this generation of radical union leadership that has rejected the conciliatory path that had been taken by labor leadership in the past decade where they conceded to the demands of the industry where they gave away demands that had been historic for example the cost of living adjustment had been a crucial victory of workers in the past and in past contract negotiations the UAW leadership had sacrificed this and this means that wages are not being adjusted to inflation so prices are rising and your wages are staying the same or in actual terms they're decreasing and so this is one of the most central demands of the UAW in these contract negotiations extremely you know Sean Fain he did a video where he received he held up the contract proposal the counter proposal of these companies and he threw it in the trash this is a union that's not going to concede to these weak demands of the companies they're not only fighting for these 144,000 auto workers they're fighting for the entire working class fighting back against corporate greed and it's definitely an exciting time we're going to see more and more strikes popping off at these assembly plants so definitely a class struggle heating up this is definitely a trend across the country across sectors and across industries it's a very important strike of course we look for people's movements to track both Zoe and Prashant at People's Dispatch editing the website around the struggles of people Vijay from Globe Trotter you're with give the people what they want Episode 143 an important episode because we're 7 episodes away from the 150th episode it will be a special treat I'm sure I know it's a treat for you to wait for us every week but 150 boy that's a surprise Prashant 150 episodes for us but 30 years of gloom for the Palestinian freedom project 30 years of the Oslo Accord I remember well Prashant when the Accord was passed Edward Said wrote and said this is a surrender this is not an Accord what's the record now 30 years later and how are the Palestinians viewing the Oslo Accords right which a lot of people going back to Edward Said say I think he described it as a worst sales for the Palestinians if I'm not mistaken and it's surprising how not surprising maybe but it's remarkable how accurate Prashant he was he was been proved because 30 years down the line I remember a bit of those times when you know there was a lot of talk about hope that there there was a Nobel Prize that came out of the Oslo Accords process and there was this idea that maybe finally after so many decades you know there would be some kind of peace but I think a lot of commentary now and over the past many years in fact I think it's focused on the fact that the Oslo Accords were set up to fail in the first place that they were basically a form of agreement whereby the Palestinians got very little in exchange for conceding a lot and over the years that gap has only increased because of the increase successive right wing governments in Israel because the extent to which Israeli society itself has been has has moved to the right because of the very nature of apartheid itself I would say in terms of how these policies have been implemented so it's no surprise and it's not the result of one or two bad actors that the Oslo Accords have failed so terribly it is actually part of that historical process itself starting from how those negotiations took place and today when you look at the situation it's it's pretty obvious the fact that while there was supposed to be two states the idea was a two state solution that there would be a Palestinian state this potential Palestinian state has been completely broken up today in by the Israelis through the through the walls, checkpoints the innumerable restrictions that are placed on the basic movement of Palestinians the possibility of a state has been pretty much completely destroyed at this point so talking about a two state solution seems seems almost archaic or quaint at this point considering what is called how Israel has created facts on the ground as they say and of course we've also seen a massive increase in terms of attacks we talked successive attacks for instance on Gaza which has become the world's largest open air prison we are seeing to be talking about a massive increase in the number of illegal settlements and the number of illegal settlers the number right now is around 700,000 and I think we are also talking about the Palestinian Authority itself which over time has completely lost its credibility among large sections of the population to the extent that they are often seen there have been massive protests against the Palestinian Authority in the past couple of years as well so keeping all this in mind I mean talking about the Oslo Accords that is 30 years I think it's many commentators have pointed out that it is pretty inevitable that it would fail what is interesting though is the fact that there are new waves of resistance which are breaking out now which have a completely different agenda which are not sticking to the idea of the Oslo Accords the promises of the Oslo Accords or believing for that matter this Israeli government or current or future Israeli governments are going to deliver anything they have promised and I think even the Israelis have given up the pretence of believing in any of these records or even using them as slogans talks haven't taken place for 10 years so I think it's a moment to sort of reflect on a very different Palestine from what was 30 years ago and you know and a very different kind of resistance what was 30 years ago and I think there has also been a huge amount of global solidarity we have seen campaigns like the BDS movement growing but also facing resistance which is probably also a sign of success so I think it's a moment to sort of look back but also recognize that this is a very different situation this is a very different Palestine we are witnessing right now and the Israeli agenda has been clearly exposed so the whole pretence of peace and the kind of promises they were made those have actually been completely exposed that's 30 years ago that the Oslo Accords was signed a gloom for the Palestinians over these three decades 24 years ago Zoe the United States and the government of Colombia started Plan Colombia which was rooted in the war on drugs the really depressing policy from the United States in collaboration with the Colombian government to criminalize small farmers and so on looks like a different kind of plan being hatched between the governments of Colombia and Mexico what's the new drug policy by these countries well just ahead of Andres Manuel Lopez Obrador and Gustavo Perros trip to Chile where they participated in the 50th anniversary commemorations of the coup against Alvaro Allende they were in Colombia for the Latin American Caribbean forum on a new drug policy and they declared in the closing moments of this conference that the current anti-drugs policy that has been promoted by the United States and really imposed on the region has failed and they say over a million people have died in the region have been killed by this inhumane policy over 10 million people have been incarcerated in the United States mostly black and Latino people and this is just a failure of humanity and of course after they say it's been five decades of this anti of the war on drugs in different iterations and others yet today drugs are continuing to kill people the U.S. is having as an epidemic of this fentanyl crisis more and more violence in countries like Ecuador related to drug trafficking so it's clear that this is a failed policy this is not a policy that's had results the result of it as you said is to criminalize farmers is to criminalize people that the government wants to criminalize and just associate them with drug trafficking and essentially these two countries came together with representatives from across the region from across the Caribbean the most impacted because of this crisis not the countries with the highest rates of consumption but yes the countries that have the largest impact of drug trafficking roots etc to discuss what would the humane policy look like what would a policy look like that actually puts people first that puts social transformation at the center this is of course very challenging because how can you transform a response to a situation that is so deeply rooted in the capitalist crisis how can you transform the situation which has so many different illicit economies that have been implicated into it that have been again present for decades it's a very very challenging question I think it's a huge question not only facing these governments it's a question that the left has to grapple with how to address high levels of consumption how to address the fact that when people don't have jobs when people are desperate this is the sector that is most profitable these are questions that are faced that people are facing across the region from the united states to Argentina this is something that has to be grappled with and so this forum was the first moment in what's going to be a series of forums that are civil society and government forums to discuss a new anti-drug policy understanding that there are way too many victims from both the strategy that's been used to combat the drug trade the militarization of the regions forced eradication targeting small farmers but that also it's a pressing issue that it can no longer be that the poor neighborhoods are sacrificed that they're the health of the people is sacrificed because this is the only solution for people so a really important development and I think once again we're seeing that the leadership the moral leadership of leaders like Amlo, like Gustavo Petro who are standing up to united states and saying your policy doesn't work and we in the region are going to discuss and find a better solution I think it's again another very important advance and that hopefully there will continue to be outcomes from these dialogues that's Gustavo Petro of Colombia and Andres Manuel Lopez Obrador of Mexico both of whom will likely be in Havana Cuba for the group of 77 which starts over this weekend 134 countries will be in Cuba that's about 80% of the world's population this is the G77 plus China China is not formally a member of the G77 but for decades now has effectively voted with the block the UN block and therefore it's known as the G77 plus C two other heads of state therefore will be in Havana most likely it's not sure whether Xi Jinping of China will come himself but also Nicolas Maduro will be there of Venezuela interestingly Mr Maduro spent a week in China very interesting week for Mr Maduro where he went to Shenzhen also got himself a new Huawei phone he also told a reporter who is asking him a question in English to actually speak in Mandarin because there was no interpreter from English to Spanish in the room I thought that was a puzzling little scene there I'm never one for an anti English position largely because English is a language spoken by tens of millions of people in Africa and Asia not just the language of Estados Unidos but let's set that aside during his time in China very interesting development took place because this is the 50th anniversary of the relations between Venezuela and China and at this 50th anniversary gathering between Maduro and Xi Jinping they elevated the relationship between the two countries to the all weather strategic partnership this is a significant level this is the level for instance of the relationship between Pakistan and China Pakistan one of the closest allies of China so it should not be underestimated the role now between Venezuela and China this all weather strategic partnership means that China and Venezuela will increase technological and industrial collaboration it should be said that Venezuela is one of the countries that already collaborates in the international lunar mission of the Chinese space agency Venezuela already is in that door as it were but this is going to increase in fact I feel some of the collaboration around development in Venezuela Xi Jinping at the meeting talked about some of the successes that the Chinese have had and how their successes don't have to be followed by carbon copy boy that's an artistic phrase carbon copy most people won't get what I'm talking about refers to typewriters in case you're interested I'm sorry about that showing my age that the Chinese model doesn't have to be copy and pasted you know in Venezuela but the Venezuelans could learn a few things and perhaps teach the Chinese other things very important development what this indicates is that it's likely next year Venezuela will be a member of the US I think there's great interest in countries like China to bring Venezuela in Venezuela has one of the world's largest known reserves of oil if Venezuela joins the United Arab Emirates Saudi Arabia Russia Iran Egypt inside bricks basically that's all the countries with energy for the future at least carbon energy for the future a very important development this elevation of the relation between China and Venezuela in one respect 50th anniversary of the relations between the two countries it's a 200th anniversary of the Monroe Doctrine seems to me this elevated relationship between Venezuela and China is China snubbing its nose at the US Monroe Doctrine of 1823 you've been listening to give the people what they want brought to you from people's dispatch that Zoe and Prashan I'm Vijay from Globe Trotter show 143 over and out see you next week