All right, we passed the hour. Why don't we go and get started? Oh, one last person's I just noticed them Simon. Are you there? Simon? Oh, no microphone yet. Give me a sec. There we go. Simon, are you there? Yes, I am. Excellent. Thank you. All right, let's go and get started. Let's see, moving on, skipping over the AI. It's not sure there's anything too exciting there to touch on. Community time. So, this reminder, a little bit of time here for people who don't normally join the phone call or basically community members who want to bring up topics or questions or concerns. Is there anybody from the community who has an issue that they would like to bring up for discussion? All right, I'm not hearing. Can I ask something about the MQTT broker or how to work with MQTT with Bud events? So have the IoT device and I was just wondering if anybody was on the call knew how we intended to implement that or make use of it with an IoT transport. Is anybody doing anything with the MQTT? I know Clemens might be, but he's not on the call obviously. Anybody have any comments on that one? Kathy, do you, because you're so involved in IoT stuff? Sorry. Is it, are you talking to me, Rachel? Yeah, I thought that you might be familiar with, like you might be able to take this since you're doing a lot of IoT things. Oh, okay. No, not yet. Yeah, we have not started that. Okay. Yeah, so I'm willing to have a play with it. I've got an IoT device. I could start getting some sensor readings and seeing how it works with cloud events. I'm just not sure how the person that wrote the spec intended it to be you. So maybe I'll ask them in Slack next time. Yeah, or you can ask the question as an issue too, if you have a question there. Yeah, it seems like it shouldn't be challenging. MQTT carries a relatively arbitrary bag of bits inside. So yeah, I don't think there's nothing there that should get in your way. I wouldn't think it's just that they expected it to be implemented. Is that is should the device construct the message in the specific Jason payload or some other kind of payload on the device and then how do you handle that at the different end? So is your question about how it's represented within MQT or like how one would like construct the network topology?  What was the vision? Was it to encode JSON over MQTT on the IoT device and then have that broke it into eventually into an API gateway? The whole story from potential sensor reading to actually executing function. Yeah, so there is a MQTT transport binding is the name of the markdown. So that has how it would actually be encoded. I'm assuming you're going to have to have some gateway somewhere is to make sure that you bridge access from small devices to a trusted back end.  So there's like a lot of people who in the IoT space who build bridges of various kind to take what the field produces and turn it into something tractable and you know cloud events would be a tractable thing to turn it into. That sounds like a good idea as well. So maybe those go to an MQT broker and then from there it repackages the messages before sending them on. Yeah, but at that point it's just middleware, right? It's what? Middleware? Yeah. Good, Ellen. So I think to some extent cloud events is like a middleware format. So I could try to format the message in the MQT transport binding format on the device or I could try and send it to a broker and then send it on. From there we're expecting that potentially some service would run reading from the MQT TQ subscribing to that and then invoking I guess invoking the functions. Yes, so Kathy probably has more details on this but we have also when worrying with the IoT case said that the broker gateway could be the thing that actually does the first conversion of any raw data to a cloud event and that's considered canonical. That is an allowed thing, a lot of behavior. Okay, that's a good way of looking at it. That's useful for me. Yeah, I think that that's also the way you know you already there's like a gateway yeah you call it broker or bridge there's an outside gateway that you already does that and then send it to the cloud which has like an API gateway to decode that and then send it to the service platform. Do you guys think it might be interesting demo for a meetup or something like that to see data produced from like a node MCU a bunch of them going into cloud events triggering functions in the cloud? I would be hugely interested in that. Yeah, I would too. I think it would be great. Cool, all right let me have a think about that I mean feel free to reach out to me on Slack as well I think that could be quite an interesting demo. Did we make any progress with thinking about the RSS feed and how we were going to sort of do our next demo? So Austin I think you took an AI to start gathering thoughts around the next demo if I remember correctly, right? That is correct. I put an issue in GitHub which I confess I haven't looked at for a little while just throwing out ideas on what the next demo could be based on. There's a whole bunch of suggestions in there. I'm not sure if anyone's responded yet. And just so you know I did get a student to put up a Twitter like webpage so that we could technically continue with the Twitter like thing. If people want to leverage that going forward I'm showing it here on the screen. That looks interesting. Yeah, so is this reading RSS? No no it just takes post, HTTP post from whatever functions want to post to it similar to what Twitter did, right? Okay so you've made an API on the public internet and we can call this with our images? Yep basically yeah but whatever you know whatever text you want up top and then the image itself yeah. So it looks almost exactly like what we've had before. This looks interesting I'd like more details. Yeah I was going to talk about that when we got around to talking about the demos and stuff just not on the agenda for today but obviously we can talk about if we have time. Okay Alex back to your MQTT thing. Any other comments, questions on that? It sounds like you were going to do some investigation, right? Yeah I think I'll start trying to see how hard it is to build the message in the device or how much of the transport is defined or whether it's better to just let it go to a broker that then does a transformation into maybe HTTPJs or something like that. All right cool sounds good. All right next on the agenda is logo stuff and Austin I see you've been rather busy. Let me start back at the top here. You want to talk to where we are on this one? Sure you kind folks gave me two weeks to throw out a few other logo suggestions. I added a couple to this GitHub as well as another gentleman who came up with a kind of a clever idea around the balloon. So I also took that and did a few riffs on the balloon concept. So in there there's really only two concepts. There's our icon that we currently have with an updated font to look a little bit more modern. Those are near the top and then there's another concept with a balloon that was inspired by Kristoff and yeah so there's a few things in there. Each one is posted as a separate comment in that thread. Maybe if we like them we could just give them a thumbs up and figure out kind of what's what people are most excited about. Do you want to require people to only vote on one? You want people to vote on more than one? How would you like to work this little voting mechanism? It's totally up to you. Like the thing that occurs to me is that it might be too simplistic to just vote because there's a lot of overlap between these. So if we have like a three-second conversation about like I really like the spot and I really dislike the balloon or whatever it is then could we like get to one really quickly? Make it certainly try. Having a conversation about design aesthetics. I know. This will go well. This isn't going to rattle at all I'm sure. But I think we should I think we should at least take a few minutes to discuss it see if there's anything that's interesting here or you know there could be some good points that I totally overlooked. So maybe yeah if we want to time box it and just chat about it real quick. I'm totally open to that. Okay. I would say the new font looks great. Which one has a new font? This one? They all do. They're all using the same font. Okay. Except for this one which is the current one. All right okay. My only knit is I slightly prefer things that don't separate cloud and events when we went through the work to say that they are it's one word. That is an excellent point I forgot about that. So that's if we follow that pattern kick us off that first one. If you look at the original cloud logo you kind of squint and you see three balloons clustered. Wait you talking about this one? Yeah. Are you saying that is a good or a bad thing Scott? I mean it's interesting to mock that out and see what it looks like. The sea does get quite melded into the whole thing. The E is really obvious. I can see that very clearly but looking at it with new eyes the sea is a little it blends in. So the same thing is true here I believe. Do you have an idea on how to fix that? It would be just like moving to the left a little so you could make the sea go sharper at the end or? Yeah I'm wondering about something like that because I do really like the design or perhaps even adding a little bit more of a gap breaking the E from the rest of the cloud like the sea is broken or tinting the sea a little bit so you can see it's a letter. That is a very smart design very flowing. I do think my preference is more towards the cloud than the balloon. So keeping this general format? Yeah. Yeah I gotta be honest with you I don't I actually don't care. I think the current one is just fine. It's nice we just have we've got an opportunity to make a tweak maybe make the C.E. if the cloud looks slightly more defined. Yes I played with that a bit actually I tried to make it a different color make the E the same color and then use a gradient to kind of fade it into the rest of the cloud icon. I couldn't really nail it so I dropped that but I can certainly do another take where I just add in some more spacing around the sea. Yeah I think it would be interesting to see I mean I'm certainly not a graphic designer myself so I appreciate your skills on that. So I think what I've heard so far is people don't want to separate the words possibly move the sea out a little. People are okay with a new font. Anything else? Maybe the only other thing is that that tagline is maybe not have a double space they maybe bring it up by hand space in terms of this gap right here bothers you. Yeah maybe. Well so here's a question when we print out stickers do we print out the tagline or just the cloud events in the logo? It wouldn't work while on a sticker with a tagline. I'm not sure if many brands do that. Yeah because right now the stickers we have show just these two things right here they don't show the tagline. I think we could have a full on discussion about what a tagline should be so maybe we should focus on the logo itself. Yeah there needs to be probably a variation and then we had a discussion a bit a couple of calls ago about the t-shirt idea and I think this this middle bit would go really well on on a t-shirt maybe with the text on the back so we were able to split the graphics up into a few different assets and we finally decide what we what we need that could help people that go on to make that kind of merchandise. Okay so Austin I think you've heard a couple things about changing this stuff here a little you want to take another swag at it and come back with something? Yeah I could separate the C I'll remove the tagline at some point I think we should have a conversation about that tagline too just to figure out what what we think is best but that's a whole other exercise. In the meantime I'll iterate on this I noticed that one of the balloon graphics got some thumbs up so anyway maybe I'll yeah maybe I'll just take out the shot at the revise in the existing icon and we could chat about it again during the next meeting. Sounds exciting to me. All right cool hold on a minute let's go back. All right thank you. All right moving on Austin is there anything you want to bring up on the SDK work anything new happened since last time? I don't think you had a meeting. Nope we haven't had a meeting I'm going to send out something probably today. Been a bit of a challenge with the holiday this week so I'll send that out today and we'll coordinate something for next week before before next Thursday. So when you say something you mean a doodle poll or a summary note or what are you thinking? Correct a summary note as well as the doodle poll. Got it okay all right excellent thank you. All right Kathy is there anything you'd like to mention about the workflow meeting that we had on Tuesday? Oh okay so we had a good discussion on the workflow and also on the the Google doc that I drafted I think we discussed so what's the goal of the spec also we also the scope of functionalities and and also the what what are the approaches to for what are the approaches for specifying the specifying the workflow. We I think we are going to we decided we're going to add use cases a section of use cases to help better understand the scope of functionality and and and also like you know maybe to see what's missing there and we're also we're also going to help people present existing ways of doing the workflow from different companies so we're going to so the meeting is every Tuesday if you are interested you know a welcome to join that's pretty much about it yeah all right any questions for Kathy? Yeah quickly this is Leah Kathy I get I missed it actually is this a subgroup of of the serverless working group or or just a separate iteration on the topic of workflow? It is a subgroup of the serverless work group but I think it's a little bit independent of the cloud events although it's related so it's every Tuesday weekly but I'm not planning that we're going to you know drag that meet that weekly meetings for a long time I think you know once we have a good understanding of the use cases and the scope of functionality and then we drop to the specification I think we are going to come back to this work group I'm thinking we probably propose it and put into some GitHub and then the whole work group a serverless work group can review that and then yeah. All right does that answer your question Lee? Sounds good here it makes a lot of sense. All right any other questions for Kathy? All right cool thank you very much Kathy moving on we don't have any issues that need extra special attention as far as I know anyway unless someone can think of one off hand they'd like to bring up okay in that case let's get on to PRs so last time people asked for another week to look over the primer the first draft of the primer I haven't seen any comments added since last week's phone call I did add who was it a Sarah she added a PR a while ago about a quote starter doc and I realized that that kind of overlaps with the primer stuff that I did here so late last week I added some of the text from her PR into here because I thought it would be good to try to merge the two so hopefully if people like this general direction they'll close off that PR as well but other than that there haven't been any changes to it since last week are there any questions or comments about this as I said the last time for the most part this is just moving text around more than anything else okay are there any I'm sorry go ahead this is Rachel last time we looked at this there was a like one of the use cases was missing or all the use cases that were there before in this now no they were there it's just like I was I was going too fast here there you go it shows up it just doesn't show up automatically that click in the diff okay and I yeah they were there I just oh I guess I should point out I did call them um rather than use cases I call it value proposition because they didn't seem like use cases to me as much as they were trying to explain why cloud events would help in certain cases if people are bothered by the word or the phrase value proposition I don't know probably switching back to use cases it just seemed more appropriate to call up this but at the minor tweak I don't care either way but the text itself is still there cool yep all right um the one thing that I was hoping to see that I didn't was um not just design like a scope non-goals but just things that we've realized are anti-patterns like the embedding of a topic or destination into the event uh is that a separate pr or is that supposed to be this one uh no uh this is definitely just a starter pr I was hoping that people would I would notice things exactly like that that are missing there would be great topics to add that to that but we do that as follow on prs this is just to get something out there for people to start poking holes at okay I'll save it for a future action I'm okay great thank you but that definitely is a great topic to add yes anything that would it would explain to people who weren't part of the regular calls you know why we made the decision we did I think that's great stuff to stick into this document to help explain it all right any other questions comments concerns okay is there any objection then to heading this direction and adopting the pr all right cool thank you guys very much and please uh as Thomas was saying there if you notice things are wrong or missing or you can think of other ideals to add to there please uh do follow on prs now Clement is not on the call but I don't believe his pr has been changed in a while so in this pr if I remember correctly what he was doing was for the most part adding text down here that basically talked about how extensions don't necessarily have to follow the same pattern that we've laid out for how they appear when they're serialized that gives basically the out that we talked about at the face-to-face meeting I think that's the bulk of the change we just double check here yeah I think it's just some rewording here but I don't think actually changed a whole lot other than um hey drop the x for extensions it's just everything's a c e thing now I believe yeah I think that's the bulk of the changes now there was one comment that was made I think a couple of days ago uh Z Z pincer made a comment about um do we need to talk about htp headers and what do they know where do with them you know do they forward them on do they only forward on some and stuff like that and clements came back and talked about how this is really an htp thing and basically htp says you have to forward everything on however he did agree that we should be clear about that on the spec and I think that would be a good follow-on pr because I think that's true regardless of whether this pr exists or not so I think that'd be a good thing to write down in general so I think we can follow it could address that in a follow-on pull request um so I was going to make a note of that if we did adopt the pr but are there any questions or comments on this one do people need more time to think about it can I have like three more seconds to read through this of course my phone to me that's the key line right there okay I'm good with this okay do we other go ahead sorry and see hi doc do we not often see x also used as a prefix for custom headers should this be xce rather than ce so there was a big discussion about um how htp has dropped the use of x in their headers recently or they discourage it it's still allowed okay oh obviously it's allowed yeah but it is but it is discouraged um I can read the rfc or itf whatever it is uh paper on i think was mark noddingham wrote um but I think that's the reason that um that clements dropped the x was because htp was pretty much dropping it as well but but this line but the sentence right here basically allows an extension to add it if they really wanted to any other questions comments so the examples are things like event time event id and um was it thomas that said that we must we mustn't put topics within the cloud event but is this somewhere where it could be in this extension oh yeah I mean obviously people are allowed to define their own extension if they wanted to define a topic extension they're they're free to do so yes all right any other questions all right is there any objection to adopting this uh as a question on the last comment not on this pr um how why would one use an htp extension for a topic and how does that destination differ from the actual htp path at which you're posting the message I assume that question is more directed at alex yeah just trying to understand sorry can you repeat that thomas uh so there already is a destination htp spec it's the the path component of the htp post um so i'm curious where that would differ from the actual or like why a topic extension uh and how you reconcile it between that destination which is the path destination and the htp post so you're saying I think if i'm hearing you right that if a message is coming from a use the example again a kafka broker that is reading events from a um a topic partition then retransmitting them to an event gateway that it should send a htp path of the um the topic that it originated from I see so you're using topic as a source information not as a destination information which I think is part of the confusion um so like I I've personally been militant against embedding a topic as the destination um just because it means that the event can't be shared or put in another place yeah so I I was trying to think about this how I could do it in an open vass as a use case and doing it backwards in effect um we know where it came from but where it's going is abstracted away like you say you can then use that in multiple places okay thank you for the clarification all right cool thank you any other questions on this one is there any objection to adopting it all right done all right klaus I believe you're on the call would you like to talk to your pr yes so that was my action item after I presented this issue in um at the um face-to-face meeting so I was styled in um and I think the conclusion at the face-to-face meeting was that we can remove the event type version um which I did in addition I just added a sentence um to the description of the schema url that um if the schema changes then also the schema url should be a new one so to reflect the new version any questions on this one all right any comments concerns before I ask the question do we have more emphasis to event type version in other meetings or stuff I don't see them being updated so he went through and removed it from the jason format uh document I think I think we have it in others don't we do we I don't know I did it get cloned and then a grab on the event type version didn't find anything else but find anything just let me know yeah if we miss one I'm sure we'll catch it or we'll find it and do another pr all right is there any uh concern or our objection to adopting this pr all right cool you guys are very quiet today all right um um well I want to just take a minute because I had a I had a couple conversations offline with some people about extensions obviously related to the next two prs that we're going to discuss and I just wanted to get uh or have a brief discussion to see if everybody's on the same page relative to extensions um because I'm not sure everybody is and I want to make sure we all have a common understanding because if we don't have a common understanding then I think we're going to continue to go around in circles for a while um and so I'd like to just take five minutes to prove you talk about them if that's okay um the first is I wanted to make sure that people understand that when we talk about what is an extension uh in my own words basically an extension is anything that is not specified in our spec dot md file okay if it's not in that specification or or I guess I should say if it's not specified in one of our formal specifications like spec.md then it is then it is an extension so for example the extensions.md file that we have obviously those defined extensions but if a vendor like say IBM decides to add a particular attribute someplace inside the cloud event that is also an extension it's a vendor extension but nevertheless it is still just an extension so anything that is not defined and agreed to by our working group as part of our formal specs is an extension is that consistent with everybody else's view yep yep okay cool just want to make sure now the second point is location does not matter and by that I mean if you look at this example here on the screen right you have a chunk of jason and you have two chunks of we have two properties here in red is apartment and is married now in the past or sorry in our in our spec we talk about extensions we have a you know a bag as of right now called extensions so I think there might have been some confusion about well what if things appear other places like for example outside that bag and I want to point out here that again it does not specify as part of our spec it's an extension and that's true regardless of where it appears so in this particular chunk of jason if the spec defines this schema here then is apartment and is married are both extensions in other words location of the extension does not matter they are still extensions is that consistent with everybody's belief like we can make that the case but it's going to present a problem for strongly typed languages and so I don't I don't want to just say like like we can we can like agree that that should be the case but we need to come up with a solution for how we're going to implement that right this this doesn't talk about whether we want to allow extensions everywhere this is just saying if you don't say otherwise and they are allowed they are both of these things are called extensions it my point here is that there isn't a different word for is apartment versus is married they are both extensions is my point okay but they're different extensions they are totally different extent well yeah yeah yeah they can't be different extensions or someone could say I want me to find these these things to go together that's out of scope for the discussion yes but they are both just extensions so extensions can have scope right you yes you could definitely say is apartment is an extension and if you use it it must appear under address you can definitely specify as part that is part of the definition of this that is definitely true yes okay thank you can we also go ahead Kathy yeah I'm thinking you know um so we need to be clear on what what will be in the spec and what will be in the extension so so if you say like you know vendor specific things are in the extension should we have like a vendor specific spec on the vendor's extension like some extension spec which is for you know for vendor to put their extension there um I just don't think you know is is quite right to just put any random things into the you know into the the events you know anyone just just can put anything there without clearly defined it defining it all right this is Tim um so the point about strong a strongly type languages is a good one and so we've got a thing set kind of like this in AWS AWS events that come from all their AWS services and there's a router and so on and there's a lot of them I mean there's you know there's some huge number of services that he met them now and the number per second that's flowing to the system is is absurdly huge um and that's been one of the central problems we've had is we got complaints from customers saying well I need a schema so I can just you know map it into into my Java object and that problem has turned out to be really really hard and not only have we not solved it I'm not even convinced there is a good solution because obviously at some point you're going to have a data field that actually has the the source specific payload in it and um you know unless you insist that nobody is allowed to contribute data and unless they provide a you know object binding libraries for Java and go and .NET and and so on you're kind of stuck and so I'm just I'm not saying that's not a not a good idea I'm just saying it's it's a really hard problem one thing we did is so for the top level wrapper fields like we're really super fascist there's only like six and they all have to be there always and no you can't ever put anything else in there and so on and so forth so at least we've banished the the irregularity and service specific stuff down to subsidiary elements I'm not saying that approach is is optimal or that whether one that you know cloud event should take it's just some some of our lessons yeah again I just want to point out that for the purpose of this discussion I was ignoring the possibility of of the specification of say this schema banning extensions in certain spaces I would my point here was just to point out that both his apartment and is married assuming they are allowed per the definition of the schema that these are both called extensions okay so I have a follow-up question um so IBM wants to include these extensions is it or like is it still compatible if another person supporting cloud events does not support those extensions yes because extensions unless otherwise specified should basically be optional for a receiver to understand I think my question is you know if we can just put any random you know key value pairs in some random in any place so how should the I mean the I think they could cause quite some issues right because it's apartment there is there is cause for confusion happening isn't there so let me make sure we're focused on just with the one aspect right keep in mind I'm not focusing on whether we should allow extensions at every spot in the hierarchy that's not my point here my point here is just to say that if if the specification allows an extension at his apartment level and it allows it to be where is married appears then they are both called extensions okay then can we change the subject to be the one like should this be allowed because that seems very that seems like a very natural question to ask I I agree and I I I try to remember if I actually get to that I think I think that's going to lead into the next PR discussion my bigger point here was just to make sure that people don't think of extensions that we define are somehow different than vendor extensions they're all extensions and in particular whether extensions appear at the top level or whether they appear inside of a bag as long as they're both allowed they're both still just extensions that's all I was trying to the the gotcha though so I mean in formal logic yes the in anything that follows an if statement where the condition is false is true however I don't think anyone has proposed that there's more than one place in a rendering to have an extension so it's really hard for us to follow because I can't call this an extension because I don't all I see this is non-conforming data and I think that the idea that I disagree with the premise that that a cloud events are JSON cloud events have a JSON representation and b I disagree with the idea that just because we allow extensions that we don't understand means that we allow them anywhere in any representation I agree as I said this isn't getting into whether we want to allow them everywhere this is just based upon the conversations I've had and the the the terminology that I've heard people use people were putting extensions into different categories of extensions and and in my mind we need clarity on whether that's something we want to propagate going forward because in my mind an extension is an extension is an extension as long as it's allowed to appear there I don't care who created it or where it appears it is an extension and it's not something else we did some discussion about you caring or someone for scaring where it appears and that was because we were just looking at the headers weren't we let's talk about where it appears in a minute okay the other thing is Rachel has a comment here that I don't know if anyone's spoken about yet about how we would cover this in a strongly typed language yeah I I made that comment after I brought it up in conversation and then I don't remember was it Tim Tim also has this problem I'm not sure like I know Doug that you want to isolate the conversation to what do we call this but I think a lot of our minds are jumping to the implementation problems that we see with this and that's fine and all I'm asking is patience we will get to that I just want to make sure that that there isn't a different word that people want to use right vendor extension is no different than extension that's all I'm trying to say okay we move on to the part that I think we're all jumping yeah okay let me go away with that extension versus vendor extension because I could imagine not everyone producing cloud events will be a vendor to me the word vendor should be dropped from our vocabulary when you talk about extensions they are all just extensions I think I agree with you okay I think you know um I would have to second what Thomas just said I think you know um we should not you know allow like it will be confusing you know um for the receiver if you know anyone any of the producer can just put any string in any place okay Kathy hold off on that we'll get there in a minute we'll get to the location in a sec hey Doug I think you're getting such engagement on this issue because you've done such a fantastic job of finally laying out what an extension is so I hope that this makes it into our github at some point because it's uh it's a very good explanation well I I do think that when we finally get all we all get agreement on extensions where they can be and stuff like that then yes I think this information should go into the primer someplace so other people can understand our thought process agreed yep or extensions on d or extension and d yet more than there yep someplace basically yes okay so one last point before we jump to what everybody wants to talk about which is where do you want to allow them um for the moment give me some latitude please and let's say our specification does allow send sms as a property at the top level and our jason rendering just give me that for a minute we may not allow it I understand but for the moment let's assume we do my point in this part of the discussion is to point out that if we allow extensions here and we allow extensions in what we currently have in the spec which is a bag called extensions these are both extensions and technically there's no difference between the two does that jive with everybody else's understanding well one huge difference could be that it's expected that every value inside of the extensions bag gets forwarded and everything else gets dropped I suppose you if you were to add language to the spec that said that I suppose that could be true but barring someone going out of the way to say that I'm not sure that would be true no I think I think it's right because um if I don't have to support if I don't have to support all extensions then I might treat different like I assume that it would be the case that I would drop the extensions I don't support and I would just pass through the extensions bag yeah that's true well I agree with that too yeah boy pass through the extensions bag or pass through the extensions you know about there's two there's two very different things I would I'm suggesting like this is my intuition and we can talk about whether or not this is anyone else's intuition and so say you have so you are supporting a new extension that includes send sms as a top level key in value I'm not supporting that extension I've never heard of it before so when I get the event I drop that but I want to be as compliant as possible so everything that's in the extensions but like underneath extensions I will just pass through so let me ask you about that if the specification makes it perfectly clear that people can add top level things and they can add extensions under here why would you choose to only forward one and not the other because I have no idea what that extensions I've never heard of that but you've never heard of enable logging either but I know that that is going to be like this this is the point about strongly type languages I know that that's going to be like a key value pair like bag and so I know what to do with that and I don't know what to do with any random other piece of data that you send me so I don't have so I disagree with that because as of right now extensions is basically just a bag it's a key with an object that is no different than this it's quite different okay so as send sms like right now it looks like it's a bully and it could also be a string or it could be anything in the world and I have no idea what that is and that's that's the like heart of the matter for me but I could do that as well just as easily so why is it any different okay so for each so for each thing so for so for if we just go through each one of these keys and values uh so like cloud of insversion I know what to expect that I expect it to be a string for source I expect that to be a string for extensions I know that's going to be a hash right I know that that's going to be like we've been calling it a property bag but I have a clear way of what to do with that thing when I get it send sms I have no idea what to do with that when I get it I don't know what this is you're going you're asking me to take a strongly type languages and make it and make it a like a not type language and that's going to be a huge implementation problem for me elaborate when you said send them as when you said you don't know what to do with sent sms which so the bottom the bottom top level property the second sent sms I don't know what kind of thing that is and it's going to be hard for me to deal with why is that any different than the first one because the first one I'm going to well it is kind of still a problem but I'm just going to make everything a string I'm going to pass it through but you can't um so dog also logically group something together you know will be easier for the receiver to decode it or to handle it rather than we just throw thousands of you know could be like hundreds of random you know um whatever this as send sms or other things at the top level that would be you know hard for the receiver to handle to handle okay if we have quorum on on how we're defining the types because there is an issue open as well I think is it yours Doug that's suggesting everything should be represented as a string on the other end of that when you're decoding it into strongly type language how you know what it is and then whether we have to embed a schema to support it too so I I'm fascinated by this discussion and to be honest it kind of hurts my head a little because all the arguments for why this bottom sent sms is hard for people it should apply to this one and yet people are saying it doesn't and that's mind-boggling to me and I don't want to rattle on this on the call here because I'm not sure this is the best place for it so can people have comments about why these two are different into the pr about removing the extensions bag because I really don't understand that can I make a stop yeah we have to treat all of the other properties top-level properties as untyped as well so to be able to bind all of this struct and then just because of the single field or additional properties somebody could provide so you cannot be type safe with the other stuff you have to play it safe and use the like open key value map for everything yeah that makes it really difficult for the implementation it might be easier having the known fields at the top level when it comes to thinking about our language like go for instance and then having this part unmartialed conditionally if you're interested in it rather than having that that data all mangled together okay because in goal you can definitely do this without any problem I've done it myself that's why I'm really kind of confused not the question whether you can do it uh it's how usability trivial that is and that's not trivial uh especially to do it in a type safe way okay performance impact as well when you start I believe I mean correct me if I'm wrong when you start to get into the and it's not just goal of interfaces or in dot net using dynamic and things like that okay so can I get you guys to add comments about that to the the pro request about removing the extension the bag because I think it'd be useful to have that discussion in there and I like I said I don't want to rattle on this on this car right now because I don't think it's the best use of time yeah I would like to just add one more comment so for the extension right I'm not uh I'm just thinking why do we just have a generic names extension I think it would be better to have multiple different categories of extension right so that you can we can have either a type it so for one type of extension you know we can see we can give it whatever the name right so you know what kind of type if we want to use it or we can just skip it right um instead of so everything into your suggestion would be instead of having top level um like does that does that end up becoming something analogous to this where instead of like send sms that like at the bottom that key would become something like um uh this like IBM dash uh sms extension like something like that and then that can be a property bag of whatever it wants yeah something like that IBM extension or like you know google extension something like that or some other meaningful extension of people knows how to use it and also it's kind of it's better to be defined so that of course when they're specific right you do not need to find the it's already uh self-explanatory that's the other what's the difference between that and putting IBM under extensions or just saying the IBM dash and sms and get rid of it well Doug you still don't understand the hydration problem the hydrate well I'm sorry I'm sorry for that top level thing there let's do this how's that right but that's that's easy for one key but now make extensions have an IBM bag oh I see what you mean yeah that would be better you know I believe that's what gath you are saying but IBM extensions under extensions yeah yeah because I mean I don't necessarily like the word IBM here because one of the reasons for extensions is like something that you expect a broader platform like you know we look at our examples um we have things for tracing for uh sampling for uh we've talked about adding jaw authentication claims these are things that we like we expect IBM or Google or Huawei whatever will pioneer but they're explicitly at least known extensions are doing it because they expect others to do it I agree and that's actually one of the reasons why I wanted to remove the extensions I think itself for the exact same reason people wanted to drop the dash x on htp headers because the minute say send sms becomes a valid thing we want to put as part of our spec if it's under this bag everybody's gonna have to change their code to support it in two different places at least for a period of time so remember cloud events is not json so everything you're saying does not apply to proto I understand but I but so we can we can smooth some curves we cannot pretend that we can ever avoid them great I'm not I agree this is I am of the belief that our spec as I think Clement's first pointed out is more of an info set spec and then we'll have different serializations for different things like proto versus json and they may look radically different have very different ways of dealing with things like extensions yeah and so it has no extensions it just says that you can have extensions there is no extensions bag anymore I thought and then you're talking about the rendering in various languages yeah well as right now I think we do have an extensions thing in our in our info set the thing I worry the most about with all of these extension talks is people starting to put the the vent data into the header which is against what we're actually trying to accomplish with cloud events I totally agree with that I did that exactly I was gonna get to that discussion at some point too yes one more point here if we do have the last send SMS to as a top-level property and then cloud events three three point five whatever as the send SMS property as a top-level official property and not an extension it's gonna be held for promoting this for with backwards compatibility as in I had an extension which I did the send SMS field as a billion and now cloud events is defining your send SMS field as an official field and it's a string or it's the phone number or something like that at least if they're all in the extensions bag yet we might have to support you but I won't yet new version of cloud event conflicting with an extension already implemented okay so we're almost out of time tell you what I think this is a worthy discussion and what I'd like to do is send that a note asking for people though who who are interested in this to talk offline about this because I don't think this is the best phone call for our best venue to discuss this so I'd like to send that a doodle poll to see who's interested in talking about this in an offline discussion is that okay with people that way we can continue to come back with a proposal can I can I make one request additionally can we write down somewhere what we like the formats that we intend to support because I know from talking with people that we at one point we said we wanted we want this to be implementable and for example proto and jason but I'm looking through the spec now and I don't see anywhere where that's written down as like one of our goals like is there so like that would be really helpful to inform these kind of conversations I think yeah I think we've been kind of going with the assumption that if someone wants to support a particular protocol or format then they write a spec for it and that's the way we say hey these are the ones we support because they are there's actually spec for it so I'm expecting at some point someone's going to come along with a proto one is that not true Thomas all right yeah we're talking about it in general there's still some struggles and ironically extension is one of them there you go it's not for the reasons you expect it's because we can't have something that includes scalars very easily okay and I actually think that discussion the camera who brought up the the issue I raised about should everything be a string may actually play into this in some fashion right because if we decide that's easier for everybody that may make some of this easier going forward well it makes it encodable but it defeats the entire purpose of proto in that once you have a proto for it you have a library for it that is like useful and meaningful uh if you then have to layer on top of the proto based library a semantic parsing library you might as well not have had proto to begin with understood um but no the big thing that we're struggling with is that proto can't support a variant um so that that type of variable in our infosa is incompatible with proto get a real one will you sorry all right um I believe we're basically at a time here so let me just quickly go back to the uh list of attendees um Jurgen are you on the call what about Ryan are you there yes I'm here Louie are you there Eric yep here to me okay Neil yep Neil I think we lost Neil uh Gourish Gourish are you there okay Heinz I don't know who Heinz is I don't think we've had them before what about fraud yeah I'm online is that a fraud or Heinz fraud no sorry this is a Heinz I'm a Heinz Schafter I'm gonna start to try and join these calls I'm uh calling from my solar systems okay great do me a favor can you go to our agenda doc and make sure I split your last name right and put your company name in there so I can get you on the attendance roll absolutely thank you very much and Gourish are you there or Neil okay is there anybody I missed okay just to finish out the last discussion we're over time but I will send that a doodle poll assuming everybody's okay with that to try to get some offline discussions going send it on the email or in soccer I will send I will send that email to the cloud events mailing list okay thanks excellent thank you doc what we're gonna have another another me offline meeting oh yeah we gotta have lots of offline meetings you know what group and not an event now we have another one well yeah I I'm if no one shows up then we can talk about on this one it's it's a you know it's really up to you guys I just thought we we don't want to necessarily have a deep dive on this particular call this one's more for a resolving poor request yeah I think probably you know um yeah of course we can have offline call but you know post comments on the on that um was that that's pr yes another way yes that's definitely the preferred recording for all the calls please I could have done the last three or four meetings and it was rather hard to find the recording yeah when I talk to those guys who manage their recordings I'll try to make sure that they they pick up all the uh the non-regular ones as well that would be perfect thank you all right cool thank you guys very much and I apologize for running late but it was a good discussion thank you thank you bye bye thank you


Full Kinect. He's in England. I need to sit. I sent the next one. Nice, nice, nice, nice, nice. I beat them at the moment. Same, same, same. I'll like, stop them here. Yeah, I know you. I'm doing insane damage, though. Yeah, yeah, yeah. I'm getting the stack. You can put him. Rive, Rive, line, line. I'm blocking. Yeah, I know, I know, but I blocked. I know, that's why. And I forced the button. Got the ball. Full Kinect, full Kinect, full Kinect. He holds me. This way, this way. Nice, nice, nice. I'm doing it. I got you, I got you. I'll, I'll, I'll see. We could die here, be careful. Yeah, yeah, I'll do it. Healing you, healing you. Yeah, stop the other one, stop the other, okay? Yeah. I ship up to the... The spelling, the spell hunts, why not? Full ship, full ship, full Kinect. Yes. The spelling again. Yeah, I ship maybe the... I pick, I pick ship. Keep follow, keep follow, keep follow. Yes, yes, yes. Yes, yes, yes, yes, yes. You can play aggressive, play aggressive. Yes, yes, yes. Yeah, yeah. Keep following him. I ship to the bottom. Full ship, full ship, bro. I'm trying, I'm trying. Yeah, I'm not going to scare. They make. I'm wishing. Is that? He's up now. Go, go, go, go. Yeah, I'm going. I'm going to scout. Warrior on me and stuff. Yeah, chief. Nice. This is insane. Watch out for Noctow. He's going to trink it. Noctow. He's going to... He's going to trink it. Blades them. Yeah. Touch him again? Yeah. Oh, good, good. Double fill. No, wait. I'm... He's worried now, he's worried now. Yeah, I'm not. Jumping down, jumping down. I'm on my way back, I'm on my way back. I spell here. I have one more. I have one more. Yeah, but I'm really not taking the game. I'm not taking the game. That's OK, I'm a little worried. I'm a little worried, I'm a little worried. Full kidney warrior, full kidney warrior. And a S.S.S. I keep following them, they block. I got it, I got it. Full kidney warrior. I'm on the ship now. I'm on the ship now. I'm on the ship now. I'm on the ship now. I got a shaman. I got a shaman. We go pala. Yeah, go go go. Go. Go go go. I'll try and shoot with him. I'll set that up. Yes yes yes. Into kine, into kine, into kine. Get it. Get it. Get it. Got it got it. Okay, get it. Trink it. We got everything now. I cannot stop this. Nice nice nice. Fixing fixing. I cannot stop. Push out my nails. Yeah I will maybe. I got through that. We kill war next go. We kill war next go. Okay. He's got rude. Let's see. I'm gonna re on war now. Okay. I'm getting fucked. I'm getting fucked. Yeah. Heming. Okay. Okay. Go go go. Go go. Full kine. Can you anything on pala? Yes I have CS. I have CS. I have inco deep. Maybe I have run. I have walk. I have walk. I try to. I don't have the storm for your storm. I don't have the storm for your storm. I'll chip away. I'll chip away. I'll chip away. I got this. Nice. We go pala. I can fish him already. I have no dance. Yeah yeah. If I get a re it's really good. I'll try to. I'll try to. I got a top. Go go go. I'll come and go. Yeah yeah I can. Let me. I'll help you bro. Yeah I'm trying bro. Okay okay. I can't fish him. No fits. I chip to. I chip to. I chip to. I chip to. Go go go.   I chip to. I chip to. Maybe I get a random chip on pala. Go on war. Go on war. Let's shrink it. I have to go Pallao. I can go now. I can go now. I'm pretty much ready. I'm gonna go to the spout. I'm gonna go to the spout. I'm gonna go to the spout. Fearful of me. I still have dance. Yeah sure, can I go now? No no no no no. I have no kidney bro. I'm scared now. I choke. I choke. I choke.  I have to die, I have to die. I'm dead. Yeah just die now. I'm gonna help you. I have no mana left. Shipping in. On this go on Pallao, if we use Gage on Shaman first and then went Pallao, it was over. Yeah, maybe. You guys can go. You can go, why you're bro? No no, open Pallao I swear. I can level up now. Now which couch? Got it. Why are you trying to get it down? I don't need to set it. I won't get empty, I won't get empty. I'm running now, only you. Yeah I'm gonna help you Pallao. Shipping way or not, I'm spamming. I can ship with him, I can ship with him. I got it, I got it. I can ship Pallao bro, I can ship Pallao here. Randomly, randomly. Same. He caked, he caked. He caked me, caked me, caked me. Can't stop, can't stop. I got him, I got him. I'm in. I'm low and I'm a bit of a warrior. I ship with him, I ship with him. I ship with him, I ship with him. I ship with him, I ship with him. Get to ground, get to ground. I'll ship with him. Careful, careful, trouble, trouble, trouble. I'm coming back, I have to cross, I have to cross. I don't think you can cross dude, you need to go to a hill. It's fine, it's fine. I'll ship with him far away. I'll ship with him far away. It's over, it's over. We have to go Pallao bro. I'll ship with him. Can we get this warrior off me? Yeah I'll ship. I'll ship Pallao, I have dance, I have dance. I'll ship Pallao though. Bake down for me, bake down for me. He's easy work, easy work. Nice boys. Which one actually bro? I couldn't cross there, I was sandwiching things from the elevator.  I was like what? It is for now.  Jeez. But I'll be back on Monday. Next episode. Let us know bro. Bye bye. Bye.


In terms of your reputation, do people consider you flaky? Do they trust what you say? Do your friends and family know that when you say something you're going to stand by it? Or do they make backup plans just in case you bail, as maybe you often do? Let's talk about the importance of keeping your word. As believers, it's vital that we allow the Holy Spirit to convict and correct us in areas where we're not reflecting the character of Christ. When growing up, I often heard my father say, your word is your bond. By this he meant that if you say something, you need to stick by it. Jesus said this, but let your yes be yes and your no no. For whatever is more than these is from the evil one. That's Matthew chapter 5 verse 37. How often do we make commitments and then back out? How often do we fail to uphold our word because the promises we made were inconvenient or regretted? How often do we promise something when we're in a good mood, only to recant it when we're in a bad mood? We make commitments when we're energized and motivated, but then try to ignore or avoid these commitments when we lose that energy or motivation. That is a lack of consistent character. Granted, sometimes situations arise that make it difficult or impossible to keep our word. For example, if you promise to be somewhere at a certain time and then your car breaks down, that's different. Or if you schedule one commitment only to realize that you had a prior commitment, that's an honest mistake. Should you be more organized? Yes, but that's not the same thing as flaking on your word. The unexpected can disrupt our plans and we ought to have grace for ourselves and others when such things arise. However, this doesn't mean that the unexpected is always cause for breaking your word. For example, let's say you make dinner plans with your parents or siblings, but that morning you're late for work or you get into an argument with a coworker. Your mood may have shifted, but since the plans are for the evening, you should keep that commitment if able. I think our culture too heavily emphasizes self-care. Now, don't get me wrong. I believe we should rest, be healthy and set reasonable boundaries to guard our time, but we have to have balance. It can't always be about us. Sometimes keeping your word is going to require that you push through the tiredness. Sometimes our commitments will be inconvenient for us. Parents, if you make a commitment to your child, do everything in your power to keep that commitment. Husband, keep the promises made to your wife. Wife, keep the promises made to your husband. Friend, keep your commitments to your friends. And on that note, do as Jesus said, let your yes be yes, but don't forget to let your no be no. So according to Jesus, it's okay to say no. You don't have to accept every invite, answer every phone call, commit to every act of service, participate in every gathering, or obligate yourself to every favor. Don't be pressured into saying yes when you'd rather say no. In fact, don't say yes when you know your actions are eventually going to say no. Sometimes, in order to avoid conflict or to look good, we make commitments. But in so doing, we just delay and intensify the conflict while also damaging the value of our own reputation and word. A person who promises a gift but doesn't give it is like clouds and wind that bring no rain, Proverbs 25-14. As children of God, we should reflect the nature of our Heavenly Father, and our Heavenly Father keeps His word. Look at how important a commitment is to God. When Joshua and the Israelites began to conquer their surrounding regions and cities, fear of them began to spread. However, when the people of Gibeon heard what Joshua had done to Jericho and AI, they resorted to a ruse. They went as a delegation whose donkeys were loaded with worn out sacks and old wineskins cracked and mended. They put worn and patched sandals on their feet and wore old clothes. All the bread of their food supply was dry and moldy. That's Joshua 9-3-5. So here, the people of Gibeon are being deceptive. They're wearing old clothes and carrying old supplies so that it appears as though they're distant travelers just passing through as opposed to neighbors. Then they went to Joshua in the camp at Gilgal and said to him in the Israelites, we have come from a distant country. Make a treaty with us. The Israelites said to the Hivites, but perhaps you live near us. So how can we make a treaty with you? We are your servants, they said to Joshua. But Joshua asked, who are you and where do you come from? They answered, your servants have come from a very distant country because of the fame of the Lord your God, Joshua 9-6-9. So Joshua without consulting with the Lord makes a treaty with the very people he's supposed to conquer. Three days after they made the treaty with the Gibeonites, the Israelites heard that they were neighbors living near them. But the Israelites did not attack them because the leaders of the assembly had sworn an oath to them by the Lord, the God of Israel. The whole assembly grumbled against the leaders. But all the leaders answered, we have given them our oath by the Lord, the God of Israel. We cannot touch them. This is what we will do to them. We will let them live so that God's wrath will not fall on us for breaking the oath we swore to them. Even though they had been lied to, the fact that the people of Israel had already made their commitment was enough for them to keep it. Sure, the people of Gibeon were in the wrong, but this was more about the way Joshua wanted to honor the Lord. This is a demonstration of just how important it is for us to be committed to the words we speak. A word is only as good as the character of the one who speaks it. A good name is more desirable than great riches. To be esteemed is better than silver or gold, Proverbs 22.1. How is your reputation in the area of keeping your word? Let's stay connected. Make sure you subscribe to my channel so that you continue to receive these messages.  Consider becoming a monthly supporter of this ministry. Go to DavidHernandezMinisteries.com slash partner for more information. And until next time, remember, nothing is impossible with God.


If you're interested in Dr. Tobias colon cleanse, it's literally the exact same thing. Hi, what's up guys, it's Josh here. Today I wanna do a little review on this Dr. Bo colon detox. I've been on a little bit of a journey trying all of the Amazon colon cleanses. My favorite colon cleanse right now is the Inno cleanse, absolutely love it. But it's extremely expensive and I'm somebody who uses colon cleanses like a little bit as a time. Like I don't ever use like an insane dose that kind of use little bits as I need it. And Inno cleanse has been by far my favorite, but it's so expensive. And I'm just gonna see if I could find some other options for cheaper. Dr. Bo here didn't have too many Amazon reviews. And I was kind of picking the colon cleanses based on the highest amount of Amazon reviews because that has more search traffic, more people have tried it. What really made me wanna pull the trigger on this Dr. Bo colon cleanse was looking at it side by side with Dr. Tobias's colon cleanse. I'll try to put them both on screen so you could see them. But they are literally the exact same thing, ingredient for ingredients, milligram for milligram, extract percentage for extract percentage. It literally says the exact same thing as Dr. Tobias's colon cleanse, which I guess you could do because you already know that it works, but I'm just thinking, man, if you're gonna straight up copy, I'm like change a couple of things, you know what I mean?  But this is literally a copy and paste of Dr. Tobias's colon cleanse. And I actually like the shiny look that we got here as well. It actually looks a little bit better, but it's hard for me not to recommend this one because it's the same thing and literally half the price, but at the same time it's like, or Dr. Tobias, if he took time to design this blend, it's just so easily copied and people are completely undercutting him in price, cutting it down $10 off what it would normally be. Normally it's $20, now it's 10. And on top of that, you get 30 pills here and versus Dr. Tobias, I think you only get 28, I think. So it's a 14 day cleanse, so you end up getting two extra pills here. So if you're interested in Dr. Tobias colon cleanse, it's literally the exact same thing. There isn't one different ingredient in it. And I kind of had this issue with Inno cleanse versus Zupu. Now they have a proprietary blend in there, but they had the same amount of ingredients and they had essentially the same exact ingredients too. I think that one of them had like a pepper and the other one had an extract of a pepper and another one had the same supplement, but it was written a little bit differently. But they were literally the same amount of ingredients and the exact same ingredients as well just with a little bit different names or like an extract. And this one is even more on the money. So how does Dr. Tobias slash Dr. Beau feel? What is the colon cleanse like? So for me, it's probably the roughest colon cleanse I've used in recent memory, very painful. I actually think it works best alongside something else. I think the serving says to take two, but if you just take one of these, I would probably want something else to help me along just because it can be painful. And you don't want to get in that middle zone where it's like hurting your stomach, but not enough to get things going. So usually I'll probably pair it with something else. That's kind of worked best for me. Or if I'm in a lot of trouble and I'm just gonna try this supplement out 100%, screw the other ones, I will take two and I will take it at night. And usually it hits about eight hours after you take it almost on the money. So you're not gonna wanna take it around six or seven because you're gonna wake up in the middle of the night. Definitely take it at the very last bit of the day. And then if you have to get up really early, unusually, maybe if that was the case, I would probably take it midday just so I know the evacuation will be done by the time I got something early in the morning. But again, it's the most aggressive. And if you take two, I would expect probably three to four large bowel movements at the very least, if not more, until your stomach's feeling good again.  Like the other ones are actually more mild than this. This is definitely, like I said, the strongest. But it also does work. And most of the time I didn't have any lingering pain. The pain was just signaling that I had to go. And I don't know, it was also like, I don't know if it was this product in particular, but it always seemed like whatever came out of me was just really gross and nasty. And I don't know if it's this product specifically. If it's speeding things up, I have no idea. But it's just unusual that it's like, whatever I take this, no matter when I take it, I always just seems like really weird stuff comes out of me. But very effective, super strong, essentially the exact same thing as Dr. Tobias. Poor Dr. Tobias because it's hard for me not to recommend this when it's the exact same thing and $10 less. But I'm also trying out some more colon cleansers. I'll probably try out all the popular ones. If you have some ones you want me to try out, I'll be very interested to see down below. Another little tidbit is if you have a lot of constipation, try electrolytes slash magnesium. Both should help a lot. Sometimes taking a large dose of magnesium is literally the best thing you could possibly do. And then some other times it's the whole electrolyte blend which electrolytes contain magnesium, but not as much as in a capsule. Anyways, a little bit of a side note. Let me know what you think of the video. Let me know which colon cleanse is your favorite. We're on the road to 50,000 subscribers and I couldn't do it without any of you guys. I hope you guys are the best. Having a great day out here. Hopefully having a great day at home. See you all in the next video. Peace.


Welcome to this lecture in which we continue to study the way we model random phenomena in simulation analysis. In this lecture we're going to look at the input distribution and how we determine what data we will use as input to the simulation study. What do we mean by the simulation input data? Even when we did our very very first simulation in class, we know that we could not have done it without knowing something so that we could build the simulation model on it. One of the things we had to know were the inter arrival times between successive customers and the service times for each particular customer.  In general how do you determine the input data to the model? How do you do that?  The same inter arrival time the same service time at least you'll be able to build a model around it but you see what I mean by you need input data in order to build your model. Then number two you can make an assumption about the input distribution and its parameters because you've studied the field. You know what other people say. You know what theory says about the type of model that you're studying. Talk to experts. So there is something for you to base this on. You're not building a simulation model strictly out of thin air. Three you can use a historical data. If you have a model that you're simulating and it's there's a real system version of it collect data from it. You have a string now of let's say inter arrival times and just input that. You don't need to have a distribution when you have the actual variance the actual data and then finally and this is really the best way to do it of all you have a string of data take the data and use it to fit a distribution a theoretical distribution. Then once you have the distribution and the parameters that you get by estimating parameters from the data then you can you can sample from this distribution and you're not limited to the exact values that you collected from the real system. Why is this better? Well the real system data the data you collected from the real world is actually limiting. It's very constraining. You've got these numbers and you've got to use them exactly as is and you can never come up with another one. When you have a theoretical distribution that you have fit to your data then you can throw your data away and you have a lot more information about what goes on in your system because these theoretical distributions have been very well studied. Having said that how do we go about taking real world data and identify a theoretical data distribution from it? It's not the easiest enterprise. It's doable and this is something we should do and will do. The question you're asking is these data values that I got from the real world could they have come from some specified some theoretical probability distribution that we know of? So how do we do that? Well first we have the data either we collect it or we've got it secondarily from some other source. Second we take the data and put it into a frequency distribution. You create intervals assuming that it's continuous data you can put it in intervals. If it's frequency data and it works as frequency data use it as is with the frequencies as your histogram. We'll see very shortly how to work with discrete data and put it into a distribution and continuous data and put that in a distribution. So what do you do once you've created this histogram? You actually eyeball it. You look at it and you say I wonder if this looks like the curve of a particular distribution that's known that's theoretically known and has its properties known. So that's step three and once you've done that or at least you hope you've done that step four is to say well every distribution needs parameters very often the shape of the distribution changes depending on the parameters. So I'm going to use the data in order to determine to estimate the parameters of the distribution. So for example one of the first things we'll do is get the expected value the mean of the distribution. And then finally we'll use a statistical test to see if this data fits the distribution that we're looking at or if it does not and we have to go all the way back and try and start again. Well go back not to step one but to step two. What is a histogram? A histogram is a frequency chart. It illustrates graphically how the data is distributed across the possible values in your distribution. So the chart clearly from the image in the slide the chart will look very very different potentially depending on your the size of your interval. If your intervals are very very large the chart will be sort of like the image in the middle like V and you really don't get much information from. If your intervals are very small and you get a lot of bars like the top image like the top distribution that's the same data recall. It's just too ragged with a lot of missing spaces and it really doesn't help us come up with a picture and here we mean a literal picture of the distribution. And so in this case you can see that going somewhere in the middle where the intervals are not too large and the intervals are not too small gives you a better picture of what the data looks like. As I said we're going to see examples of creating histograms from data that comes from a discrete distribution and data that comes from a continuous distribution data that is discrete data versus data that is continuous data. And you see some examples there anything having to do with time is going to be continuous. Number of defects obviously anything that says number or number of jobs in queue is going to be discrete. On the next few slides we'll see some examples of data that was collected and graphed into frequency distributions in other words histograms. This one is a weekly production and we see that weekly production as the variable was organized into intervals that were they're arbitrary really could have been anything and they're basically 45 to 55, 55 to 65, 65, 75 and so on with the first and the last categories being everything below and everything above. We've got 120 weeks 120 pieces of data in and it was organized into this distribution. It has a decent shape it could probably be fit to any number of theoretical distributions but that's not the point. The point here is just to show you what continuous data looks like after we've constructed intervals and graphed it into a histogram in this case a vertical bar distribution. In fact this distribution looking at the picture looks almost like it could be a symmetric distribution close to the shape of the normal distribution and the data actually supports that. What's the mode? It's the bar with the high the tallest bar the one with the largest frequency and that's 96 to 105 with the frequency of 28. The mean we would have to add up all the 120 values and divide by 120 you can do that but just the easier would be figuring out what the median is. We start adding up the frequencies one plus one plus three plus seven plus eleven and so on until we reach a number greater than the halfway point so that we know that somewhere in that interval would be the value between the 60th and the 61st value in order and when you do that that's also in the 96 to 105 interval and that's the same one that has the mode. Well the median is equal to the mode maybe and very likely the mean will end up in there also but you'd have to do that on your own. All of those go into trying to decide number one what the theoretical distribution is that you could try to fit to this and number two once I do that what are my parameters going to be. Here's another example another set of data much of the work that was done in the previous slides is missing and left for you to do some of it is not missing and that and we'll talk about it. This is time to complete a task it is continuous data we note again that time data is always continuous and in this case we have 100 observations anywhere between 10 minutes and 80 minutes these are organized again into arbitrary intervals of 10 minutes each and you can see the frequencies and the relative frequency the relative frequency is going to become very important later on in this lecture. When you look at the frequencies out of 100 what's the mode same thing we did last time what's the mode it's the interval with the highest frequency 32 is the highest frequency and we're talking about the interval between 30 and 40 minutes oh look at that the mean is 37.3 minutes we might be on to something here what's the median the median is going to be the 50 percent point something between if we string all the ordered observations together and we actually that's what we have here in this grouped frequency distribution it's going to be between the 50th and the 51st observation and if those are both in one interval it's much less of a problem and indeed they are in this point and again we find the median is in the 30 to 40 interval that's interesting we've got the mean is equal to the median is equal to the mode well right away we're looking at distributions that are you know more or less normal ish where you have the something resembling a bell shaped curve finally here's an example of a discrete set of data a number of telephone inquiries that's definitely discrete and these are organized into one-hour intervals so we've got 509 pieces of data 509 one-hour intervals and out of those 509 hours 315 of those had zero telephone inquiries 142 of those had one and so on the graph is here you see the graph is very familiar to you and we could easily come up with the mean the median the mode and so on and we will but we're going to do that later on in this lecture because we're going to continue to use this this data set this distribution in order to work with it and see what would happen if we wanted to use that as input to a simulation later here we have another example of a discrete data which we've collected into a frequency distribution but not graphed for you leave that exercise for you as well as computing the mean the median and the mode take a look at this first it's definitely discrete our variable x is number of defects and we have values from 1 to 10 the frequency of each of those values is laid out and we've collected 350 of these observations in addition we have the relative frequency which eventually when we want to construct a probability distribution is going to be a big help to us we're not going to look at that now I'm going to leave the histogram and collecting the the statistics from this distribution to you you can see that the shape of your data distribution is critical is essential in identifying the probability distribution that you think it probably came from how do we assign an input probability distribution based on what we've seen in the data what before we even try testing for a fit we need something to test it to we need to have an idea hypothesis of the distribution that our data came from we could use theory for instance when we look at something like number of defects in a particular time period it's a discrete variable inside of a continuous interval that sounds very much like something that might be the Poisson or its inverse the exponential so we use theory as much as we can which means we also have to understand our system that before we even start modeling it we obviously look at we eyeball the shape of the curve that we've come up with we may rearrange the intervals in order to make the curve look a little different and look at it again so art is involved in this enterprise and then of course we look at the parameters sometimes to determine the distribution or the family of distributions and then in addition we will need it anyway in order to very often the parameters are change the shape of the distribution in the normal distribution the mean of the standard deviation affect the shape of the distribution in the Poisson the mean is equal to the variance that's going to affect the distribution and so on over the next several slides we're simply going to look at eyeballing the shape the from an artist's point of view the different some of the different more common distributions that our models will be asked to use this first slide has the ones that I think you may know the most about the uniform distribution is just a simple equally likely type of distribution it's it's better than using a constant sometimes though it's just a little bit better than a constant because if we don't know what the distribution looks like we sometimes use that as a first attempt and in fact you know that that that's what we did use as a first attempt in the very first class we had this semester on simulation modeling the normal distribution very well studied from our statistics classes we know all about it and that's another reason that very often it's one of the first blush attempts when you're fitting the input data of a simulation to a distribution the log normal distribution as we can see is a family of distributions that will change their shape depending on the parameter the log normal distribution from the theoretical description of this distribution that will give us an idea of whether we want to use it for our simulation project this typically is is thought to model a process that's the product of component processes so if you're using compound interest and your data is rate of return including compound interest well you might want to see if you can fit the log normal depending on the shape depending on the parameters the binomial distribution as we know is the distribution that models the number of successes or however you define success in a certain number of independent trials so for instance the typical example might be the number of heads that you get when you toss a coin n times so we have a on off success failure hit no hit variable and we have a certain number of independent trials the trials all have to have the same probability of success and we call that p an example in quality control would be the number of defective items in a lot of size n that's where the n is what's the negative binomial very much related to the binomial of the negative binomial models the number of trials that it takes to achieve a certain number of successes the little bit different it's kind of the binomial turned on its head which is why it's called the negative binomial we already know quite a bit about the Poisson distribution and the exponential distribution let me make the point recall that the Poisson distribution is a discrete distribution it's the discrete distribution of a discrete random variable and the exponential distribution is a continuous distribution and that's why the two pictures look different and that's why we don't take a distribution like the Poisson and just draw a curve from the top of each spike going all the way across uh it's a discrete distribution we've already worked with the exponential distribution we've done a lot with the Poisson but perhaps we haven't looked at it in this way as a distribution with this it's sort of semi-curve uh they're going to look different a discrete probability distribution will look different from a continuous probability distribution the exponential is a distribution for a continuous random variable the Poisson is a distribution for a discrete random variable and um we know that one is the inverse of the other we've worked with these extensively in our simulation models that we've been building um the interesting thing here you look at the graph of under Poisson and you're kind of saying wait why isn't that normal how is that different it looks just like a normal distribution or maybe almost a little bit asymmetry there but it's very symmetric the mean is equal to the median is equal to the mode it goes down seemingly asymptotically um towards zero it kind of looks a little bit like the normal distribution well uh we know that sometimes I was going to say often maybe often uh the Poisson is used as an approximation or rather the normal is used as approximation to the Poisson you've seen that in your intro stat course and the fact of the matter is that um the Poisson when the mean is large looks very much like the normal distribution that you see here when the mean is small it looks very different they're all sort of clustered around zero not in the middle like this in fact when the mean is small in a Poisson it looks closer to what you see as the exponential curve on the right side of the slide and as the mean of the Poisson increases and gets larger and larger and larger the picture the graph of the distribution gets closer and closer and closer to what we think of as a normal distribution um the interesting thing is though even if you're going to use the normal as an approximation to the Poisson or the reverse you have to remember they behave very very differently uh the mean uh in the Poisson is exactly equal to the variance that obviously is not true in the normal distribution and so the behavior of the two distributions is going to be quite different even if the sampling space looks very similar to the naked eye here you see several um probability distributions theoretical distributions uh that you may want to use if your simulation model uh or rather the system you're modeling has some elements that fit the theoretical description of what these distributions are used for or good for um the Weibull distribution is often used to model time to failure for component parts of a larger system so that seems quite useful for us uh the beta distribution is used to model random variables that have fixed upper and lower limits unlike the normal distribution uh the gamma distribution as you can see from the picture is used to model non negative random variables uh and the constant shifts the distribution from zero uh very much like what you might see in the very the the other distributions like the Poisson and exponential the Erlang distribution uh is used to model the sum of exponentials so if you've got a system um where you have exponentially distributed time to times to fail for a number of components and you want to know that the estimated time to failure for the system well you're going to be summing exponentials and the family of Erlang distributions is something that would be very useful for that type of model finally we've got some very very simple probability distributions these are almost as simple as the uniform although the uniform you know might be easier and simpler to to describe and to use you've seen triangular distributions I would imagine when you were using clouds or cloudists to build your simulation models because that was one of the defaults in cloudists triangular model you need a a minimum a maximum and a most likely and of course therefore the most likely is going to have a higher relative frequency and you're not so concerned about smoothing out the curve it's a slight improvement over a uniform distribution and the empirical distribution we've seen in a different lecture actually uses the data as is uh in order to construct the distribution from which to sample well here we are we have collected data we have um organized and graphed the frequencies of the data into a histogram so we can get a picture of the data and compare it to the pictures of some known theoretical probability distributions and then we pick one and we say okay I would like to determine whether my data can be said to have come out of this distribution actually that's not what we do the hypothesis we're actually testing HO the null hypothesis is that our data does not differ significantly from the theoretical distribution um if we do not accept if we reject HO if we say oh no the data doesn't support this we're rejecting HO what are we accepting we're accepting H1 that the data is different all right so you remember we're always setting up our null hypothesis as a straw man um and in trying to reject it and in fact in this case that makes a lot of sense because just because your data fits a theoretical distribution doesn't mean that it would not also fit some other similar theoretical distribution um all you can say with certainty uh then is that well I couldn't reject it it might fit this distribution which is very much an honest expression of what you're doing when you test for a fit one test the statistical test that allows us to do this is the chi-square test statistic and we have we use it in order to test hypotheses about frequencies or we could turn the frequencies into proportions pretty easily we look at our observed frequencies what we collected from the data and then we look at the expected frequencies from the distribution that we're studying uh so we can take our distribution and we can say well if this is the actual distribution uh that the data came from the data should have looked something like this and we could we compute expected frequencies or expected proportions and then we compare and we say well if they're exactly on the nose that that means that the the two the chi-square the value of the chi-square statistic should be close to zero and we'll see that pretty soon here you see the formula for the chi-square test statistic uh we've got f o the observed frequencies f e the expected frequencies and the difference between these frequencies squared so that we're not going to get a negative value of chi-square um that the difference between these frequencies squared is then divided by to get it as a proportion of the expected frequency or you might say relative to the expected frequency and that's added up over k values or k intervals um because each of our frequencies is over a particular interval or value so you know a few things about this number one the chi-square statistic is never going to be zero i'm sorry you're never going to be less than zero the minimum is zero and when is it zero well it's going to be zero if every single observed frequency is exactly the same as its corresponding expected frequency so if everything is right on the nose uh it's going to be zero um and that gives you an idea of what you're testing you're actually testing these differences the larger the chi-square statistic the larger the differences between the observed and the expected and the less likely it is that uh the observed and the expected both came from the same distribution the chi-square distribution is a series of distributions and each one looks different and has a different number of degrees of freedom for our particular test the degrees of freedom is computed as one less than the number of categories uh or or intervals or classes that we are using to test the fit um you know that when we do a test like this we're using counts frequencies these are this is discrete discrete counts the chi-square distribution is a continuous distribution it's a continuous approximation of a discrete distribution um this works most of the time but we have to make sure that the expected frequencies are large enough so there's an assumption here that our expected are not too small uh we usually use the rule of thumb that the expected frequencies should be five or greater and if you find that when you're you compute the expected frequencies based on the distribution that you're interested in if you find that some categories have expected of less than five uh just go back to your data and redo the intervals uh so that you have you combine adjacent cells and once you do that you'll have fewer degrees of freedom and you'll have to adjust that as well we're going to do a quick little example here uh before we get to a larger more interesting simulation example uh the distribution of the die we want to test the hypothesis that a particular die is fair and no one's cheating uh so we want to test to see if the outcomes one two three one two three four five six really do follow a uniform distribution so we're tossing the die we toss it sick let's say 60 times um and the results um will be on the next slide um and we're we're we're testing the hypothesis that the observed values that we saw in those 60 uh tosses follow a uniform distribution um and we're going to see that soon right now what you see is the beginning of the hypothesis test uh where you're writing down your null and alternate hypothesis the null hypothesis could be stated as there is no difference between the empirical and theoretical distribution with the alternate hypothesis being there is a difference in other words there is no fit the null hypothesis there is a fit the alternate hypothesis there is no fit alternatively you could specifically say maybe giving more information null hypothesis the random variable follows a uniform distribution and therefore the alternative hypothesis would be the random variable does not follow the uniform distribution so let's say that our alpha level is 0.05 which means we're allowing for a five percent chance that will reject the null hypothesis even when it's true here we're continuing with our hypothesis test to see if this die is fair if it follows a uniform distribution the data is laid out in the table to the left the values of the random variable one two three four five six um out of 60 tosses you see the observed frequencies there were eight ones 12 twos 10 threes 11 fours 12 fives and seven sixes naturally the expected frequencies out of 60 should all be 10 10 10 10 10 10 and they are uh and you we might as well continue the the calculated value of the chi squares computed in that same table as 2.2 you can see it all laid out there how the calculations work following the formula that we saw earlier in a previous slide for the calculated chi-square value the critical value from the the chi-square distribution is in the graph on the right side we're using alpha 0.05 so it's 0.05 in the tail we have five degrees of freedom because there are six categories so one less than that is five and from the chi-square table that gives us a critical value of 11.07 and what that means is if the chi-square value that we computed from the data is greater than 11.07 then we reject the null hypothesis that was on the previous slide that that the uh that there is uh fit and if the calculated value of chi-square is less than 11.07 uh then we don't reject and we say okay it could have come from a normal district from a uniform sorry uniform distribution and probably uh the die is a fair die uh the conclusion do not reject the null hypothesis let's get back to our example from earlier a number of telephone inquiries per one hour interval um so we have a discrete data distribution we've collected 509 observations 509 one hour intervals and the number of inquiries were distributed between zero and five there were 315 intervals where there was zero inquiries 142 where there was one um relative frequency is the the number of times an event occurs compared to the number of possible times it could occur and so basically it's a proportion so um if there were 315 intervals with zero inquiries 315 over 509 is 0.619 that's the relative frequency and the relative frequency for one inquiry which happened 142 times out of 509 is 0.279 and so on so now we look at this and we say okay fine I have my data I have it all nicely organized in a pretty table but what I really want to do is figure out what the input distribution is what the theoretical probability distribution is that this came from so that I could then throw this away use the probability distribution in order to generate input data for my simulation here's the uh graphical frequency distribution the histogram and like we said earlier you chart your data think about um the graphical representations of the various distributions that you looked at and you say to yourself hey this kind of looks like an exponential distribution so our hypothesis could be the random variable of interest here follows the exponential distribution and we could be testing this for fit using the chi square statistic we know how to get the expected for the exponential random variable the relative frequencies for an exponential are given by the formula you see there lambda times e to the minus lambda x where x is the value that you're looking for the expected relative frequency but there's some something's not sitting right here and part of what's not sitting right is the fact that we're looking at the formula for a distribution for a continuous random variable a probability density function and yet on the other side of the page we have a histogram uh that was created from data that came from a discrete random variable and in addition let's go to the next slide in addition this data seems to perfectly fit the theoretical description of a Poisson random variable it's a discrete random variable inside of a continuous interval number of telephone inquiries is discrete time a one hour interval is continuous that sounds perfect we should be looking at Poisson first before even looking to see how the chart fell out and uh it does make sense and let's see what happens it even the shape of the histogram um if you look at the Poisson with the appropriate um the expected value it will look a lot like that so let's try Poisson the probability of x number of events is given by the formula there what's in the formula we have lambda raised to a power of x we have e raised to a power of negative lambda we have x factorial so aside from e the constant uh we have x the variable and then lambda the parameter and lambda is the mean of the Poisson distribution we are we estimate it by getting the mean of the data that we collected of the observed um and in this case we find uh the data mean from the data to be 0.5147 inquiries per hour then almost home but not quite um the null hypothesis is that this random variable follows the Poisson distribution the alternate hypothesis is that it does not uh from the table the critical value is 11.07 just like before assuming we're using an alpha 0.05 uh degrees of freedom is still five same as it was before because we have six categories uh that's what we found from the data zero one two three four or five uh as the number of telephone inquiries we observed in it in these various time periods um so the critical value is 11.07 if if our calculated value of chi square is greater than that we'll reject the null hypothesis and we'll say that there is no fit um so look at the table we still have the columns of observed frequency relative frequency now we get the relative frequency from uh the formula for the Poisson distribution and using 509 as our n convert those to expected frequencies uh kind of like the reverse of the way we took frequencies and created relative frequencies from them but really just remember relative frequencies in are nothing more than uh proportions because their probabilities and frequencies are counts so the chi square statistic again is observed minus the expected square over the expected add all of those up for every one of the categories and we end up with something marginally rejectable we have a chi square value of 11.78 and so since we set up the test saying we will reject anything greater than 11.07 we must indeed reject the null hypothesis uh all is not lost let's continue take a closer look at this table uh the expected frequencies column we have um number of inquiries 0 1 2 fine number of inquiries 3 we have an expected of 6.92 after that 4 and 5 are so low uh that they we really violated the assumptions uh under which where this this chi square statistic operates uh expected frequencies of 0.87 and 0.1 are just too low so in the next slide you'll see what we do to fix that up all right the null and alternative hypotheses are not repeated here because clearly they haven't changed um the observed and the expected's changed because we've collapsed uh the categories with 3 and 4 and 5 inquiries um and so we end up with a chi square statistic calculated from the data of 3.88 uh if we look at the table the chi square table with alpha 0.05 the tail probability 0.05 now we have three degrees of freedom 4 minus 1 is 3 the critical value from the chi square table is 7.815 and we're we're the the calculator value from the data is smaller than that and so we do not reject ho which is good it means that our data fits um this particular uh Poisson distribution and we can go ahead and use it in the simulation