The question is that amendment 12867.1 in the name of Megan Gallaker, which seeks to amend motion 12867 in the name of George Adam on behalf of the parliamentary bureau setting out a business programme, be agreed, and members should cast their votes now. The vote is closed. I call Pam Gosall for a point of order. I call Pam Gosall for a point of order. I couldn't connect another vote. The result of the vote on amendment No 12867.1 in the name of Megan Galares is yes, $53C, no $60C, there were five extensions, the amendment is therefore not agreed. The next question is the motion 12867 in the name of George Adam, on behalf of Parliamentary Bureau, on a business programme be agreed. Are we all agreed? Are we all agreed? The motion is therefore agreed. The next item of business is consideration of business motions 12868 on a stage one timetable for a bill and 12869 and 12870 on stage two timetables for bills and I ask any member who wishes to speak against the motion to press their request to speak buttons. I call on George Adam am llawer o'r Ffmgaf reunionau gyda'r Ffmgaf reunionau gyda'r ffmgaf reunionau. The question is that motions 12868, 12869 and 12870 be agreed. The next item of business is consideration of parliamentary bureau motions 12871 1, 2, 8, 7, 2, on approval of SSIs and I asked George Adam on behalf of the parliamentary bureau to move the motions. I call on Sandesh Gulhane up to three minutes please. I wish to declare my register of interests as a practicing NHS GP. The SNP Government may trumpet in this chamber their minimum pricing policy as a so-called major success but I would ask the Minister to say that to the families of the 1276 Scots who died in 2022 due to alcohol, families who are grieving the loss of their loved ones. We know that the SNP has tried one flagship approach to tackle excessive drinking to make alcohol more expensive and so thus deter the less well off from purchasing. For dependent drinkers on the lowest incomes, we know they are going without food instead. MUP isn't a slam dunk success, a magic bullet, as the SNP believe it. It can't be because alcohol-related deaths are not reducing by any credible measure. Of course, seeing the SNP spin machine in overdrive over MUP, notably with regard to a key Public Health Scotland report, the trouble is to grab the headlines that the SNP misrepresented the facts. They spun estimates as facts and they also implied that their resounding success was based on 40 different policies and studies and that was backed but this again is simply not true. What is clear and this is important is that Public Health Scotland report acknowledges there was only limited evidence. The SNP's push now to know I will not, you should listen to this, the SNP's push to increase MUP to 65p which can result in an increase at a hike of 30% disproportionately penalises responsible drinkers on a low income and those dependent upon alcohol and if that's not bad enough this extra money does not go to fund addiction services. We all know that addiction is complex and requires a multi-faceted approach yet the SNP has one approach and that is to put up the price. They have their silver bullet and that silver bullet is a blank because what is clear and crystal clear is that more people suffer alcohol related deaths now than in 2018 when MUP was introduced. In fact men from deprived areas are drinking more with MUP in place than before and others are switching to spirits. The Scottish Government has failed to provide the necessary investment in prevention and treatment services. If the SNP were to ever want to get a grip, people suffering from dependence should have the right to access treatment and rehabilitation via our right to recovery pill. That is the priority, not forcing every Scot to pay more. I call on Christina McKelvie to respond up to three minutes minister. I'm glad for the opportunity to address colleagues across the chamber on minimum unit pricing ahead of this crucial vote. Parliament has the opportunity to show that Scotland continues to be world leading with policies to improve the health of people in Scotland by voting to continue minimum unit pricing and to increase the price per unit to 65 pence. I implore Members across this Parliament to vote in favour of these orders in line with the views of over 80 third sector organisations. That's people working on the front line every single day. Public health experts, senior clinicians who wrote voicing their support for minimum unit pricing and a proposal to increase to 65 pence per unit. Minimum unit pricing is an extensively evaluated policy. Public health Scotland's independent evaluation estimated that, during the period it considered, minimum unit pricing reduced alcohol attributable deaths by 13.4 per cent. That's 156 people a year. That's the limited evidence that Sandesh Gohaniw shows that it's 156 lives. They also said that it was likely to have reduced hospital admissions wholly attributable to alcohol by 4.1 per cent compared to what would have happened if MUP had not been in place. The evaluation found no evidence of a significant impact on alcohol drinks industry as a whole. The evaluation also has been commended by internationally renowned public health experts, including Professor Sir Michael Marmont and Professor Sally Carswell. That would counter Sandesh Gohaniw's comments today, because this is what they said. Policy makers can be confident that there are several hundred people in low income in Scotland who would have died as a result of alcohol, who are alive today as a result of minimum unit pricing. Who to believe, Presiding Officer? I'll stick with the experts. The decision to propose 65p per unit is underpinned by modelling by the esteemed university of Sheffield, among consideration of many other factors. Those are set out in detail in the published business and regularity impact assessment, which I commended to Sandesh Gohaniw at committee that he's obviously not read it. Sheffield University's modelling suggests to maintain the value of the price per unit and therefore to continue to achieve the public health benefits at a level estimated by public health Scotland's evaluation. It should be increased to at least six defence. However, it's clear that Scotland continues to experience significant levels of alcohol harm. The Scottish Government is therefore proposing to increase the value of the price per unit to 65p, to further increase the public health benefits of the policy, maybe another 156 lives saved. I expect and modelling predicts that, if that increase is implemented, it will save those additional lives. I have heard the concerns of some members on the potential effects of the policy on people who consume alcohol at the highest levels. Specialist support and treatment is vital for people with alcohol dependence. To this end, the Scottish Government provided record funding of £112 million in the last financial year to Scotland's alcohol and drug partnerships, so it's just not true to say that this is the only measure that we are taking. That funding supports the delivery of services for people who are alcohol dependent, whether that's residential rehab, community-based services or other types of vital support. I implore members to vote in favour of both of these orders to reduce alcohol related harm that continues to affect far too many people, reduce harm and save lives. That's easy. Thank you. The question on these motions will be put at decision time. The next item of business is consideration of four parliamentary bureau motions, and I ask George Adam on behalf of the parliamentary bureau to move motions 12873 to 12875 on approval of SSIs and 12876 on designation of a lead committee. Thank you, Presiding Officer, and all moved. Thank you, Minister. The question on these motions will be put at decision time. There are six questions to be put as a result of today's business. The first is that amendment 12855.3 in the name of Siobhan Brown, which seeks to amend motion 12855 in the name of Russell Finlay on repealing the Hate Crime Act, be agreed. Are we all agreed? The Parliament is not agreed, therefore we'll move to a vote and members should cast their votes now. The vote is closed. I call Katie Clark for a point of order. I would have voted no. The result of the vote on amendment 12855.3 in the name of Siobhan Brown is yes, 64, no, 49, there were five abstentions, the amendment is therefore agreed. The next question is that amendment 12855.4 in the name of Pauline McNeill, which seeks to amend motion 12855 in the name of Russell Finlay on repealing the Hate Crime Act, be agreed. Are we all agreed? The Parliament is not agreed, therefore we'll move to a vote and members should cast their votes now. The vote is closed. The result of the vote on amendment 12855.4 in the name of Pauline McNeill is yes, 20, no, 97, there was one abstention, the amendment is therefore not agreed. The next question is that motion 12855 in the name of Russell Finlay, as amended, on repealing the Hate Crime Act, be agreed. Are we all agreed? The Parliament is not agreed, therefore we'll move to a vote and members should cast their votes now. The vote is closed. The result of the vote on motion 12855 in the name of Russell Finlay, as amended, is yes, 64, no, 29, there were 25 abstentions, the motion as amended is therefore agreed. The next question is that motion 12871 in the name of George Adam on behalf of the Parliamentary Bureau on approval of an SSI, be agreed. Are we all agreed? The motion is therefore agreed. The next question is that motion 12872 in the name of George Adam on behalf of the Parliamentary Bureau on approval of an SSI, be agreed. Are we all agreed? The Parliament is not agreed, therefore we'll move to a vote and members should cast their votes now. The vote is closed. The result of the vote on motion 12872 in the name of George Adam is yes, 88, no, 28, there were no abstentions, the motion is therefore agreed. I propose to ask a single question on four parliamentary bureau motions. Does any member object? No member objects, therefore the final question is that motions 12873 to 12875 on approval of SSIs and 12876 on designation of a lead committee in the name of George Adam on behalf of the Parliamentary Bureau be agreed. Are we all agreed? The motions are therefore agreed and that concludes decision time and we'll now move on to members business in the name of Ivan McKee.


Good morning everybody. I'm Alvaro Brescioli. This is Dave Sebedi. We work on the release integration team at Pivotal, and we love screen savers. Yeah, we're gonna talk to you today about breaking up the CF release monolith. So we're gonna talk a little bit about deployments versus releases, fast iterations, so we want to be, you know, developing quickly and we're gonna talk about scaling development teams because as we add more and more people to Cloud Foundry and add developers and contributors, this becomes a problem. It's a fundamentally a human problem. We're gonna have basically at this point teams all over the world trying to communicate and they're all in different locations. They're different companies, different time zones and one second let's move into the first things first. What's a release and what's a deployment, right? And for the purposes of this talk, we're just gonna say a release is just a set of Bosch jobs, right? And a deployment is one or many releases running on an IaaS somewhere. And we're gonna talk a little bit to give you guys some context, right? A history of like CF release. Why is it a monolith? Yeah, so I think in order to frame the problem properly, it's probably best to start with a quick history of CF release and how we got to where we are now. So here we have CF release. Inside we have some of the main components that are part of Cloud Foundry. They're implemented with Git submodules. It's not super important. This black box represents the actual Bosch release and so that's where CF release actually comes from. It was the idea that you could take the different Cloud Foundry components and use Bosch to deploy them. And that's just a get repo out there in the world. But this is currently how we still ship versions of Cloud Foundry. We have all the components living inside of CF release. Operators take CF release, they're repository and use Bosch to deploy that. So this is actually still to this day how we ship new versions of Cloud Foundry. There was, you know, maybe the important part of the story here is that there was a time when we decided that we needed to add some new features to the platform, mostly around application logging and getting those application logs to users. And it was going to be this relatively large change to the platform. It was going to require some new code bases and we really had to scale the team that was working on the core part of the platform in order to do that. So there was some new code bases that I've globally called LoggerGator. That's the name of the team. There are actually several code bases in there. But we made two decisions at that point in time. The first one was that LoggerGator was actually going to continue to be part of CF release. It wasn't going to be a separate code base. It was going to be Bosch deployed with the rest of the components like everything else. But the other interesting decision to be made is we're going to spin out a new team. So until that point, there had only been two teams working on CF release. One was the identity team. The other one, at the time we were calling the backend team. The identity team at that point in time actually was not incredibly active. They weren't contributing too much to the code base and it was a pretty stable interface. So the main team doing active development on CF release was the backend team, one team working on one release. But with the introduction of the LoggerGator team, we now had two teams pushing, regularly pushing code to CF release. And we ended up with some interesting issues with that. So two teams contributing to the same release. But each release goes through sort of the same testing pipeline, goes through one testing pipeline. And so we would see, because we had two teams working on it, if one team pushed code that would break the build, we might see that it would block the other team from contributing code. That's the sort of the process that we go through when a build goes red. You know, we sort of halts any new commits going into the repo when someone takes a look at the broken build and tries to fix it. And this would actually happen, this became a huge problem for the two teams. One team would push code and like it might take days for the pipeline to go green again. At which point the other team is like stacked up a bunch of commits that they're waiting to push. And so then they would flood the pipeline with their new code and then you would see another break. And so this was actually like there was a back and forth where the two teams were sort of stepping on each other's toes because of the way we did testing at the time. And so that was a huge pain point for a while. Then there was an opportunity to add yet another code base to the Cloud Foundry ecosystem that we wanted to rewrite the main back and the runtime for Cloud Foundry. They called it Diego, but we made a different decision with Diego. Instead of putting it inside of CF release, there was a new release that we called Diego release. So we had a new team, a new release, a new set of environments and a new testing pipeline. And so what we saw is that a lot of those issues between the back end team and the loggergator team, we didn't run into them as much with the Diego team. The two teams didn't block each other nearly as much and they could sort of test independently. But we inherited a different set of problems instead. Given that we have two releases, how do I know which versions of each release are compatible with each other? Or suppose that I want to add a change to the platform that requires commits to both CF release and Diego release. How do I push those in lockstep? So different set of complications by using a new release for a new code base, which brings us ultimately to the core problem. How do we scale development of the CF core? We want to add new subsystems and new teams to build different features or fixed bugs or whatever it is to the Cloud Foundry ecosystem. How do we scale that effectively? And if the answer is to break the monolith, how can we still prove that all of the new releases work properly together? How can we test things like integration and also make sure that we don't lose the sort of quality assurance that we previously got from a single pipeline where everything was being tested in one place? So if we do break the monolith, we want to make sure we don't lose a bunch of things that we already had. Cool. And before we actually answer those two questions, we're going to talk about what do we gain from this? Like what are the advantages of breaking up this code base? Some of these are in part the solution to those two questions. Firstly, we can now extract components. So things that a lot of teams were doing the same way, we can now just pull that out and say, everybody just uses one component to do your route registration, for example. We can find dependencies. Maybe dependencies we didn't know we had, which is really nice. It gives us a little bit more stability. And we can start to establish contracts for components, which means that when developers are writing their code, all they really have to worry about is like, does it still meet this contract that my release has with someone else, right? So you just worry about keeping your APIs stable. We can test the components individually and together. That's nice. We can iterate quickly and we're kind of working independently. Very nice thing to have. And you can commit as much as you want without stepping on people's toes. So, you know, to go back to your question, what might we lose if we broke the monolith? There are actually some nice things about having a monolithic code base and we want to try not to lose those things. So we might lose the idea of a single integration point. There's something nice about being able to point to a single pipeline or a single build and say, yes, it works or no, it doesn't. If we distribute that logic across multiple testing pipelines, we might lose that idea. The other thing is we might lose the idea of a canonical Cloud Foundry. What does the world look like without CF release? How do we refer to a version of Cloud Foundry? Right now, I can tell you, oh, go download CF release 235 and we're all talking about the same thing. But if we break CF release apart, now we have to refer to a collection of releases and the various versions of all those things. So we might lose the idea of, oh, this is a canonical Cloud Foundry. And the last bit is that we lose the single code base that represents all of CF. So currently, right now, I can get Clones CF release and know that I have what is essentially all of Cloud Foundry. And the really important part about this is that if we break it up into multiple code bases, I have to know how to glue them back together to get my Cloud Foundry. There's an important missing piece there if we just have multiple code bases. We need to know how to bring them back together. All right. So now we're actually going to talk about how we're splitting this up. So picking up where Sabedi left off, talking about what CF release is, this is one single deployment. At this point, we've spun out all these different teams that are all contributing to Cloud Foundry, right? And there's actually more teams than you see here. But just to keep it simple, we kind of left it at this. And this is essentially where we currently stand, right? Everybody's still pushing their code to one single release. So I'm going to just move the present over to the left to make a little bit of room for the future here, which is where we're trying to go with this. So now this represents, we're starting to take CF release and break it up into other releases. We're already sort of in the process of doing this. These are now releases of their own, but at the end of the day, they're not being used because the way that the manifest is written, it's still represented all in one single release, right? Yeah, sorry about that, guys. Okay, each subsystem gets its own release. So now every team is working on their release independently, right? And they can push code and not worry about if somebody else is going to push something and have merge conflicts, etc. And we can have a lot more people now working on Cloud Foundry quite happily and quickly, right? We're not stepping on each other's toes, as we say. So this is really nice. If we want to add new features to Cloud Foundry, now all that means is, okay, well, let's make a new release, package it up and throw it in the Bosch manifest, right? So the future and where we're going is this one deployment, right? So now we're not talking about releases at all. CF release sort of goes away. It's not a thing. CF release becomes a single, it becomes a Bosch manifest and it's no longer a release. It's a deployment that represents all of our components, right? It's essentially the glue. And I'll let Sebadi talk a little bit more about Bosch and the Bosch 2.0 manifest generation. Yeah, so the idea here is that instead of CF release, we're going to start publishing this manifest as sort of the canonical, not just the canonical configuration, but as your canonical glue for taking these different releases and publishing them, you know, being able to deploy them. So we'll all actually be using more or less the same manifest as well.  And hopefully what this does is this like really tightens the configurations that we don't have to, you know, pass around credentials, you know, to all the different jobs or pass around static IPs. All that stuff can be handled under the hood by Bosch. So the goal, the dream here is that we get rid of all these complicated templates that you may have seen before that use things like SPF or Spruce to produce a manifest for CF release. So in this hypothetical future that hopefully is not too far away, we don't have any more complicated templates and hopefully no more SPF. So that's sort of the, that's sort of the dream as far as manifest generation goes. There'll be one manifest with maybe a few places where you have to pass in your credentials, hopefully just the one time and maybe a few fields. But it'll be, it'll be logicless. It's just a pretty much copy paste. It's a macro or something like that. Nothing too complicated.  So yeah, how do we see this? What are we going to do to make sure that everything still works together correctly? And the solution that we've come up with is that, okay, so you have all these different teams committing and pushing their code. They're each going to have their own pipeline, right? And every one of those pipelines is going to be spitting out final releases. We're going to feed those in to the release integration pipeline and we're going to introduce this new concept of blessed versions. All that means really is that, okay, this version of Diego we've decided works well with all of the other components of Cloud Foundry that were blessed. So it becomes another blessed version, right? And then we're going to take those and we're going to feed them right back in to the team's pipeline. So every team is now working with whatever the latest of every other release is and testing against that. So when they push their code, they know that it works before they've even tried to give it to the release integration pipeline, right? So they're testing against the latest of everyone else's stuff. And to bring it back to one of the original things we were talking about, this should all enable faster iteration on new releases. So shorter feedback loops and really being able to quickly know how your updates to your release are going to integrate with everything else. So who tests what? Every team, all they're testing is their release against blessed versions and the Relent team is going to be the one blessing those versions. So yeah, the main advantage is exactly what Sebeddy said. Teams now are responsible just for one thing so they can iterate really quickly without worrying too much and without thinking they're breaking things, right? And what this means really for operators and developers, so smaller releases means a faster release cycle. It also means that it's easier to compose releases. So the example that we often use for this is that there's a routing release that contains pretty much all the components that are involved in the routing layer at Cloud Foundry. But it also can package up its route registrar which is how you publish routes to the router and say, hey, traffic to this URL should be routed to this IP address. Instead of inheriting all of CF release in order to reuse this one job, you now only have to bring in a smaller subset of Cloud Foundry in order to do that. So by breaking down releases into smaller releases, you get the option to bring in and exclude functionality as you so choose. The other thing, we're going to have new manifests so we'll have a canonical configuration with same defaults, a simple manifest. And lastly, we talked about this already, but potentially more stable interfaces and explicit dependencies. One of the things we found as we started to break apart CF releases is that there were all of these hidden dependencies that people had completely forgotten about. They were lost to the sands of time. And as we're starting to split things out, we think, oh, my God, this has a dependency on that. How did that happen? And so we moved more towards service oriented or even microservice architecture. I would hesitate to really use that word to describe the architecture of Cloud Foundry, but just the idea that you'll have a defined contract and everyone listens to that. So hopefully you're all excited about these changes to come. We're happy to stick around and answer any questions. Thank you, Jesse. Yeah. So bringing down, like, CF release is great, but doesn't that mean... So David, you mentioned earlier that this does make it difficult to test cross cutting changes. And so I imagine that if in the future you do have to introduce a cross cutting changes that require changes in both places. I said both, that's hypothetical, that's more than one. You theoretically have to go through the pipeline three times, right? You have to introduce dormant changes in both places, but leave them inactivated and turn on the feature flags on the third time. So there are a couple different... It depends largely on the nature of the cross cutting change, right? So sort of in an ideal world, there's sort of a layered, a properly layered architecture, and if you treat, for example, Diego as a service, right? You can add a feature into Diego that doesn't actually have to be consumed by any other part of the Cloud Foundry ecosystem yet. And then, you know, the appropriate changes could go into the routing layer or the API layer or whatever it is that consumes those changes, right? So if you have good layering, you might not... You might not... You can treat them as sort of service, different services, the Diego service, the routing service, and then on top of that sort of layer at the very top is the API. So that's sort of the ideal situation, I think. I think there are actually still some open questions about how to make good cross cutting changes. Like, for example, one of the ones that we keep coming around to, again, is how we deal with updating tests and features in the same commit. And that's actually still an open question that we're figuring out. Who owns, for example, the tests like all of Cloud Foundry. So if anyone has any ideas, feel free to talk to us about it. But those are still, like I said, sort of open questions. Amit, do you know? Amit's RPM over here. He could probably better answer that question. So if anyone didn't hear that, the question was about release cadence, how often we'll release new versions. And I think the plan is to stick with our current practice of releasing, trying to release every week or every other week, something like that. Yeah. Yeah, currently what there is is this concept of a compatibility matrix. You're probably familiar with it. Yeah, I think in the future we're going to try and go with, and Amit, you can correct me if this is wrong, but the deployment will be the source of truth. So we're going to be publishing a manifest of essentially versions that work together, right? And this is going to be continuously updated. So to stay up to date with your components, it'll basically just be like staying on those versions. Amit? Yeah. Right. The manifest becomes the source of truth for that. Well, hopefully with the way that manifest are going to look in the future and be a lot more simple, this shouldn't actually be too much of a problem. But yeah, if it is, obviously we would love feedback on that. Yeah, so as we said, it's the glue, and that's exactly what its purpose is going to be in the future, right? You can still override values in the manifest, et cetera, yourself, right? But because it's going to be so much more simple, it may just consist of maybe like your overrides living, and I don't know if this is exactly how it's going to look. Maybe your overrides live in one file, and the manifest is just a single thing that is almost static in a way, and all it is is just keeping up to date in that sense, right? And you know that the compatibility is there because it's been tested together. Exactly. Yeah. Right here. Oh, great. So, like, the world right now, like, we used submodules, and some of the stuff we're talking about, you can do with submodules, right? Like, you have your gitmodules file, which is kind of like blessed versions, and you know, if you're worried about, like, one upgrading one component affecting another, then, you know, we don't bump the submodule, right? So, like, what's the biggest win of this new world? I think it has as much to do. I mean, I'll sort of refer to this at the beginning. It's primarily a human problem, not a technical one, right? Like, that's, like, when you have everything in the same release, it becomes really hard to iterate on your corner of the ecosystem, right? So, the idea of breaking it up into releases is to make that a lot easier. Yeah. So, the big win is that, and also, you get to logically encapsulate a subsystem. You can point and say, this is the routing layer, this is the API layer, this is the runtime layer, you know, or these are service layers, like, at CD and console, things like that, instead of having them all sort of shoved into the same release. So, that's sort of, that's the big win. I don't know if that really answers your question, but... I think a good way to put it is, like, any core contributor is probably familiar with the can I bump, and that's essentially how, right now, we communicate, right? How we solve this problem of, like, how does everybody know whether they can push or not push or whatever? That sort of goes away, right? At that point, like, you're constantly fixing up your code, and when something's ready for you to consume, it's just going to get fed in as a blessed version, right? But you don't need to worry so much about whether you can bump and are you going to break everybody else's things, because you won't bump until you've seen your stuff go green, right? I think I saw some other questions. And also, in the back, if we're running out of time, just stop me. So, this is more of a process question. You said that everybody tests everything. Have you, you know, have you figured out if there is a need to have a release testing? Because, you know, you, at the end of the day, are going to take pieces from different releases, and at some rate, you know, certify that. Bless it. So, there has to be blessing by somebody. Who's that controlling body in your team? So, that's actually going to, that's, that responsibility is pushed to the teams that develop those releases, right? So, it's up to them to decide what, what tests make sense for that release, right? So, each layer gets to build their own test, their own test suite and run those tests. We are going to ask every team to, the last step of their pipeline is to pull in the stable versions of all the other releases and run the normal CF acceptance test against that combination of bits. So, before anything gets pushed into the integration pipeline, we should have already tested an update to your release against stable versions of everything else, so that we release, so, yes. Anyway, the idea is that you should run, you'll, these people will be running acceptance tests before any of this stuff gets promoted into the integration pipeline. Okay, and this is happening every couple of weeks where, every commit. The goal is, Yeah, but what I meant was the release certification, if you will. Yeah, that's up to the team to decide. Okay. Yeah. Well, lots of questions. So, for now, our team, the release integration team is owning those two things. I think that's the plan for the near-term future, long-term, as we automate more and more of this way, that might, the team might shrink, or we haven't figured out, but for now it's the release integration team. Yeah, I think they can just change it themselves. Same thing you do now. Yeah, but I think the risk of that is a good deal lower than when, you know, pushing to the same release, but that's a good point. I don't know. I don't have a lot of concern about that, but it could definitely become a problem. I could see hypothetically, so. I think the idea is like, if we're going to publish this plus versions, we have to also give deployers the information for how to do this properly. I think that's definitely part of our responsibility. Now, that might be automated by doing that aggregation that you just described in an automated way. So, just like in the CF release notes, it might just amount to an aggregation of the release notes of all the sub-releases. But yeah. So, but yeah, I think we will continue to be responsible for that. Other questions? I think I saw some hints. I want to make sure I don't forget anybody in the back right there. Sorry, are you talking about specifically about which releases you want to use, or like configuration? Yes. So, I think the idea is that we'll replace those scripts with a canonical manifest that will be updated as we make changes to the releases that require them. So, you'll just do a get pull instead of, you know, generate deployment manifest script. Yeah. All right, I think we might be out of time. I'm happy to stick around for a few more minutes. If you have any questions, you can just come bug me. I'll be standing out in the hallway or something like that. But thank you very much.


In this video, we'll prove the important source-coding theorem, which states a fundamental lower bound on the expected bitrate of lossless compression. This is the fourth video of our university course on data compression with and without deprobabilistic models. As always, you can find a link to a playlist with all videos from this course down in the video description. There are also links to lecture notes, problem sets and solutions. In the last video, we proved the Kraft-McMillan theorem, which states a bound on the codeword lengths of uniquely decodable symbol codes. Part A of this theorem states that every uniquely decodable symbol code satisfies the so-called Kraft inequality, that is, the sum of the shortnesses of all codewords must not exceed 1. Here, we define the shortness of a codeword as 1 over b to the power of the codeword length, where b is usually 2 if we compress to a binary bit stream. Part B of the Kraft-McMillan theorem goes in the opposite direction, and it states that for any target codeword lengths l that satisfy the Kraft inequality, there indeed exists a corresponding uniquely decodable symbol code, a prefix-free one even, that has these codeword lengths. In this video, we'll address the question of how one should choose these target codeword lengths. And to answer this question, we'll recall what we've learned at the beginning of the course, namely that data compression fundamentally relies on a probabilistic model of the data source. Now, if we have a given probabilistic model, then we already know how to construct an optimal symbol code. I showed you the famous Huffman coding algorithm in video 1.2, and we'll actually prove that Huffman coding is optimal in next week's videos. But starting with the next video, we'll consider situations where we don't yet have a probabilistic model of the data source. Instead, we'll assume that we only have some finite number of example data points, for example, a collection of images if our goal is to design an image compression method. And then, we'll want to fit or learn a good probabilistic model for this kind of data. That is, we'll need to be able to calculate the bitrate that we would get if you compressed the data with a compression code that was optimal or near-optimal for some candidate probabilistic model, and we'll then want to minimize this bitrate over many candidate probabilistic models. For this optimization of our probabilistic models, the bitrates that Huffman coding gives us are not that useful because we cannot differentiate through the Huffman coding algorithm. Instead, we'll need a differentiable expression for the bitrate under an optimal compression code. And that's exactly what we'll derive today. This differentiable expression is called the information content of a symbol or a message under a probabilistic model. Don't worry if this also sounds a bit confusing at this point, it will become clear by the end of this video. And on the next problem set, you'll already apply the information content in practice, and you'll use it to train a probabilistic machine learning model that you will then turn into a compression method for written natural language. But we're getting ahead of ourselves. Let's first remind ourselves what we mean with a probabilistic model of the data source. We'll discuss much more expressive models in future videos, but so far we've considered very simple probabilistic models where we have some discrete alphabet and we assign a probability to each symbol in the alphabet. For example, in video 1.2, we introduced a toy model that we called the simplified game of Monopoly. Here, we assumed that each symbol x in our message is generated by throwing a pair of fair three-sided dice and then recording the sum. So we can easily calculate the probability of each symbol in the alphabet. Now, if someone gave us a list of target codeword lengths, l of x, then we can run the algorithm from the last video to construct a corresponding prefix code C sub 1. And this works because the given target codeword length satisfy the craft inequality. If you sum up 1 over 2 to the power of l of x, we get, in this example, exactly 1, so the craft inequality is satisfied. But you might have noticed that these specific target codeword lengths are not particularly well chosen. And this is finally where the probabilistic model comes into play. Why should the symbol 2 get a shorter codeword than the symbol 4 when the symbol 4 occurs with higher probability? It would certainly be better if you take the same set of target codeword lengths, but we assign the three shorter codewords to the three most probable symbols. This still satisfies the craft inequality, of course, so we can again run our algorithm from the last video to obtain a prefix-free symbol code with these new target codeword lengths. We claim that the second code is better than the first one. One common way to formally compare two codes is to calculate the expected codeword length under the probabilistic model. Let me denote this simply by capital L sub lowercase l here, because the expected codeword length does not depend on the actual code C sub l, just on the length l themselves. And we indeed find that the second code has a shorter expected codeword length than the first one. So if our goal is to minimize the expected codeword length, shouldn't we then try to make the codewords even shorter? In particular, in this example, the symbol x equals 4 has a higher probability than the symbols 3 and 5, so shouldn't we give it a shorter codeword? Well, if we try to just make this one codeword shorter without changing anything else, then it won't work because these new target codeword lengths violate the craft inequality, so there does not exist any uniquely decodable symbol code with these codeword lengths. But we could imagine that it might be worth making some sort of trade. For example, if we now make the codewords for symbols 3 and 5 one bit longer each, then the craft inequality is again satisfied, so we can run our algorithm. And you can indeed easily see that the resulting code is again prefix free, but we've actually heard ourselves because it turns out that we've now increased the expected codeword length. So you can see that the choice of optimal target codeword length is not so obvious. Is there maybe a different kind of trade that reduces the expected codeword length without violating the craft inequality?  We have a constrained optimization problem. We want to minimize the expected codeword length, and the minimization runs over the function lower case l that specifies a codeword length for each symbol in the alphabet. And the minimization is subject to the constraint that these codeword lengths have to satisfy the craft inequality, which I'll write now again for a general base b. And there's implicitly a second constraint, namely the lengths of our codewords must be positive integers because they correspond to the actual counts of bits in a codeword. It turns out that the second constraint is actually more difficult to deal with because discrete optimizations are typically harder than continuous optimizations because there's no gradients in discrete spaces. So let's make our lives easy and ignore the second constraint for the time being. Don't worry, we'll reintroduce it on the next slide. We thus now have a relaxed optimization problem where the function values l of x are real valued, but still positive. With this relaxed constraint, the minimization runs over strictly more functions than in the original problem. So relaxing the constraint can make the minimum only smaller. That means the minimum under the relaxed constraint 2 prime is a lower bound to the minimum under the original constraint 2. Fortunately, it turns out that we can solve the relaxed optimization problem quite easily. Let's first make an observation about the constraint number one that is the craft inequality. While the constraint is an inequality, we can easily convince ourselves that a solution to the relaxed optimization problem will satisfy it just barely, that is, with equality. This is simply because if we had a real valued function l where the left-hand side of the inequality is smaller than 1, then we would have some room to reduce some function value l of x by an infinitesimal amount while still staying within the constraint. And this would lead to a better solution because it would also reduce the objective function l sub l. So we can replace constraint 1 by a constraint 1 prime that replaces the inequality with inequality. And now we can enforce this constraint 1 prime in the continuous optimization by introducing a Lagrange multiplier lambda. If you don't remember how Lagrange multipliers work, they are a technique to turn a constraint optimization problem into an unconstrained optimization problem over a higher dimensional space. In our example, it means that we now have to find a stationary point of an objective function that depends both on the function lower case l over which we are originally optimized and also on a new real valued parameter lambda. And the objective function consists of the original objective function plus lambda times a term that will give us back the constraint 1 prime, as we'll see in a second. Let's find these stationary points. So let's take the derivatives with respect to all parameters, set them to 0, and then solve for the parameters. For the derivative with respect to lambda, we simply obtain the expression in the parenthesis. And if you set this expression to 0, then we recover exactly constraint 1 prime. And this is no coincidence because this is exactly how one enforces constraints with Lagrange multipliers. The point of the Lagrange multiplier method is that we can now treat the function values l of x over which we optimize as if they were independent parameters because the constraint that ties them together is already taken care of by the Lagrange multiplier. So we now have a separate equation for each symbol x in the alphabet that sets the derivative of the objective with respect to the function value l of x to 0. Let me actually rename the placeholder for the symbol to x tilde so that there's no confusion with the axis that appeared in the two sums inside the objective function. Let me then write out the objective function in a slightly simplified form. The constant term minus lambda drops out when we differentiate by l of x tilde. And in each of the two sums, only the term with x equals x tilde contributes. The derivative of the first term is simply the probability p of x tilde. The second term is a bit more complicated. I rewrite it here by applying first the natural logarithm and then the exponential function. This doesn't change anything because logarithm and exponential are inverse of each other, but it allows me now to use a logarithm identity and pull the exponent inside the logarithm as a factor in front. Now it's clear how to take the derivative with respect to l of x tilde. And then we can finally identify that this exponential term is again just b to the negative l of x tilde. So at the stationary point, this right-hand side is zero. We can now solve for l of x tilde and we find first that b to the negative l of x tilde is p of x tilde divided by lambda times the natural logarithm of b. Thus, l of x tilde is the negative log to base b of this expression, which I'll rewrite as the negative log b of p of x tilde plus a constant alpha, where alpha is log b of lambda times l and b. And recall that this equation holds for all x tilde in the alphabet, so we might as well rename x tilde back to x because there's no potential for confusion anymore. We still have this constant alpha hanging around, which depends on our artificially introduced lacrange multiplier lambda. To eliminate this constant, the final step in the lacrange multiplier method is that we insert the result into the constraint. The constraint one prime was that one has to equal the sum over b to the negative l of x. So if we insert our solution l of x from above, then we can pull a constant factor b to the negative alpha out of the sum and the rest simplifies to the sum over all probabilities p of x, which is one for a properly normalized probability distribution. So we find that alpha is zero and therefore the solution to our relaxed optimization problem is that l of x is the negative logarithm to base b of the symbol probability p of x. This is an important relation to remember, so let me erase the board and summarize the result. In the calculations on the last slide, we found the solution to a relaxed optimization problem. I'm going to give the solution the explicit name l star. So l star is the real valued function that minimizes the expected codeword length under the relaxed constraint two prime where codeword lengths don't have to be integers. And we found that l star of x is given by the negative logarithm to base b of the symbol probability p of x. This quantity is so important that it has a name. It's called the information content of the symbol x. Or if you want to be more specific, it's the information content of the symbol x under the probability distribution p. We can now find the value of the quantity that we set out to minimize. If we insert l star into the expression for the expected codeword length, then we obtain the expected information content or more explicitly the negative sum over x of p of x times log p of x. This is probably the most important quantity in information theory, and it is called the entropy of the probability distribution p. Remember now that l star was the result of a relaxed optimization problem. Doesn't correspond to any actual expected codeword length because it would require a code with non-integer codeword lengths. So let's now restore the constraint that l must be integer valued. Then the minimization runs over a few of functions, so it will in general result in a larger minimum as we've discussed on the last slide. With the integer constraint restored, the left-hand side of this inequality is now interpretable. It's the smallest possible expected codeword length for all symbol codes that satisfy the craft inequality. And that's a big deal because by part A of the Kraft-McMillan theorem, we know that all uniquely decodable symbol codes satisfy the craft inequality. Therefore, we've derived an important lower bound on the expected codeword length of any uniquely decodable symbol code. The expected bit rate is lower bounded by the entropy of the symbol probabilities. Now, in and of itself, a lower bound is not necessarily meaningful. After all, I could have told you without any complicated derivations that the expected codeword length is always larger than zero. That's also a correct lower bound, but it is kind of meaningless because in most cases, we won't even be able to come close to it. But I'm going to claim that the entropy is a more meaningful lower bound because we can always construct a symbol code that comes close to it in a well-defined way. So recall from the last slide that all uniquely decodable B-ary symbol codes have an expected codeword length that is larger or equal to the entropy, which you can calculate from this expression. And we would be able to achieve equality in this expression if we were able to set the individual codeword length of each symbol X to the information content of the symbol, so to the negative logarithm of P of X. But this is typically not possible because codeword lengths are integers, but the information content is not, at least not in general. So if you can't achieve the lower bound exactly, how closely can we approach it? We can find a simple upper bound by defining target codeword lengths L sub S that simply round up the information content of each symbol to the nearest integer. By the way the subscript S is not a variable, it's just short for the name Shannon. These target codeword lengths satisfy the craft inequality because rounding up can make codewords only longer. More formally, we can insert rounded up information content into the left-hand side of the craft inequality.  Now the logarithm cancels with the exponentiation and we obtain again the sum of all probabilities, which is one. Thus, L sub S satisfies the craft inequality, so by part B of the craft inequality theorem, there exists a B or E prefix code C sub S with these codeword lengths. Let's now calculate the expected codeword length of this code. The length of each codeword is by construction the function L sub S, which is the rounded up information content. Rounding up increases the value by less than one, so we can upper bound each term in the sum by the information content plus one. And then we can regroup and we obtain an upper bound that is given by the entropy plus one bit. So let's summarize. So far, we've derived theoretical bounds for the expected codeword length of symbol codes. I like to think of these bounds as the bad news and the good news. The bad news is that a uniquely decoded to be a re-symbol code cannot have an expected codeword length that is smaller than the entropy of a symbol. But the good news states that this lower bound is at least meaningful in that there exists a code, for example, the Shannon code that we just introduced, whose expected codeword length is less than one bit larger than the entropy. In practice, we're interested in the expected codeword length of an optimal symbol code because that's a quantity that we want to minimize over model parameters when we fit a probabilistic machine learning model. And the bad news and the good news allow us to sandwich this quantity from both sides. It's lower bounded by the entropy because this lower bound applies to all codes and it's upper bounded by the entropy plus one bit because the optimal symbol code is for sure not going to be worse than the Shannon code. There's one caveat though. So far we've restricted ourselves to symbol codes, so codes that essentially only operate on a single symbol. When we want to compress a message that consists of more than one symbol, then we simply apply the symbol code to each symbol and concatenate the resulting codewords. You might be thinking that this is kind of primitive and maybe you could come up with a better loss as compression code if you can somehow consider the entire message as a whole rather than chopping it up immediately into symbols. And you would indeed be correct. Symbol codes have a suboptimal bit rate because they always reserve an integer number of bits per symbol. Imagine for example, you wanted to compress a message that consists of three symbols, x1, x2, and x3. In this figure, the length of the green, orange, and blue bar indicate the information content of each symbol using the scale below. Recall that the information content is in general not an integer, but if you encoded the message, for example with Shannon coding, then each symbol would be mapped to a codeword whose length rounds up the information content to the next larger integer. So it's true to say that an optimal symbol code has at most one bit of overhead. But this overhead applies per symbol and so overheads add up if you have a long message that consists of lots of symbols. Unfortunately, many modern machine learning based compression methods transform the data before entropy coding to a new representation that lies precisely in the awkward regime where one has lots of symbols with often only a fraction of a bit of information content per symbol. So an overhead of up to one bit per symbol would really hurt for these methods. Fortunately, there's a practical solution called stream coding that we'll discuss in lectures five and six. But before we get to these practical methods, let's quickly generalize our theoretical bounds beyond symbol codes. So let's consider a uniquely decodable lossless compression code that doesn't have to be a symbol code. The code operates on some message space X, which might be the set of arbitrarily length sequences of symbols from some alphabet as we've discussed so far, but it doesn't need to be. However, note that the lossless compression code maps injectively from the message space to the discrete set of bit strings. So this only works if the message space is discrete. So for our theoretical analysis, we can interpret the generic compression code on X as a giant code book for a symbol code with alphabet X. And so the bit rates for messages in the original interpretation become codeword lengths for the symbols in the interpretation as a symbol code. The probability distribution of our messages can now be something very complicated, but as long as it has a finite entropy, the bounds for expected codeword length of symbol codes that we've derived in this video now give us a lower and an upper bound on the expected bit rate of an optimal code that operates on entire messages. And this is the famous source coding theory. In practice, it would be prohibitively expensive to construct a truly optimal code for long messages, but we will see that the stream codes that we'll discuss in lectures five and six typically have a really negligible overhead over the entropy. There's a somewhat subtle caveat that I've been glossing over a bit because I don't think it's particularly important, but I should mention it for completeness. Lower bound really only holds for uniquely decodable codes, and one could argue that unique decodability is not a crucial property for a code that operates on entire messages since in practice, one will rarely concatenate entire compressed messages without some form of container format or protocol. And it's true that if you remove the constraint to unique decodability, a code can indeed slightly violate the lower bound. The way it can do this is by encoding some of the information content of the message into the length rather than the content of the compressed bit stream. On the other hand, one can argue that at some point, some container must always store the length of the compressed representation. For example, if you save the compressed representation of some message to a file, then your file system must store the file size somewhere on your SSD. So at the end of the day, in expectation, lossless compression cannot beat the entropy. That's it for this video. On the problem set, which is linked in the video description, you'll walk through some simple examples of Shannon coding and you'll get some more intuition of the concepts of entropy and information content. This includes a kind of fun example in problem 2.4 that is so trivial that it is almost difficult again. I really encourage viewers to have a look at this problem because I've made the experience that it has helped students grasp the concept of way more than what learning equations can do. In the next video, we'll see how the theoretical bounds that we've just arrived manifest themselves in practical situations. We'll quantify the overhead that one gets due to an imperfect probabilistic model of the data source and we'll see how we can learn probabilistic models. See you there.


Hey guys, it's Leanne. And a couple weeks ago, I had the great, great pleasure of sitting down with one of my MeetingsMean Business Canada Communication Committee colleagues, try saying that six times fast, MMBC's Teresa Gatto, who also works with Ottawa Tourism. And what I loved about this conversation with Teresa is I was able to catch her off guard. She prides herself on being scripted and planning things down to the minutia. But today's tea time chat was anything but that and it allowed Teresa to really express herself and share her great, great passion for the Meetings Industry. So I do hope you enjoy my chat with Teresa. We do talk a lot about advocacy, the work of MMBC, what you can do to contribute to our great industry, and maybe some tips and tricks on how to get through this tumultuous time. So stick around for my chat with Teresa. So now, did you have to cancel any sun vacation plans because of COVID? So what we've been doing, we did cancel our vacation plans. We didn't have any major sun plans per se, but last year we went to Sharks and Shores. So trying to find, you know, a place to go for to keep my nine year old occupied with lots of things to do. I'm sure you've got the same with your two boys, right? Two boys, yeah. Yeah, two boys as well. So we did and actually they called me because I think that they were very excited to get people to cancel, unfortunately, because they were overbuffed. And they were still allowing people to go, I think, but they needed people to cancel in order to socially distance everybody. So we were scheduled to go, I think, at the end of end of July, beginning of August, so they were still open, but a lot of parts of their facility were closed. So we were okay to cancel this year, but we ended up doing some additions to our backyard and I ended up staycationing in our in our backyard. And how did you find that? Like, did you enjoy the experience of not being able to go anywhere but actually stay in your hometown? Yes and no.  But you certainly miss the hustle and bustle of, you know, going out and being somewhere and experiencing something different and unique, right? So I love to travel personally, you know, did a lot of travel with work last year in Europe and that kind of thing.  But just being able to go and meet new people too when you're when you're out and about and traveling and experiencing new places. You know, so it's kind of timely because I was on Facebook this morning on one of the event groups on there. And so Connect, which is a large gathering of event professionals and hotel partners in the US, they're meeting this week in Florida, I believe. Anyway, 1000 people apparently at this Connect event. Some people from my company, which is how I learned about it. And there's been a lot of pushback from event professionals about they weren't doing enough to protect people at the event. And so, so now I have to wonder Teresa, I have to wonder if we start meeting and we almost get events shamed, because we're attending events and, and the people now planning the events are they going to be shamed if they don't do everything by the book to try and keep people safe. So I feel for event planners I feel for the Connect team that's dealing with all of the feedback, good, bad and indifferent. Because all they wanted to do is bring people together to and and now there's so many in the community. Yeah, basically saying it's an event fail and which is devastating for the events industry right now we need event successes.  And, you know, we have to be able to demonstrate that we can meet safely. I mean, I think that onus is on us as an industry to be able to demonstrate that, but the time does have to be right so that we are mindful of the optics around that because, you know, we all want everybody traveling again and we want the the conferences to happen again we want the hotels full the convention center full we all want that tomorrow. But that can happen there needs to be a little bit of a process and obviously a plan and a strategy behind how we make that happen moving forward. I mean, I think what we have to maintain and what we need to continue doing is following public safety guidelines and the government and and really align ourselves, you know, with with what those restrictions are and what those safety protocols are. And you know that is very different right now between the US and Canada. I think so we were executing things a little bit differently and so we need to align ourselves and stay focused with that and I think from an advocacy standpoint what we need to be doing now is very similar to what MNBC is doing and having a seat at that table and like what Clark's presentation was to the House of Commons and just providing that education piece about having a seat at that table that the importance of our industry and the advocacy and the economic impact to be able to have a seat at that table to help develop the policy so that when we are able to meet again, we, we are able to be part of what that policy is and help develop what those regulations are to so hopefully that we can get that sooner rather than later but it has to be done right. It's not something that we can just rush into and do tomorrow, but ensuring that we have a seat at that table I think it's key right now to make sure that our industry is top of mind, because it is is affecting so many businesses within our industry. I think for a lot of us, it's the hesitation to just get on a plane, whereas if we wanted to go to event for you if you want to go to event at an Ottawa hotel you trust in the hotel facility staff to take care of you like they're doing everything possible to keep you safe when you're within their doors and you're just in your car you're not in a plane. Well, perceptions is something you know that we always we always struggle with especially in our industry you know people think we're an industry of party planners and you know they don't realize exactly what it is that we do you know we try. We've been talking about this for four years you know how do we get our messaging outside of our four walls were very good at talking to ourselves. So how do we break past that perception and I think you know, I remember saying on one of the calls when we were talking about planning for global meetings industry day this year. So earlier on in the year when we were trying to determine. How do we get our story and our message out there and how do we make it media worthy. Right. So what's going to get people to pay attention to what it is that we're doing that we are a $33 billion industry where we maintain 229,000 jobs right. How do we make that important to somebody outside of our four walls because we we are all very passionate about that and we can talk about that we know that. And so I remember saying on the call, you know it's almost like we need to look at this backwards, you know what happens if our industry did not exist. What happens if the bad engines, you know, but what's all your fault. You know what would happen if business events didn't happen, you know, and who would be affected who would be out of work and it's unfortunate that unfortunate and a silver line within this pandemic that this is something that is coming out and it's coming to the forefront is the impact of our industry and how important we are to employing and securing jobs and so many different people. It's just the economic footprint of one delegate that goes to a conference I think about any conference that you've you've been to right from the moment when you step out your front door you're taking a taxi to get to the airport. Maybe you're buying a coffee or something at the concession at the airport while you're there. You're hopping onto the plane you're getting into a taxi in the destination where you're at. You're shopping in the stores you're staying in the hotels you're eating the food at the convention center so it in the supply chain within the convention centers and the hotels. They're getting food from farmers. These are all people who are not not providing those services right now because there's no demand for it because we don't have people coming into destinations for conference and events. Connecting those dots for people that I think is this little bit of the silver lining right now with what's going on in our world is hopefully that people do realize that the housekeepers the front staff the concierge none of those people are working right now. And they will be working again when we can demonstrate that we can meet safely and I think we all have a part to play in that. Can you just share a little bit about how people can and should be sharing their stories about people who are meeting face to face. Absolutely you know we've had some stories coming in obviously right now, depending on what the government regulations are in each individual province. Right now there isn't too much coming in from from Ontario because of where our numbers are at. But we have, you know, over the last few weeks prior to the latest regulations coming through, you know people have been sharing stories about how they're adapting and how they are doing things differently in the hotels or how they are monitoring and controlling you know how many people are going in to venues at a time like it was 100 people like it was 100 people per hour that were able to go in there 50 per hour. And so those stories have been shared to us and we're collecting those and we're sharing them now on our face are all of our social media pages. We've a brand new LinkedIn page for mnbc as well so please everyone follow along to keep to keep a rest of everything that's going on and what we are sharing, we are sharing those stories to help create awareness and education. To everybody in our industry without outside of our industry but as well as hopefully government is able to see those as well as we tag, you know, take those people into the conversation. But the more the more that we get those stories out there the louder our voices the more that we are able to get that to the forefront, so that we can demonstrate that we can meet safely again. You can share them at stories at meetings mean business Canada.ca. Perfect and that link will also be in the YouTube description for this video so if you're watching this on YouTube right now, jump down to this description and you'll find that submission address. It's also the goals and objectives of an in person meeting itself and I'm wondering if a spin off from our current stories gathering campaign is a collection of stories of people who are seeing their organizations or seeing their mandates not meeting objectives because they couldn't meet face to face that that is food for thought you don't have to answer. So what what would you think of that because that's got to be happening. If you're not meeting in person.  So where are those stories. That is a very good point you know because you know like you're saying beyond the economic impact and what we do what is bring people together. And what do we bring people together to do right we provide that platform the venues the hotels to encourage that communication right and right now you know face to face isn't happening. You're not replaced face to face and what happens in those interactions. You know when you sit down you're breaking bread with somebody. You're looking in there in their eyes you know there's trust that is built with that that is very different. I mean even just you and I speaking right now virtually you know it feels different it's not the same. It will do for now, but it's not the same right so we bring people together and so when you think about you know large corporate groups that we work with they come in to do product launches. They come in to you know hype up their team for the beginning of the year and get that kick started and and you know share their goals their objectives that's their part of their communication plan. So you're right those those things those messages aren't happening anymore and is that same message being received in a virtual platform. We don't know that but that is a good a good thing for us perhaps to explore and I think Clark alluded to this to one. When he spoke on the Illuminates podcast as well that that this is something that we that we need also need to consider. It's it the trend and I'm and we're calling it here Teresa the trend is an extreme loss of intellectual capital, because we're going to lose all of those be a junior or senior sales managers and planners were losing them to other companies so not only are we looking at the loss of intellectual capital, but almost a return to the 80s where everyone is junior again, and we're building up a brand new slew of CMPs and we're, we're going to have to invest heavily in education to make all of these typically younger people are are coming into the industry armed with information, as opposed to when you and I started, well at least for me I am sorry I don't need to roll you into this but when I started back in the day their words wasn't those education programs and so we all had to kind of go through the CMP program to get educated. But all of that capital all that intellectual capital gone. It's all in other industries now and good on us for an industry creating some cross training where people like ourselves can maybe even get jobs in other industries be it in operations or project management or I mean planners can use planners can contact trace for a living I mean like we've got so many other options, given the skill sets that we grow being in this industry. But now the con is we're going to lose all of those people and hopefully there's enough money to bring them back. Well, and of course I mean and that's it and you know hopefully they do come back and you know where there is an opportunity there you know trying to you know keep everything positive and trying to look at the bright side of things because there's always both sides but you know perhaps there's there's skill sets and things that people are learning if they are leaving the industry in the short term that they can bring another new fresh perspective or learn something new coming back into our industry that can only make us even better and stronger. Coming, coming out of this because we will come out of this we will survive. It may look different, but we will come out of this and I was thinking to back to a call when you're talking about skill set and what it is that we do like as an industry know the planners in our industry are are very good at risk management and thinking on their feet and coming up with solutions we are a solution driven industry. And you know planners are you know they're just so amazing and how quickly they can think and you know I'm sure you can speak from experience as well and resolve things on the spot and and have control of things too. And I remember thinking back to a conference I attended in Seattle and I've seen this at other conferences too but for some reason that really stood out to me in this particular conference. And I remember thinking this planner has full control of where everybody enters the room, how they navigate through the exhibit space and where they exit. So that is something that we already have in our toolbox in our industry that we do well. And we can apply that now to how we meet moving forward with the safety protocols with the social distancing. We have control over that in working in partnership and collaboration with the venues in the hotels who are extremely open and flexible to having those conversations. Because we want people to meet again, we can do that so it's up to us to demonstrate that and to show that that we can do that safely. Well and it's it's I'm so glad to use the word mass gathering because there was a mass gathering that was planned very safely not too too long ago in Halifax and I hope they don't mind me telling this story. The hockey team in Halifax the moose heads had a game with 2200 fans that were all socially distanced so they could stay within their family cohorts but then socially distanced from all the other families and cohorts in the arena. And so I've been thinking about that one because that's a lot of people and that is probably even more people than a good chunk of the conferences we host in Canada. Why can't we go to an arena. I mean they did it. They can get in trouble like why can't we host a conference at Roger Center. Well and that's why we just thought it is absolutely and that's why we just need to continue having that seat at the table and I think that that's what you know mnbc and tyac and tyo and are having those conversations and they're doing a very good job at that and it's just staying in the government's ear and right now it's really the provincial government because they're the ones that are are giving out the regulations and scaling things back and moving things forward. So we want them to be aware of what it is that we do what our know how is what our background is what we've been doing for years and why we are good at it. And that is what needs to be the message that needs to continuously be hammered home and I don't think it's just one time you know it has to come from a whole bunch of different angles so for those people that are sitting at home wondering OK our industry is you know it feels like it's falling apart right now what can I do how can I help well you can have a voice so let's use it. You are a very active person and you volunteer in a number of capacities. You've been hit by the same pandemic that everyone else in the world has been hit by. But you have a great energy and a great enthusiasm and I'm wondering how how you get through your day today how you take care of you so that you can give your best to everyone that you meet in a day. But I'm so addicted to volunteering and just getting involved and that honestly helps rejuvenate me a little bit too because it gives me a sense of belonging and the sense of purpose. I really enjoy being a part of something bigger than me and then working with people on things that are not self serving for either one of us right so just being able to to be in the trenches and you know the business comes after that right like the volunteering you're doing for a totally different different purpose and those relationships and friendships that I've developed over the years because of all of that. It's just it's huge right and that becomes the support system to right so you have that support system within the industry as well and you have those additional friendships to. Yeah you you said it I think volunteering has more to do about relationships and it actually does about the work at hand although we're all furthering the mandate of whatever we volunteer for but you're right it's about relationships. What I love the best is that yeah as much as you say yes to things especially when it comes to volunteering and industry related things. You also have the power and the ability to say no like you did to your son's teacher and that's I think that that is what I'm going to take away from this is being my biggest tip is. There are some things that we just need to say no to and make room for the things that will truly energize us and benefit us right. But advocating for our industry is something I am so passionate about and back from you know the time serving with the MPI Toronto chapter board. I was actually part of the business events industry coalition of Canada which it was formerly meetings in Canada. And back in the day we were talking about you know organizing at Gima I was what was it called the National meetings industry day. And so working what I really liked about that was we were able to collaborate and bring all the industry associations together because it's very very comments that you know nothing can be done anything really truly successful you don't do on your own. There is a group of people that surround you that are with you to support you to collaborate and to think differently and it takes all those those thought leaders around a table in order to enact change. So that was very appealing to me and I learned so much from all those industry leaders so I tried to stay you know I was able to be on the board at that time because of my my MPI Toronto chapter role. And then just tried to stay involved over the years with MNBC in an advocacy role because I believe in what we do so much in the impact that we have on our industry but also on so many other industries that don't even realize that they are actually in fact part of part of our industry as well. So I think I'm really trying to be present in the moment and what's happening and you know looking ahead you know way far in the future I see a light at the end of this tunnel we will come out of this pandemic. We may look differently but you know everyone is using this time I'm hoping people are using this time to learn new skills and develop new accreditation I'm actually going to be taking the PCMA digital event strategist course in a few weeks. I think that begins at the beginning of November and it really to just I've always wanted to just always get into the minds of our planners as well and as a supplier. That was why I took my CMP course because I wanted to understand the things that the planners and clients that I'm working with what it is that they live and breathe on a day to day so I wanted to understand that better so that's the same mentality that I have with this course coming up is I want to understand that and I love learning something new. So for me I'm a huge advocate of professional development learning new things. So you know really trying to see what courses are available internally at work. I'm working on and you know worth with different professional development opportunities internally as well. For our entire team we're working with HR on that just because this is the time if we have a little bit more time and then let's use that for self improvement because at the end of the day that is only going to help what we do on a day to day basis and help make our industry stronger overall. Thank you Teresa I enjoy your company so much and I really enjoy working with you and you and I are going to talk lots in the weeks ahead. But thank you for joining me today and for sharing your wisdom with with the audience. You're welcome. Have a great day everyone. Take care. Bye bye.


St. Lucia's level of productivity and competitiveness is this week being thoroughly examined as the National Competitiveness and Productivity Council hosts the annual Productivity Awareness Week. Governments deliberate decisions to integrate the youth into the fabric of the local economy through the creation of the Department of Youth Economy, served as the catalyst for a deep dive into how young persons can be empowered and drive the economy. The National Competitiveness and Productivity Council, NCPC, cognizant of the importance of youth and its contribution to the development of St. Lucia, continued its observance of productivity awareness week, with a panel discussion aimed at exploring the topic, a strong youth economy as a catalyst for economic growth and national development. To accomplish this, however, Founder and President of the Youth Development and Empowerment Program, Anya Charles, said there are a number of hurdles that must firstly be overcome. Some of the challenges and limitations that our youth face, I believe, start from school. Not everyone is academically inclined, and schools offer conventional academia. But we do not focus on individuals with different skill sets. And this is by no means to say that the curriculum schools offer, it's not important. I'm not saying that at all. What I believe must happen or should happen, schools should determine skill sets outside of the conventional academia. We need to be able to nurture our young people's passions and dreams, and I think it's a question we need to ask ourselves. How do we nurture creativity from schools? Another limitation our young people face would be access to capital.  It is difficult for our young people to get access to capital to leave out those dreams. I also think lack of opportunity and lack of information. Again, not everyone is afforded the opportunity or the access to internet or networking. And overall, speaking of the right people, it's important that we need to educate our young people on the difference between limited liability and LLCs and overall legally registering their brand. Treasure of the St. Lucia National Youth Council, Steffi Alfred highlighted areas of priority for the youth economy. She noted that the youth economy is vast and should not be limited to entrepreneurship, but should be approached with a more encompassing strategy. One of the areas, because again, in my view, I don't think the youth economy is solely entrepreneurship. So entrepreneurship as a sector, entrepreneurship as a space where we are now developing young people. Financial literacy is a serious issue among St. Lucia and among people, generally. So when you look at financial literacy among young people, it's even a more serious situation. Our young people do not understand the importance of record keeping. Our young people do not understand the importance of filing taxes. Our young people are not taught. They're told, they're told, hey, you need to, you need to become an entrepreneur because we don't have jobs for you. You need to become an entrepreneur. But are they trained? No. So I think in all the development of entrepreneurship and everything that we want to do and going into sectors of VR, which are 100% the direction that we should be going as it relates to technology, but the basis of entrepreneurship is not being taught. Young people are not being trained in this section. Innovation is now the driving force of the youth economy. So says the Sa'afah Lewis Community Colleges head of the Innovation Hub and Gateways program, Brent St. Kaffring. St. Kaffring highlighting the need to capitalise on technology explained that the college is creating five innovation labs to address technology training for the youth. The first one is an ICT media lab. And this is where we want to get into as I spoke about app development, software development, animation and so forth. We need to get on board with these things in St. Lucia and we need young people who are more creative than older people that's been proven to get involved in that. Okay. The other lab we have and I'll try not to mention all of them. The other lab we have, which is very important is a virtual reality lab. And virtual reality is becoming extremely important right now. I mean, given the restrictions, the travel restrictions where it comes to COVID, we see people doing a lot of virtual tours and that is becoming a very profitable business. Also, in terms of education, virtual reality is a tool that has been used overseas that we haven't adopted here. And I'll give you an example. It's very expensive to do heart surgery and these things you go abroad. It's very costly here. We cannot afford the equipment and that kind of training. However, we can do it using virtual reality. You don't have to work on a live heart, but you can actually use tools and perform that kind of surgery, you know, within a safe environment, not on an actual person. I hope not. So what I'm saying is that we are developing these labs because we are aware that there is a transition and we need to bring the youth on board to be able to profit from that. The 2030 Agenda for Sustainable Development identifies the area in which urgent action is needed to ensure sustainable progress in human development. And among these, the employment of youth represents a priority area that is attracting growing attention. Former youth advocate Alex George Jr. explained that proper mechanisms must be implemented to determine pertinent data, including youth operated businesses, contribution to GDP and youth employment, to name a few. I think part of the challenge is first defining the involvement of young people across all these sectors. And but of course there are some areas where young people are gravitating towards. So culture and creative industries is certainly one of them. Renewable energy is another area. We were hearing of course, ICT in a very general way, digital economy. So a lot of these nice colors that we hear about, orange economy, green economy, that's young people there who can certainly be driving that. And I think the question is what do they require to be able to get better access? Now you may have a situation where let's say in the construction sector, you know, where you have set players, usually very large players, is there a possibility from the public sector side, can we provide some level of a handicap towards youth-owned enterprises so that they can get a share of the pie? You know, in terms of how we work in the tendering processes, do they get some sort of advantage? Do they get some sort of maybe a quota or some sort of idea where we can know across the government perhaps, in terms of public procurement, it should be perhaps worked in that we know that yes, companies that are driven by young people can in fact get part of that pie. The word youth by definition is the period between childhood and adult age. According to the United Nations, the global youth population is expected to total 1.29 billion in 2030 and almost 1.34 billion in 2050. From the government information service, I am General Norvel.


It is Spooktober, full force, full swing of Spooktober. We asked you to come up with your top three scariest players in the NFL. Let's go, Happy Halloween. Oh, nice. Who's at number three? All right. OK, number three on my list is going to be Patrick Mahomes. And it's kind of crazy that it's coming right after this loss. They took his first loss ever at the Denver Broncos. But the guy went from a fierce standpoint. Here's a perfect example. 2019, we were playing them in the AFC championship game. We were up by 10. And then all of a sudden he has a two minute drill. He and I ran the same 40. I've said that this show before. 4, 8, 5. Yes. And he goes, dances around, gets a touchdown going, and doubles up on us, and ends up running away with it and winning the Super Bowl that year. So this is a guy that no matter when everything seems like the chips are down, all that stuff, he is going to be able to be that guy. Are we ready for number two? And we're ready for number two. All right. Number two is going to be Tyreek Hill. The reason why Tyreek Hill, the guy's got over 1,000 yards already. He's got like 68 receptions. He's doing things that no one's really seen before. And I can't imagine the fear if you were called into man coverage being a corner.  And for whatever reason, the coverage called for you to be press man on Tyreek Hill. That's got to be top five most anxiety-ridden, scary moments, spookiest moments of your entire career. And you better hope the guy can get off the field without getting absolutely destroyed for six to go yell at the deco coordinator for absolutely putting you in that position. That is, that's terrifying. That would be terrifying. I wonder what he's dressing for Halloween, maybe as his future employment opportunity. I don't know, have you noticed his little mustache, too? He's got like the Fu Manchu going on? I don't, I try not to notice. Yeah, yeah, he's got the Fu Manchu, it's a wild look. Finally, Taylor LeWon's scariest player in the NFL is? Right, so if you're going to look at the, if you're going to look at just the stature of human beings, we talked about Nick Bosa, but the scariest person in the NFL. Too main, seems like Miles Garrett right now. That guy, if you look at him, just in one half against Indianapolis, two sacks, strip sack that ends up being a safety, jumps over an individual, jumps over a man and blocks a field goal. He comes over here as a guy from Jeepers Creepers. If you don't know that show, it's like a spiritual, like bat looking thing that every 23 years in the spring, he wakes from his slumber just to eat bodies. And so that is what this man's been doing. He's been eating bodies. And I love the fact that my man embraces the spook and he literally shows off his house, which is from a security standpoint. Somebody needs to talk to Miles Garrett about that.  That is beautiful.


And specially the meditation room. I gave that feedback outside as well. That was wonderful. It's amazing. The site which was arranged was based. Because all the models which were kept, the manipulers which were kept, they were very attractive for the kids. It increased their vision of what all they can be doing with their eyes and it was really good. She enjoyed Chaitanya and she enjoyed touching it. So that was amazing. It was also the sound fun. My favorite was the touch. Because she was telling me this is my favorite. So my favorite was my daughter's favorite. You face a crowd. Having yet so many kids, their parents coming for a lot of us. Although there are a lot of WhatsApp groups a lot. But it's a different thing meeting the personally group. This event is really, really extraordinary. The first word that came from my mouth was wow. The other part was the taste which was very much different. These are all very simple and very minor things which we do in today's life. But at the back of the mind, we are not so much conscious. These are also the things which they capture. But they are very apparent when they are being introduced to these things. It's a very practical learning process. So it should tell of all sense. Overall view is very nice. Because at this tender age they were taught about the senses. Which is a very important thing for them to understand. They were taught about all the senses. And they are able to recognize all the senses. They can speak about it. It's a lovely session. Only all of the senses were really made sense basically. Because all of the fine senses are actually important for any human being. And it has to be actually experienced rather than being told or being read. So this is one of the events where we as parents as well experience the actual fine senses. Art gets to the practical senses of all touching things. Then just smelling the things. It's a good thing. This is a very good experience for me. And it is a very unique idea. Children are learning by their experience. They are touching. And we are real experts. So the community is organized very well. So I am very happy. And I feel the same. If you try to teach in a bookish way. This is not going to be that interactive. You might not like it. The very important things. But here without them knowing they learn something. That's the way of teaching. Love making their video. Something is waiting for them. The ball effect. Children are participants. They are living like a book amount of information. They are paid plus. That's basic. That is also really good. Children are able to taste and get that expression. Suley. I didn't say a word because it is really nice. I was not aware of it. I was also knowing all these things. Coming here. Getting each food and understanding of the stuff. Now I know each ideas also. So overall I see. Eve is now able to understand the touch feelings. You will feel itself. Taste and all. I think they enjoy the meditation the most. This event and even all the events which are being held here. I think it is very well organized. It is very well suited for the kids. Because it is just for their development. To understand what is going on. Exactly to suit their mental development. And I feel it is useful. Congratulations to all the teachers. For the wonderful effort. And since it is a big hit. Thanks to the Montessori staff and the teachers. For organizing this wonderful event. And I must say my child is in the right education. We thank from all the parents. We thank the team of Global Montessori. For having such a beautiful event for these kids.