The observant among you will notice that I do not look much like Maté. Maté could not make it, so I am covering this talk for him. I'm Flynn, I'm a tech evangelist. Maté is a linker demaintainer. I am a tech evangelist, so that means I work in marketing, which means that if you have complex questions about this presentation that Maté did a lot of heavy lifting for, I will absolutely be able to make up answers and they might be correct or they might not, but let me know, you know, sing out if you have questions, we'll figure out what's up. The short summary of this talk about switching to Gamma without ruining your reputation is that as of LinkerD 2.12, we started switching away from some of our custom LinkerD-specific CRDs to things from Gateway API and this turns out to be hard. I will leave the question for whether we succeeded in not ruining our reputation for later and we're mostly gonna be talking at this point about kind of the nuts and bolts of how we went about it. Again, if you're familiar with LinkerD, you will know that we just shipped 2.14. Most of what we're talking about in this talk happened in 2.13 because that's when most of the heavy lifting for the shift happened. Between 2.13 and 2.14, it was much more incremental stuff as opposed to let's just rip out the underpinnings and put it all back together while we're still supporting everybody. So, setting the stage, raise your hand if you don't know what LinkerD is.  Okay, all right. LinkerD is a service mesh. If you imagine your typical Kubernetes cluster where you've got microservices all talking to each other, then the point of a service mesh is to go in kind of underneath your application and provide you security and reliability and observability uniformly without having to change your application. LinkerD does this by sticking sidecars next to each of your application pods. The sidecars then ruthlessly take over all of your network communication and that allows them to force it to be MTLS and to mediate a bunch of things and do retries and cool stuff like that and measure a bunch of things and provide the information to you. So you have uniformer observability across the whole call graph. It's pretty cool. Most of the time I do this, the control plane is an afterthought and I say, oh yeah, it's the thing that manages all the proxies. We're actually gonna be talking about some of the details of the control plane in this talk because that's where a lot of the magic happens when you're gonna switch and do things the gamma way as opposed to the LinkerD specific way. I should probably also have pointed out that the gamma initiative is the initiative that's trying to figure out how to take gateway API concepts which were originally designed for north-south traffic and make them applicable to service meshes east-west traffic. It's a acronym for something that I don't remember so I just remember it as gamma. I'm looking at Mike and Rob because they might remember this. Gateway API for mesh management and administration, gamma. There we go. Props to Mike Morris. So LinkerD actually gives you a lot of really critical functionality with no configuration at all. So for example, MTLS, request ways to load balancing, observability, you do not have to configure these things. You can configure things on the observability front. We'll talk about that. You can talk about how load balancing should happen. You don't have to. Then there's other stuff like almost all of the reliability and often things like that which you must configure because even with chat GPT we can't guess how that works in your app. We could use chat GPT and guess wrongly but that doesn't sound like any fun so instead we make you do it. But we at the same time try to limit how many CRDs specific to LinkerD we have to introduce because everyone we introduce we then have to go out and teach people about. And also everyone we introduce limits the transferability of knowledge across the whole ecosystem as a whole. This is one of the big wins of the ecosystem is that once you learn how a deployment works you don't have to relearn how a deployment works on some other Kubernetes platform, I hope. If you have to learn LinkerD specific stuff then if you want to go and use Istio not that you would want to do that but if you did want to do that you would have to relearn that stuff and to the extent that we can do it with standardized things your knowledge is more transferable and that is a win. So in the beginning there were service profiles. These actually showed up in LinkerD 2.1 all the way back in 2018. They are a very LinkerD specific thing that lets us talk about primarily metrics. So this service profile up there is saying anytime you are trying to talk to webapp.books.service.cluster.local that's a Kubernetes FQDN remember that concept. If it matches slash books and it's a post then we will record metrics for it under a bucket named slash books and if it is a get to slash books slash some number we will turn any of those into a single bucket called slash books slash curly brace ID curly brace that's not some funky templating thing those are literal curly braces because when you're looking at that in the LinkerD dashboards you don't really care about books slash five, books slash four knowing that it's a get to get a specific book is probably more useful to you. This is most of what actually that's all of what service profiles could do in the beginning. Then we extended them a bit to support timeouts and retries because it makes sense to talk about timeouts and retries on a per route basis not retrying the posts to slash books is probably a terrible idea retrying to get is probably not a terrible idea for example and once we did that we further expanded service profiles to talk about more configuration for retries for example again all things that make sense per route they cannot actually do routing stuff and this was a big limitation of service profiles so this will not work and they also couldn't do things like rate limiting and circuit breaking and all that kind of stuff. Fundamentally rate limiting and circuit breaking in our heads are routing and that will also become important later. I do have a bit of a confession to make at one point we wedged a secret API into service profiles so we could do traffic splitting for SMI we are not gonna talk about this anymore for the rest of this talk because it was never seriously considered for a thing to build on for Gamma because it was I think it's probably too much to call it a brutal hack but it was not something that was designed as a thing we could build on for the future so there was no serious consideration of building on that. Okay Lincordy 2.12 we bring in the HTTP route from Gateway API. Originally in 2.12 the only thing we allowed you to do with an HTTP route was talk about auth. So this is a piece of configuration where if you're trying to go to the book server which is a Lincordy specific CRD server but if you're trying to go to it and you're trying to do a post to books or you're trying to do a get to book slash number then this is a piece where you could then attach authorization policy to this HTTP route and that gave us the ability to do per route authorization which we could not previously do in Lincordy and it was very cool. Fundamentally this was a bet that we were placing on the idea that the industry standard way of doing this A was gonna be a good thing and B was gonna be Gateway API. The juries still kind out on whether both of those things are true but it seems to be very much trending in the direction of Gateway API being the standard which is also pretty cool, not least because it means that this bet probably paid off or probably is paying off and this is kind of a big deal Lincordy's implementation is very different from the other service meshes. The way we tend to approach things is pretty different so we have a fairly strong bit of culture within Lincordy towards just controlling everything ourselves. This was a bit of a departure from that. The astute reader will note that there are no backend drafts in the HTTP route I just showed you in 2.12 you still could not use HTTP routes for routing despite what the name says. We were using route as a noun and not a verb and this is kind of relevant. This is also one of two reasons why we brought an HTTP route in a different API group than Gateway API uses. First because we were sharply limiting what it could actually do and second because conformance was not a thing in this world. Okay, that brings us up to the end of 2.12 and the start of 2.13 where we started going, all right, we have service profiles which were designed for metrics and had some other things mashed into them. We have HTTP routes which are allegedly designed for routing and we have people, I guess I shouldn't even say allegedly, they were designed for routing. And we have people who are asking for routing features in Lincordy that we don't have right now. So great, now what? Anytime you're finding yourself asking that question, the first, the two questions you need to be asking after that are okay, what does our user want and what does our user need? These are not often the same thing. Sometimes they're at least related which is good. In our case when we talked to our users ultimately what they needed and what they wanted thankfully were full fledged traffic management all throughout the call graph. So they wanted things like fancy routing and canary deployments and the usual progressive stuff but instead of wanting this right at the edge of the call graph where an English controller can do it, they wanted it everywhere. Great, Lincordy could not actually do most of these things in 2.12. And we also were constrained by the fact that we couldn't toss out the features that service profiles let you do and that left us with two really obvious ways to approach this. Fundamentally we could extend service profiles or we could build on top of HTTP route. I will skip to the punch line here which is that ultimately we decided that there was more green in the chart for HTTP route so we decided to go that way. There are a couple of big things that I want to point out here because they've changed a bit. When we went to HTTP routes they didn't have retries or timeouts. They still can't do retries but they can do timeouts which is kind of cool and we support that. There's a bit in there about sharing policy and fundamentally what we're talking about there from Lincordy's point of view is if you look at the mechanics of service profiles if you have two routes that should have exactly the same policy you must create two service profiles which is kind of a pain in the butt. And there are a couple of things about HTTP routes where we had a couple of different ways that we might be able to do better than that and I'm conditionalizing that statement a lot because one of the things we've learned going through this is that some of the stuff around that with HTTP route is still kind of up in the air and we're not really sure what the right direction is. The other one I'll point out again is we considered it a plus that service profile was completely under our control and less of the plus that HTTP route was controlled by Gateway API but ultimately decided that it was worth it. So yeah, we decided to go with the HTTP route doubling down on the whole industry standard thing. If you are Lincordy, this also means investing in the standard as opposed to merely implementing the standard which is ultimately the reason why I'm now one of the gamma co-leads. Although as I pointed out at the Gateway API office hours yesterday I'm still not entirely sure how that happened since I work in marketing but yeah. All right, are there any questions so far about any of this? The question was do we, you know why go with our own API group for HTTP route and let's come back to that one because I talk about that a little bit later and please ask that again if you don't think I answered the question. All right, anybody else? No, okay.  I should also point out remember Mate was supposed to do this talk. He did like the lion's share and heavy lifting on these slides but let's just go and take it as read that any mistakes in this with respect to Lincordy's implementation will be on me and not on him. All right, so nomenclature. We have the control plane for Lincordy, we have a couple of workloads. Each workload has a proxy. I'm gonna emphasize that because in the early days of gamma this turned out to be a very surprising thing for people who are familiar with some of the other meshes which struck me as a little surreal because I'm pretty sure some of the other meshes do it the same way but yeah, we have two proxies involved and when workload one wants to talk to workload two it's actually workload one's proxy calling workload twos proxy. In a fit of originality we call those the outbound proxy and the inbound proxy. This is kind of important because the outbound proxy is where outbound policy happens which is primarily routing. Routing decisions have to be made before you make the connection. You can't make them after the connection is already made it just does not work. Inbound policy happens at the inbound proxy and this is primarily concerned with authorization. Checking off at the point of the connection going out does not work because you can then do all sorts of evil things if you're not checking it on the way in. The other thing I'll point out is there are several different controllers within Lincordy. We're only gonna talk about two of them the destination controller which is largely concerned with where a given connection should go and the policy controller which is largely concerned with policy and since we are mostly talking about gateway API used for routing things we're primarily gonna be concerned with the outbound proxy talking to these two controllers. This will become important in a bit. You'll also hear me talk about the load balancer. I am not talking about the thing that is a type of Kubernetes service here. I'm talking about a chunk of Lincordy that is responsible for making outbound connections. Ultimately, this is the piece of Lincordy that implements all the routing decisions which is slightly different than saying it's making all the routing decisions but it is the one that has to implement any decisions that get made. Oh yeah and it, the load balancer has to keep track of actually a lot of different things but for our purposes today really the end points are kind of the only relevant ones today. All right so if you're actually gonna be making a connection before Lincordy 2.12 and I'm going to go very quickly through this because if I go slowly through it will be here all day. The workload initiates a connection. The outbound proxy snares that connection then calls the service profile API in the destination controller which maps the destination IP address into a fully qualified domain name like workload.namespace.service.cluster.local hands that, sorry grabs all the service profile related info associated with that name and then hands that back to the outbound proxy. The outbound proxy then takes all of that information immediately turns around, passes the FQDN to the end points API in the destination controller which does not hand back a set of end points it hands back a stream of end point updates to the outbound proxy and the outbound proxy uses that stream of updates to feed its load balancer internally the load balancer pays a lot of attention to that stream to figure out which end points are part of the set which are not part of the set which it can use, et cetera, et cetera. I am glossing over a ton of detail in that particular bit I am hopefully only glossing over irrelevant detail. I guess we'll find out. One big example of something I'm glossing over because it's very important in practice but not so much for Gamma is for example if you are talking to an IP that is an end point IP rather than a cluster IP then there is no FQDN that we can associate with it but rather than just handing back empty stuff we actually hand back the default service profile for you. Likewise the load balancer skips an enormous amount of logic if it knows there's only one end point in the set things like that. You will also notice that I didn't say anything about the policy controller and that's because it didn't exist before 2.12 so nobody was talking to it, it wasn't there. In 2.12 everything is the same except we have to have information about HTTP routes but in 2.12 although we added the policy controller here the only policies it could deal with were authorization and that is inbound policy. So everything that I told you about pre 2.12 is the same because the outbound side of the proxy didn't talk to the policy controller at all. That brings us up to, oh no sorry that brings us up to a slide I forgot sorry about that. Interesting point about the policy controller is that it was the first controller we wrote in Rust by we I mean a bunch of people who were not me but also despite the fact that it's not written in Go it has to do all of the usual controller-y sorts of things that a Kubernetes controller has to do it has to go through and keep in touch with the API server and watch for updates and do all this indexing stuff and keep track of all the HTTP routes and all the usual crap. So it is a full fledged Kubernetes controller it just happens to be written in Rust because we think Rust is cool. Yeah, all right that brings us up to the point where we can start talking about gamma actually again. Good place to ask for questions, any questions? No, all right the first step for 2.13 pretty much could boil down to just add back in address what could be easier answer lots of things. One of the things that we tend to do working with Linkardy is ask questions about the user experience first and use those to drive the technical decisions rather than the other way around. If you ask questions about the technical stuff first and use it to drive the user experience you end up with user experiences designed for engineers which suck, so we don't do that. The UX questions kinda started with things like one of the big ones was great we're gonna try to do routing in HTTP routes what happens if a service profile on an HTTP route end up conflicting because we could already do HTTP routes for auth and then we had service profiles for auth and now we're gonna add routing so they're gonna become a bigger deal and ultimately the answer was let the service profile win and I apologize for not finding a gif of that scene from Star Wars with let the wiki win. Mostly this is the principle of least surprise. If you're already used to dealing with service profiles and some bozo sticks in an HTTP route without you knowing about it you would like for your world not to come collapsing down around your ears. So this is mostly a least surprise thing there were some technical things in that it lets us follow a pretty well trodden path of what happens if there is no service profile or if there is one that gets deleted and things like that we already had a bunch of that default code in there. Let's see. Do we think that decision has worked out? I think so. There were some rough evages in the beginning mostly dealing around places where the proxy could fail to notice that there was actually a service profile present or fail to notice that there was actually an HTTP route present and get stuck looking for the wrong one and ignore the one that was actually there. I think those have all been dealt with so far so or at this point so ultimately I think this worked out pretty well. One of the things that I like about it is that it is at least a deterministic thing. You can know how it's gonna behave and we can explain to you how it's gonna behave and these things are important. It was much easier to decide that than it was to implement it. Another big question was whether we were gonna be okay with feature gaps in the sense of are we okay with putting things into HTTP route that we can't put into service profiles and are we okay with allowing service profiles to win? Okay with allowing them to be used at all even given that there are things that service profiles can do that HTTP routes cannot do and the answer to this one was a very very reluctant yes. Mostly the way we ended up resolving that one was deciding okay we will prioritize putting the new stuff into HTTP routes. We will think very very carefully about backporting anything because we really really do not wanna do that but we will make it a deliberate decision to backfill everything from service profiles into HTTP routes and we're going to come back to that because there are some interesting ramifications of that decision. Do we think that decision has worked out? That is a lovely question we'll come back to that later. Conformance, yeah conformance, conformance is lovely. It was not possible for linkerd2.13 to be conformant with gateway API full stop could not be done. There are two reasons for this. The biggest one is that in the time frame that linkerd2.13 was being built gateway API did not have a concept of conformance profiles yet and so if you wanted to be conformant with gateway API you had to have an ingress controller which we do not. So couldn't be conformant done. The other reason in there is that and this gets to your question there were also things in the 2.13 space where HTTP routes still could not do things in linkerd that they were supposed to do for gateway API and so that was the other reason we pulled them into their own API group because there's no point in using the official API group if we can't be conformant. The moment we start using the official API group we will instantly have people coming up and bugging us about why are you not conformant and more importantly we will have users coming back and filing bugs saying dude you're using official gateway API things but X, Y and Z don't work and putting them in our own API group permitted us to sidestep those whole discussion things. Do we think these two have worked out? Mostly. Only mostly. We're gonna come back to this too a little bit. So the summary here. We were gonna let service profile and HTTP route coexist with service profile winning. We were only gonna put new things in HTTP route and we would need to backfill all the stuff from service profiles into HTTP route. I should point out that effort of backfilling everything is very much still ongoing. So, linker to users, if you have strong opinions about which things need to be backfilled first, let us know. Oh yeah, we didn't worry about conformance. All right, technical stuff. After we had all the answers to the UX stuff we could ask questions about the technical stuff. The first one was are we gonna do this under the hood as a shiny new API or are we gonna try to wedge all this crap into the service profile APIs? And the answer was let's do a new one. The biggest reason here was that if you look at service profiles and you look at HTTP routes, you will find some really fascinating places where trying to serialize them both to the same wire format is really, really hard. In particular, the way service profile approaches route matching and the way HTTP route approaches route matching are very different. If you look at the details of the spec and so trying to translate those semantics would suck, so we didn't do it. If we're doing a new API, do we put it in the policy controller or do we put it in the destination controller? We put it in the policy controller because Rust is cool. No, not entirely because Rust is cool. Mostly it was because if the policy controller is already talking to the API server to wrangle all this HTTP route stuff, there's absolutely no point in duplicating all of that API server traffic by making another controller do it too. We should just take advantage of having the information in the policy controller already and then do it that way. We also decided that we were not gonna bother trying to do any other gateway API types for 2.13. GRPC route is kind of obvious, but it's also not as well-defined yet as HTTP route and even if it were and we wanted to do it, we didn't have any bandwidths to do it, so whatever. That decision was mostly made for us. Okay, whoops, that's the tech Q and A summary, screwed up that slide. New API in the policy controller only support HTTP route and the way this ended up looking under the hood was that the workload initiates a connection, outbound proxy snares it, which it calls the service profile API and the endpoints API exactly the same way as it did before so it ultimately gets that stream of endpoint updates, but then it also has to go through and call the policy API, which has to do the same mapping, that's an annoying place where we end up duplicating work and then it returns a stream of updates with routing configuration. The outbound proxy then has to feed both of those update streams into the load balancer and the load balancer has to figure out how to honor both of them. That is the hairiest part in this whole thing, really. There's not really a good way to go through and merge these things, it's much more a question of the load balancer has to be able to figure out, oh look, I'm getting service profile updates so I should ignore HTTP route updates or I'm not getting service profile updates so I should honor HTTP route updates. Even after you do that it's still kind of obnoxious because you have to make sure that the load balancer is doing the right thing with the very different route matching rules and semantics, so this was a mess. This was the lion's share of the horror of what we went through here. We think we got it right at this point and I mean at this point we are conformant with Gateway API's mesh profile so clearly we got it right, right? Another thing that was kind of a mess in here is that in 2.12 what we did was we basically used a webhook to do validation of service profiles and HTTP routes and if they didn't validate with the webhook then they would get kicked out and then basically the policy controller never saw them and the destination controller never saw them. That does not line up very well with what Gateway API likes to do which is to use status to indicate things like this instead. Rob is smirking because Rob and I have had a number of discussions about how terrible webhooks are and yeah we didn't really want to extend the webhook anyway so let's be fair about that. So one of the big changes is also that the policy controller now when it sees an HTTP route it gets validated at the policy controller. If the policy controller doesn't like it it updates the status and then the part of it that's actually doing the policy API checks the status and says nope I'm gonna ignore that one it doesn't have a good status. So same result extremely different implementation. It works pretty well which is kind of nice. It did require us to do some first ever things like this is the first time in Linkardee that we've had to do lead selection leader election in a controller and we had to do it in Rust. I'm pretty sure that made it into Kuber and so that people who are trying to do their own controllers in Rust get to benefit from our blood, sweat and tears or probably more accurately from Eliza Weisman's blood, sweat and tears. So current status, did we ruin our reputation? We don't think so. I'm not completely sure yet but we don't think so. We have people who are using HTTP routes they seem to like it, that's good. This kind of change tends to be tricky to manage and there are 100% things that we did that we look back on now and go well that was a bad idea or that went a lot rougher than we thought it was. One of the big ones there is that business with the proxy going oh I'm getting HTTP route updates or I'm getting service profile updates. There's not a lot of feedback from the proxy about what it's watching right now and I can tell you from personal experience that this has resulted in some much trickier debugging sessions than I would have liked. So there are definitely things we need to keep going. Things that went well, starting with UX considerations absolutely critical. You really, really need to do this. I've said this multiple times at this conference. The end user, which usually for me is an application developer but for LinkedIn is not always an application developer. Considering things from the point of view of the end user is absolutely crucial.  Also having our own API group gave us an interesting vehicle for being able to try things out kind of in our own little sandbox as opposed to having to worry too much about conformance with the rest of the world and that permitted us to do some things. That was a positive and a negative actually. I guess we'll start kind of at the bottom of this one. The negative side of having both API groups is first off it's confusing for people and that turns out to be a pretty big deal. The other one is it's obviously more effort on the development team and if we had started at a place where mesh conformance was possible, I think we probably would not have gone that route. I think we probably would have just started with the core API type and rolled with it rather than doing our own first if we had not had to sidestep that conformance issue. Not having a good way to compose service profile on HTTP route is definitely causing pain for some of our users and that's a huge, huge priority for us to sort out. And yeah, there's still functional gaps between service profiles and HTTP routes. Lastly, what worries us about all of this? So every project using Gateway API in anger is finding that they're developing in advance of the specification. We are no exception to that and we're still trying to figure out how to do that. A good example there is retries where HTTP route-based retries, we do that differently than every other Gateway API implementation that we know of. We use budgeted retries rather than counted retries. So instead of saying you may retry up to three times, for us, you can retry as long as the total fraction of retries is not more than 20% of the traffic going to this back end. And Envoy recently added that, maybe somebody will pick it up, but until then we are the only implementation doing that and that is probably gonna make it a little challenging to get Gateway API to accept it. And then we get into fun questions like, oh, well, should we use policy attachment for retries? Should we use an extension filter? Should we do something else like cram it into the policy.linkerd.io API group directly and then use that as a vehicle for going back to Gateway API and saying, hey, this works awesome, you should do it this way? I don't know. I really don't, it's an interesting question. And also, as I said earlier, Linkerd has a strong tradition of directly controlling our own fate and so there's also some of that going into all this as well. Lots of ongoing discussions going on here which the three Gateway API people in the room can confirm there are lots of them and I'm probably being really obnoxious to them. But overall, we do believe it's possible to do this without completely ruining your reputation. We think that's a good thing. The user-centric design process is key. Thinking very carefully through how things are gonna look down the road, very carefully about how this will affect your users is critical, we see people miss that a lot. And lastly, the Gateway API folks actually are very welcoming to talk to. They have a lot of useful opinions. You should talk to them if you are thinking of doing something like this because you will probably be able to avoid a lot of terrible, terrible things going wrong. And with that, thank you very much. I think we have one minute for questions but I will of course be here or back at the Linkerd booth in the project for a billion or you can also find me as Flynn on basically all of the CNCF slacks. So, any questions? No? Am I gonna escape without somebody asking me something? Go for it. Because Rust is awesome. Ooh, yeah. Slightly less facetiously. The data plane is already written in Rust. And to the extent that we get to move away from having all of our maintainers have to know both go and Rust at an expert level, that's good for us. To the extent that Rust can become a viable alternative to go in the Kubernetes ecosystem, that's good for everybody. So, yeah. The fact that almost the whole ecosystem right now is written in one language with one runtime scares the bejesus out of me, right? All you need is one really nasty go runtime bug and the whole thing comes crashing down around our ears for a little while. I would much rather have a more diverse ecosystem than that. I should point out I have no knowledge of any bugs lurking in Go to make the whole thing come crashing down around our ears, all right? So, FBI, when you watch this talk, it's cool. Anything else? All right, thanks much. I appreciate it.


Welcome to NTN Nightly, I am Genelle Norville, this edition's top stories. The preservation of livelihoods and the environment is ensured by government with the signing of a vital MOU. The governor of the ECCB says the ECCU remains resilient in the face of adversity and celebrating St. Lucia's first centenarian for 2021. The Government of St. Lucia in collaboration with the Global Environmental Fund is continuing work on the integrated ecosystem management and the restoration of forests on the southeast coast of St. Lucia. Anisia Antoine has the details. The Departments of Agriculture and Sustainable Development have signed a Memorandum of Understanding for the Jeff 6 East Coast Southeast Project. The five-year project will focus on ecosystem management, landscape restoration and sustainable livelihoods on the southeast coast of St. Lucia. Permanent Secretary of the Department of Agriculture, Fisheries, Natural Resources and Cooperatives, Barry Morphilicier says the Division of Forestry will be assisting in establishing at least one marine protected area as well as the restoration and rehabilitation of mangroves, seagrass beds and coral reefs. Further support will also be given to farmers so that they can engage in value-added services such as agro-processing. So within the Department of Agriculture we have three critical departments that have to work collaboratively with the Department of Sustainable Development and other stakeholders including the local community leaders and community groups to execute and implement the project activities. So we are at the Department of Agriculture committed to making this project a success and with the signing of its MOU we used to formalize our commitment and we look forward to working with UNEP, Jeff, the project coordination team to make better the lives of every St. Lucia. Deputy Permanent Secretary of the Department of Sustainable Development says the signing of the Memorandum of Understanding marks a milestone for the Jeff 6 East Coast Southeast project as the Department of Sustainable Development continues to address the lack of integrated protection of the ecosystems on the southeast coast. The MOU clearly outlines the rules and responsibilities of the Department of Sustainable Development and all the divisions of the Department of Agriculture. It will provide guidelines for the cooperation and collaboration between the two agencies. We look forward to working with the Department of Agriculture and to strengthen the collaboration between the departments under this project. The Jeff 6 East Coast Southeast project is estimated at approximately 4.4 million US dollars. From the communications unit of the Ministry of Agriculture, I am Anisia Antoine reporting. When the second school term opens on Monday, January 11, there will be rigid guidelines for janitorial staff to follow to ensure the health and safety of all. Chief Environmental Health Officer Parker Ragnanan says a cleaning regiment has been developed by the Ministry of Health which details when and how surface areas are to be cleaned. We recommend that for cleaning and disinfecting that there are one of two or both solutions that can be used. One is sodium hypochloride and that is 5,000 parts per million. Generally you find sodium hypochloride in household bleach or ethyl alcohol, 70% alcohol can be used as well and there may be areas where you cannot use bleach but you may be able to use the alcohol and that has to be determined as well. As far as our classrooms are concerned, we are looking at ways to improve ventilation within the classrooms and it means that if there are windows to try as best as possible to keep these windows open, their loavers keep them open, ensure that there is a constant exchange of air and there is adequate airflow within the classroom setting. If there are some buildings that are air conditioned, then we need to ensure that these rooms are adequately aired out. Upper garbage disposal is also being advocated and supervised. We are asking that attention be paid for regular removal and disposal of garbage because we recognize that some of the garbage may be a little infectious depending as to what is in there.  However, we are asking for special consideration be given to the management of solid waste on the school environment and on the compound. School janitors and cleaners were asked to report to work from December 28 to 31, 2020 to ensure the proper sanitizing and cleaning of schools. The Eastern Caribbean Central Bank is experiencing its largest shock on record. So says Governor of the Eastern Caribbean Central Bank, ECCB Timothy Antoine, during his Christmas address. A decline of 16.2% has been projected for the Eastern Caribbean currency union, ECCU, as governments continue to grapple with significantly lower revenues while simultaneously expending considerable amounts on COVID-19 response measures. The governor noted, however, that the ECCU remains resilient in the face of adversity. Despite the economic and financial fallout occasioned by the pandemic, our countries have responded relatively well and our region is thankful that we have experienced only a small number of deaths. Additionally, we are grateful to have been spared the ravages of major hurricanes. And second, we placed on record our performed gratitude to all our frontline warriors in health care, together with security, border control and essential workers, including the media. The ECCB predicted, however, that the ECCU will bounce back from the current situation, building even stronger in the future. Governor Antoine also highlighted the ECCB's plans for the future. We project the ECCU will grow by 5% next year, as tourism, a dominant export, slowly recovers. The ECCB will implement the program of action for recovery, resilience and transformation approved by the Monetary Council in October. The actions include boosting food and nutrition security, increasing our use of renewable energy and accelerating digital transformation. The ECCB will also unveil its new five-year strategic plan. Governor of the Eastern Caribbean Central Bank ECCB, Timothy Antoine. St. Lucia and the wider region are paying glowing tribute to the late Gordon Butch Stewart, who died this week. The founder of Sanders Resorts International established three of its 15 all-inclusive luxury Caribbean resorts in St. Lucia, employing some 2,000 island residents. Tourism officials hail him for his significant contribution to the vital sector. More in this report. Gordon Butch Stewart, the man behind the largest contribution to St. Lucia's tourism industry from the private sector, has passed on. The all-inclusive resort pioneer and founder of Sanders Resorts International died on January 4th, 2021, at age 79. Prime Minister Alan Shastney eulogized Stewart as a visionary, recalling the impact of the hotelier's business on island, beginning with Sanders Regency. He came in and he did the most remarkable job of transforming Sanders Latok, which really was a hotel that was a beautiful hotel, but was always under-delivered. I mean, if it had a 30% or 40% occupancy, that was a lot. And Mr. Stewart transformed this completely and put St. Lucia on the map. Prior to Sanders coming to St. Lucia, you would spend 15 minutes trying to explain to people where St. Lucia was. Afterwards, you would go to Chicago, to Charlotte and all these cities and all of a sudden, because there was a Sandals in St. Lucia, people knew where St. Lucia was. The island's tourism minister, Honorable Dominic Fede, hailed Stewart a legend who will be genuinely missed. The world has seen Caribbean tourism in a way that Mr. Stewart has made such a significant difference. And I'm always very proud whenever I travel in global forums and I see that a homegrown Caribbean company is the world's leading all-inclusive company. It's a source of inspiration for me and it tells us what we can do in these islands if we believe and we have the courage to fight to get what we want. And he will be thoroughly missed, very strong leader. Recognizing the trailblazing efforts displayed by Stewart in the local sector for almost three decades, the St. Lucia Hospitality and Tourism Association president, Carolyn Trebettskoi, also offered tribute saying, quote, we have lost one of our most revered and respected Caribbean tourism icons. Gordon Butch Stewart was a pioneer and a perfectionist of an all-inclusive Caribbean hospitality model that other brands could never copy or come close to. The success of the brand over several decades speaks for itself. We must also thank him for his mentorship of and the countless career opportunities he created for Caribbean nationals surpassed only by his considerable philanthropic work through the Sandals Foundation, end quote. Sandals Resorts employs approximately 2,000 individuals on island at four properties. Sandals Grand St. Lucia Spa and Beach Resort, Sandals Halcyon Beach Resort, Sandals Regency Golf Resort and Spa, and the Sandals Golf and Country Club. Mrs. Stewart has no doubt contributed significantly to the development of tourism in St. Lucia. He's been here since 1990 and he operated some 800 rooms across three magnificent resorts. Employees about 2,000 people and create business opportunities for hundreds of small medium and large businesses. On the regional front, the Organization of Eastern Caribbean States Commission also described Stewart as a visionary and stated that his brands gave prominence to the Caribbean with its quote, extensive international marketing and the extraordinarily high standards of hospitality and customer satisfaction that he defined, end quote. From Miami, Acting CEO and Director General of the Caribbean Hotel and Tourism Association Vanessa Ledesma said quote, our industry will forever be indebted to Butch for his continued passion for excellence and legendary Caribbean hospitality. His vision has bestowed to the global industry, a Caribbean organization that adheres to the highest standards of excellence, celebrates and promotes the region's uniqueness and invests in the development of our people and communities, end quote. Prior to his death, Stewart was reportedly working on resort chain expansions in St. Vincent and Curacao. He is survived by his wife, seven children, 12 grandchildren and four great grandchildren. For the government information service, I am Jesse Leance reporting. The Division of Human Services is celebrating another centenarian. Victor Roseman Smith achieved the monumental milestone of reaching his 100th birthday. Mr. Smith, born on the 1st of January, 1921, is the last surviving child of 10 children. He was born and raised in Saltybush Resale. Mr. Smith was a farmer who was very passionate about his cows and gardening. His family shares fond memories of him entertaining them with his folk stories and playing the guitar on rainy days in his younger days. Mr. Smith has been a resident of the St. Lucy's home for the past 10 years. He is the first centenarian at the institution. Although he is bedridden and his speech is faint, his jovial nature remains strong. We celebrate Victor Roseman Smith, St. Lucia's latest centenarian. This is NTN Nightly. Stay with us. Primus Hutchingson is up next with the NTN Nouvelle Aquial. Be aware of and follow water conservation practices. Here are a few tips to help you save water. Wash dishes in a basin of water instead of a running tap. Soak pots and pans instead of letting the water run while scraping them. Check toilets for leaks by putting dye in the tank. If color shows in the bowl without flushing, there is a leak. A leaking toilet can waste thousands of gallons of water. Use a bucket instead of a hose to wash cars and reuse grey water from laundry to water plants. Water conservation reduces energy consumption and strain on the water distribution system. Conserve water whenever possible and remember every job counts. A message brought to you by the Water and Sewage Company Incorporated, Wasco. Welcome back. We join Primus Hutchingson for the NTN Nouvelle Aquial. It's official touristic to make it clear that I have made this arrangement to place the plastic bag in a way to address the situation of the COVID-19 pandemic that has devalued the equity of these jobs. Moreover, the equity has still been closed to the country because the COVID-19 pandemic has failed automatically. Minister of Touristic Affairs, Mr. Dominic Feeney, declared that there is already a point of action for the chain sector of the tourist sector to comply with the situation of the COVID-19 pandemic in England. According to the Ministry of Education, what it has done in prison is to establish a diverse technique to allow the plastic bag to be placed in a way that can be used to encourage the tourist to go to England to visit the people who are working at the hotel. So, the West is open to the work of the employees and to continue the work of the aircraft. The result of the COVID-19 pandemic is that the aircraft that fly to England to settle the situation of the COVID-19 pandemic has been closed to the country because of the COVID-19 pandemic. The hospital has been closed to the country because of the COVID-19 pandemic. The hospital has been closed to the country because of the COVID-19 pandemic to effectively address the needs of the people who are working at the hospital. Minister Feeney, I think there are a lot of problems with the people who are working at the airport because they have to find a way to test the people who are working at the airport. That is why I think it is very important to start with the question of whether it is necessary to have a problem so that the people who are working at the airport can continue to travel. I think it is very important that the tourists who are working at the airport visit the people who are working at the airport so I think that we must give the people more money to go to the airport because there are more than 423,000 tourists who have visited the airport who have been here since the summer of 2019 because we are seeing many more people who will take the trip away. Minister of Education, I have many questions for the people who are working at the airport That was on the 11th of January 2021. The school had to close quickly because of the corona virus. It was very bad. But otherwise, the head of the Education Office, Dr. Fiona Mayer, had to do a lot of protection to ensure that all students and the institutes had to protect themselves from the corona virus. Let's talk about the discussion. Dr. Mayer explained to us that the teachers had to go to school a week before and receive all the support needed. And next week, we'll have to arrange a place for the school to live. Let's see. A week before the school came, a week after, we opened all the schools. I joined SIPO, HOD, MINIS, and the Health Department, who always supported us. They helped us, too. They said it was good, it was good, and it was perfect. With the situation like this, we opened the schools. With the schools that opened, we pushed the schools that had less children. We opened them on Monday to Friday. That's not a problem because we didn't have more children than the schools. But we had more children than the schools that had more children. We couldn't have opened the schools like this. And we had to wait for the school to come. We had to play for three days a week with the school that had a cycle. Because the second day of school, we had to work for six days a week. So Monday, it was Monday, but it was Thursday, Monday, three, four, five, with six. But we wanted to try, because we had to come three times a week to help. Dr. Meyer, because we had to pay for the school, we didn't have to neglect the students because they didn't have to go to school. We had to do as we did before. We had to listen to the teachers. That's 24 schools that are in this situation. But all the other schools are open, the same school we had before. But we had to change to do everything we could.  We had to be careful. We had to be vigilant to protect the students who are affected and who also support us when we go to school. The plan for the school is to discuss the representation in the NTIA GIS studio and the Ministry of Education. That's Dr. Gilry Gilbert, head of the Office of Education. That's Dr. Fiona Meyer, head of the Office of Education and that's Pakra Ragnan and Abamilot Officier. This government, and other countries, other countries in Karebla, promised to support the PICVS as they continue to do Volcan-la-Sofuye activity, which I have been very active in. Volcan-la-Sofuye started to be affected in December of last year. Since then, the authorities have confirmed that Volcan-la-Sofuye has been affected by the pandemic. The Minister of Education, Mr. Alen Shasne, has said that the situation is not bad, but at the same time, he has prepared for Volcan-la-Sofuye to be more active. Minister Shasne also said that he has started to organize events like the exhibition and that he has put in place for Volcan-la-Sofuye to be exploded. This is a very important country. You can also participate in the discussion on this which is not done in Zoom, I have said it in the video discussion in front of the public. Like Volcan-la-Sofuye, people can start to think about it. Since December 3, 2020, the Minister of Education, Mr. Alen Shasne, the officers who have conducted the research on Volcan-la-Sofuye. The University of Uyjore, which is in the U.S. with the officers in the morning, said that the pandemic is not a serious matter, it is an activity of Volcan-la-Sofuye. It is a serious matter, but at the same time, he has ordered to pay for the situation in advance. Mr. Shasne said that the government in Uyjore depends on the authority of Volcan-la-Sofuye to be able to conduct the research in the direction of the European Union. Mr. Alen Shasne said that it is also necessary to address the situation in a domestic way, and also to prepare to work very closely and in a way that the government also needs to carry out. Mr. Shasne said that the discussion should continue in the best way that it is necessary to serve the people, especially those who are not allowed to leave. He called for this to continue to provide for the people and to serve them in a situation like this. And Mr. Alen Shasne, this is the end of this news. Thank you very much for listening. I have to go to the invitation. I have to wait. Excuse me. I have to go to the invitation. I have to go again. If you want to know I will visit you a lot. I will. I will visit you. I will visit you all. I will.


Hello, so we continue from where we left off last time we were trying to derive the Fourier expansion of a certain periodic function cooked up out of the Gaussian e to the power minus t squared we took the Gaussian e to the power minus t squared that is a rapidly decreasing function and we use this function to create a 2 pi periodic smooth function and we were about to compute the Fourier series for this function and use the point wise convergence theorem. So, let us look at what we are done. So, go to the slide we look at equation 1.23 look at this function f of t which is displayed in equation 1.23 last time I explained to you that this function is a smooth 2 pi periodic function and so the Fourier series will converge everywhere it will even converge uniformly but we do not need that right now. So, we computed the coefficients it is an even function. So, the sin terms will be 0. So, b n's will be 0 we computed a naught and this is the calculation for a naught and we found that a naught is 1 upon 2 root pi and we can calculate a n's in a similar fashion and it is an exercise for you to compute the a n's and check that the Fourier series is exactly what is displayed in the slide 1 upon 2 root pi plus 1 upon root pi summation n from 1 to infinity e to the power minus n squared by 4 cosine n t. So, we put back the definition of f of t and we look at this display 1.24 summation n from minus infinity to infinity x of minus of t plus 2 pi n squared equal to 1 upon 2 root pi plus 1 upon root pi summation n from 1 to infinity e to the power minus n squared by 4 cos n t equation 1.24 which is displayed in the slide this is a remarkable identity on the left hand side you got the one set of exponentials and the right hand side you got another set of exponentials with a cos n t thrown in you can put in t equal to 0 and we can see what you get. So, the more general version of this is what we are now looking for and the more general version of this will give you what is called as a theta function identity instead of the function f of t instead of 1.23 or rather in this equation 1.23 you throw in a parameter tau you throw in a parameter tau under the exponential. So, you look at f of t equal to summation n from minus infinity to infinity x of minus tau times t plus 2 pi n the whole squared. So, that is a modified the function f suitably of course the series must converge. So, the tau if the tau is real it must be real positive if it is negative then the series will diverge. So, you want the tau to be real positive or you can allow the tau to be complex, but then the real part should be positive. So, the tau must have positive real part. So, if tau has positive real part then following exactly the same ideas again you see this function of the left hand side summation n from minus infinity to infinity x of minus tau times t plus 2 pi n the whole squared that function is a 2 pi periodic function with respect to the variable t tau is fixed throughout the discussion. For now tau is going to be fixed you should think of tau as a parameter and you should think of t as a variable with respect to t it is a 2 pi periodic function. So, you can go through the same steps again and you can compute a naught a n's b n's again it is an even function. So, the b n's will be 0 you can calculate the a n's you will need the formula for the Fourier transform of the Gaussian that we computed last time that will be needed without that you cannot proceed. So, that is exactly why we did that Fourier transform computation the Gaussian. So, you can prove this equation 1.25 by appealing to the point wise convergent theorem you find the Fourier coefficients write down the Fourier series and you equate the original function with its Fourier series why can we do that because the function whose Fourier series you are trying to compute is actually very smooth and we know the point wise convergence theorem is true for hurdle continuous 2 pi periodic function here it is much, much, much better than the holder continuity it is actually infinitely differentiable. So, equation 1.25 is the equation that we are talking about in this equation 1.25 let us put t equal to 0 and the cosine term drops out and in place of 4t let us put u. So, the left hand side reads summation n from minus infinity to infinity e to the power minus pi squared n squared u on the right hand side the 2 has been taken under the radical 1 upon root u pi summation n from minus infinity to infinity x of minus n squared by u equation 1.26 this equation 1.26 is a very important equation ok. So, I already told you how to go about proving 1.25 and 1.26. Now, we define formally the Jacobi theta function the literature on theta function is very vast there are several different types of theta functions and so what we are displayed here is usually denoted by theta naught as this function theta naught of tau which is equal to summation n from minus infinity to infinity e to the power minus pi n squared tau where the real part of tau is positive 1.27 that is a displayed equation what we have derived what we have derived here instead of u I replace u by u upon pi if I replace u by u upon pi 1 pi will cancel out of here and 1 pi will appear here and 1 upon u pi will 1 upon root u pi will get replaced with simply 1 upon root u. So, the equation 1.26 with u replaced by u upon pi will exactly give you equation 1.28 this equation 1.26 has been recast as equation 1.28 this is called the Jacobi theta function identity the theta function I said the real part must be positive and now I can think of this theta function as a function of t but think of the theta function as a function of t it is holomorphic in the right half plane of course then you will ask me what is the meaning of root t in complex analysis when I write root tau I must explain which branch of the square root I am talking about and below I am explaining which branch of the square root I am talking about. So, the root tau appearing in equation 1.28 is defined as root tau equal to square root of mod tau mod tau is a positive real number and this one is a unique positive square root plus x of i by 2 argument of tau tau is in the right half plane. So, take the principal argument the principal argument means that the principal argument will vary between minus pi by 2 and pi by 2. So, that is the definition of root tau and with this prescription the theta function that you see in equation 1.27 is holomorphic in the right half plane this theta function is going to play a very important role in what is to come. In fact, it is very fundamental in number theory I will give you some nice references for theta function there is a reference of Bellman which is very readable and very beautiful account of theta function. Now, we need some information about how the theta function behaves as tau goes to infinity and how does it behave as it goes to 0. Now, look at infinity now look at equation 1.27 this you have got this exponential factor and as n becomes larger and larger this this exponential function will decay more and more and so for positive for real positive if tau is real positive as you go down the infinite series it is going to decay very very rapidly. The only term which does not decay at all is when n equal to 0 and n equal to 0 you just get 1 and so as tau goes to infinity. So, as tau goes to infinity the behavior of the theta function is like 1 it behaves like 1 and of course I just take in the first term 2 times exponent of minus pi tau the others are even smaller than this. So, I can take this 2 exponential of minus pi tau outside and what will be what will remain is going to be some bounded thing. So, big O of 1 means this stuff that I am ignoring here is bounded. So, this is the behavior of the theta function for real tau large real tau as tau goes to infinity we need it for real for real tau only we do not need it for complex values of tau. Then we also need the behavior of the theta function when t is real but close to 0 as tau approaches 0 plus along the real axis. For that you need the functional equation 1.28 by staring at 1.27 you will not be able to understand the behavior of theta function near tau equal to 0 because when tau is close to 0 what happens is that although the n becomes larger and larger when tau becomes indefinitely close to 0 there can be some balancing between this n square the large n square and the small tau there could be some kind of balancing and all the terms in infinite series may actually end up contributing. So, analyzing the behavior from 1.27 is going to be pretty difficult, but from 1.28 it is very easy because when tau is close to 0 1 upon tau is very very large and when 1 upon tau is large positive real then we know the then we can use the previous discussion and so consolidating we see that when tau is positive and close to the origin 1 upon tau is very very large and so by using the functional equation 1.29 and the previously discussed behavior we can consolidate these two discussions and we can say that theta naught of tau behaves like 1 upon root tau plus something which goes to 0 very fast faster than a constant as tau goes to 0 plus as tau goes to 0 plus this term blows up and the second term will go to 0. So, this is the behavior of the theta function near the origin we shall need this very soon because we are going to be manipulating integrals an infinite series involving involving these things the theta function identity 1.28 is equivalent to the celebrated functional equation of Riemann. So, let us recall what is the Riemann zeta function the Riemann zeta function zeta z is defined to be the infinite series 1.31 you see the infinite series 1.31 in the display zeta z equals summation n from 1 to infinity 1 upon n to the power z this series will converge when real part of z is bigger than 1 that you have studied in your elementary courses the p series test as you would known as it is known in elementary courses. So, applying the p series test you see that zeta zeta z the series converges absolutely when real part of z is bigger than 1 and it converges uniformly on compact sets and so, the sum function is a holomorphic function in the half plane real part of z bigger than 1. Now, we want to extend the zeta function analytically just as the gamma function can be extended analytically strip by strip by integrating by parts the zeta function can also be analytically continued by converting this summation into an integration we will do that later and by successive integration by parts I will indicate how to do that. And the theorem says that the function zeta z extends analytically to the complex plane minus 1 1 is a pole it is a simple pole and the residue is 1 actually and satisfies what is non-trivial is that this analytic continuation of the zeta function satisfies this beautiful functional equation 1.32 that you got gamma z by 2 zeta z pi to the power minus z by 2 you simply replace z by 1 minus z and you get the right hand side the left hand side goes to the right hand side the right hand side becomes the left hand side under the substitution z going to 1 minus z of course this is not going to make sense when z is 0 or when z is 1 because the zeta function has a pole at 1. So, this the left hand side has a pole at 1 the right hand side as a has a pole at 0. So, z equal to 0 and z equal to 1 has to be left out and because the zeta function is analytic on the complex plane minus the minus 1 the gamma function here has a pole at 0 minus 2 minus 4 etcetera will it when you put z equal to minus 2 this becomes gamma minus 1 when you put z equal to minus 4 this becomes gamma minus 2 gamma function has a pole at 0 minus 1 minus 2 etcetera. So, this so this pole must get cancelled out because right hand side when you put z equal to minus 2 observe that this gamma factor has a problem when you put z equal to minus 2 this particular factor does not seem to have a problem. So, it must be compulsorily follow that the zeta function must have a 0 at z equal to minus 2. So, that that 0 will cancel the the pole of the gamma function. So, the zeta function has trivial zeros at minus 2 minus 4 etcetera these zeros cancel the poles of the gamma function and of course, you know the famous conjecture of Riemann that other than these trivial zeros the non-trivial zeros the trivial zeros are minus 2 minus 4 etcetera and the non-trivial zeros they all lie in the strip they all lie in the strip 0 less than real part of z less than 1 Riemann conjecture that they actually lie on the line real part of z equal to half that is a famous Riemann hypothesis which even today remains an open question. So, we shall derive this celebrated result of Riemann from the theta function identity that we have just derived. We have derived a very important theta function identity namely 1.28 from using 1.28. In fact, this 1.28 is basically the Riemann the Riemann's functional equation in a very different avatar when you this functional equation and the Riemann's functional equation are related via the Mellon transform. Normally that is the way it is expounded, but we shall avoid the use of Mellon transform completely. We shall directly prove that how 1.28 implies 1.32. We shall be following this book of Richard Bellman a brief introduction to theta functions which was published in 1961. It is an old books published more than 60 years ago, but it is a very beautiful book very readable book and it would be a marvelous project to read Bellman's account. So, let us begin with a very very simple observation. Let us begin with a simple observation equation 1.33. One can directly one can directly perform this integration. One can directly perform this integration. How to do this integration? Put n squared pi t equal to u or rather think of Laplace transforms integral 0 to infinity e to the power minus lambda t t to the power s minus 1. That is a Laplace transform of t to the power s minus 1. You know that the Laplace transform of t to the power s minus 1 is gamma function divided by t to the power s, but evaluated where evaluated at this parameter value. So, this integral 1.33 is readily computed it is gamma s upon n to the power 2 s into pi to the power s or if you like put n squared pi t equal to u and you reduce this integral to a gamma integral and you will get it. So, 1.33 I will consider it as done very elementary. Now, put n equal to 1 2 3 etcetera and add. So, summation n from 1 to infinity integral 0 to infinity e to the power minus n squared pi t t to the power s minus 1 dt equal to gamma s is common pi to the power s is common summation 1 upon n to the power 2 s n from 1 to infinity. What is that summation exactly zeta to s? So, when I put n equal to 1 2 3 and sum I get on the right hand side gamma s zeta to s pi to the power minus s. Of course, the real part of s has to be bigger than half otherwise this infinite series will not converge.  The other thing that you need to do is the summation which was outside the integral has now gone inside the integral in 1.34. When you exchange an integral and an infinite series you need to justify the exchange of limits. You could use the dominated convergence theorem from measure theory if you have studied the dominated convergence theorem or you can do some elementary estimates and whatever be your favorite way to justify the exchange of two limiting operations use that idea and you justify this exchange of summation and integration and you can take the summation inside. When you take the summation inside you begin to see the theta function staring at you. It is not the complete theta function. This should have become the theta function if the summation goes from minus infinity to plus infinity. If it were minus infinity to plus infinity you will get the complete theta function. You get part of the theta function. So, now let us try to see how this summation is related to the theta function. So, summation appearing within the integral is of course related to the theta and we must invoke the functional equation for the theta function that we have derived. We have taken a lot of trouble to derive the functional equation for theta and that has to be used. Now first before you do any of those things let us replace the 2s by s. Let us replace the 2s by s. So, this will become zeta s, gamma s by 2 and so on. So, let us do that simple change and let us write let us rewrite the previous equation as integral 0 to infinity t to the power s by 2 minus 1 dt, gamma s by 2 zeta s pi to the power minus s by 2. Because I made the change of variables now the real part of s is bigger than 1. So, what is the g of t? The g of t is basically this stuff that appeared under the integral sign. The summation that appeared under the integral sign summation n from 1 to infinity e to the power minus n square pi t I am abbreviating it as gt. But this gt is exactly one half of theta naught t minus 1 equation 1.35 you can easily verify the right hand side is one half of theta naught t minus 1. Okay, so let us put this gt in the integral. Now what we need to do now is to take this integral from 0 to infinity break it up as an integral from 0 to 1 and an integral from 1 to infinity. So, integral 0 to 1 gt t to the power s by 2 minus 1 dt plus integral 1 to infinity gt t to the power s by 2 minus 1 dt that is the right hand side gamma s by 2 zeta s pi to the power minus s by 2 real part of z is bigger than 1. Okay, so let us proceed further flag this 1.28 this is the most important identity beautiful identity 1.28 this equation has to be expressed in terms of our function gt that is a very simple algebra that is pure algebra and that algebra will give you gt equal to minus half plus 1 upon 2 root t plus 1 upon root t g of 1 upon t. So, the theta function identity in terms of the new function g simply 1.38. Now substitute this expression for g in the integral that was there from 0 to 1 in the previous in the previous page in this integral the first integral from 0 to 1 gt t to the power s by 2 minus 1 here we use the expression that we are just obtained this 1.38 we just put that over here then what will happen we will get 3 terms we will get t to the power we will get t to the power s by 2 minus 1 t to the power s by 2 minus 1 that factor is there that factor has to be multiplied with minus half after that you have to multiply the 1 upon 2 root t and you have to perform the integration from 0 to 1 I have performed the integration from 0 to 1 that is that comes out to be 1 upon s into s minus 1 then this particular part 1 upon root t already t to the power s by 2 minus 1 was there because 1 upon root t it became t to the power s by 2 minus 3 by 2 and the g of 1 upon t so that is the integral the other integral I have not touched so far and right hand side of course I have not done anything now exercises show that this integral 0 to 1 g of 1 upon t t to the power s by 2 minus 3 by 2 dt is integral 1 to infinity g u u to the power minus half minus s by 2 du well no prices for guessing I made a change of variables I put 1 upon t equal to u that is what I had done the integral from 0 to 1 became integral from 1 to infinity so far checking that the left hand side equal to the right hand side is just a simple substitution 1 upon t equal to u what you need to further verify is that the right hand side of 1.40 the right hand side of 1.40 is an entire function of s what do your entire function of s it is holomorphic throughout the complex plane how do you check that this is holomorphic throughout the complex plane you can differentiate under the integral sign as many times as you want every time you differentiate with respect to s you are going to pick up a log u factor no matter how many times you pick up the log u factor this integral will converge it is exactly for these things that we derived those 2 behavior of the theta function these 2 things 1.29 and 1.30 these expressions were derived exactly for such purposes of proving that this right hand side is an entire function the other thing that we have to do is that the following integral appearing in 1.39 is holomorphic in the plane real part of s is bigger than 0 so this is going to be holomorphic on this larger half plane so the left hand side of 1.39 so this part we know exactly has a pole at 0 and it has a pole at 1 this middle part is an entire function and this third piece is holomorphic in real part of s bigger than 0 but the right hand side was defined for real part of s larger than 1 so this equation 1.39 this important equation 1.39 has given us an analytic continuation of zeta of s on the larger domain real part of s bigger than 0 right because the left hand side makes perfect sense on real part of s bigger than 0 except at s equal to 1 except at s equal to 1 so that is the most important conclusion that the that we are analytically continued the zeta function on real part of s is bigger than 0 okay and the left hand side of this equation doesn't change doesn't change when I replace s by 1 minus s if I substitute if I make the substitution s is going to 1 minus x the left hand side doesn't change that you can check very easily that I just combined the two terms that appear I combined the two terms I combined the two integrals that I got this 1 to infinity and this integral from 1 to infinity I just combined them into one integral and I found that I get this so this left hand side of that equation doesn't change under the substitution s going to 1 minus s so the right hand side should also not change and when I replace s by 1 minus s on the right hand side of 1.41 what do I get I get the celebrated functional equation of Bernhard Riemann equation 1.42 in the vertical strip between 0 and 1 I have established the functional equation of Bernhard Riemann how to extend it for the whole of complex plane minus 0 1 I will explain in the next capsule I think this is a very good place to stop this capsule and thank you very much.


y in perpetuity and so really you can't say pressure and I understand that I can and I think all of us should because that's what is necessary a strategy to put pressure that needs to be joined up by every major player and here I do have some hope about China not because I think they want democratization but because they've had a very bad experience in Burma very recently they've overstretched there's going to be a parlor game for a generation to figure out why did the reform process in Burma start but almost anybody who speaks will say that one element was an overreliance on China China had too big a footprint in the case in Cambodia today as well there's a resentment building towards China because there seem to be propping up the regime in Phnom Penh so in short we need a strategy, it needs to be joined up it needs to be led, the United States is in a position to do that although who knows what the next administration is going to be interested in doing but we haven't seen that in the past and I'll just give one cautionary tale in my mind the first five years after UNTAC were the most important UNTAC was cast for what we have right now and the international community failed miserably they didn't stand up to Hun Sen after his coup they didn't stand up to him in 1998 when he staged a very bloody election and killed many many opposition members we saw monks floating corpses of monks floating down the Mekong and the Tonle Pesach rivers in full view and they stood back they stood back and they let it happen because they decided the devil they knew was better than the risk it would take to try to sort the problem out and I'm sorry I'm not trying to be alarmist but I believe we can see the same scenario happening in the coming years if Hun Sen it tries to put a lid on this pressure cooker which is building in Cambodia quick final thought thank you just quickly on the three questions I think there is no threat to sovereignty to engage with the international human rights system there is a threat to sovereignty if you don't because violations of human rights fuel conflict and conflicts bad for sovereignty so that's our basic argument on that a couple of that you have specific provisions of the peace accords, the treaties being a member state of the UN that requires you to engage with that on Samora's points about in out leaving too fast I think that's exactly the point there's a lesson that's been learned not just in Cambodia but in many countries if you look at Burundi now and Central African Republic and so on and it's really what's behind these initiatives like sustainable developments sustaining peace it's about thinking longer term and trying to connect the dots better and make sure that everyone is brought under these the benefits from these processes in a really effective way on enforcing the treaties human rights generally I would refer to the working group on business and human rights which has been looking exactly at those issues of private sector engagement and so on it's a mechanism of the human rights council and it's done some interesting work in Cambodia this is my final thought it's the thing I'm most proud of that we used the treaties the treaties are part of Cambodian law we brought a case with NGOs to the constitutional council on a specific issue of children being locked up for misdemeanors in effect and it was a a confluence of issues of the judiciary feeling under pressure and not applying the conventional rights of the child that case everyone said would fail because the constitutional council had no authority and power and because it wasn't clear that the treaties applied but the constitutional council ruled that the treaties do apply and the court started to enforce it and it was in an area where these issues, these big issues of the political context weren't coming through so much and it showed that you can do useful human rights work on the ground to make a difference and my assertion is why I'm so proud of it is because I know that there are thousands of children that never ended up in a Cambodian jail because of that ruling and that's an important gain for us in an area where there's an awful lot of lack of success well thank you let's end on a positive note I apologize to those that did not get a chance to ask their questions the two takeaways that I have from this one is from the first panel and the great observation that there is no end date on the Paris peace accords and this idea that and I think it's useful to think about what does the signature mean of all the countries that supported that and other peace agreements in terms of an obligation to see those commitments through over time and I think we've heard some recommendations on ways that that implicit commitment maybe can be fulfilled even today and the second thing is Brad highlighted in others cost of early decisions obviously nobody can predict the future and the consequences if you choose different paths I think it's always a good reminder that those key decisions shouldn't be taken lightly and you should at least envision future paths and not see it as a short term versus long term choice but rather two long term choices that need to be weighed carefully and realistically against each other let me close with thank yous thank you both to Laura McGrew for helping to organize as we mentioned earlier this would not be possible if it wasn't for Rachel Vandenbrink who's standing in the back she's contacted many of you instrumental and super hard work in bringing this all together so thank you Rachel and finally let me thank the audience clearly many of you have a long investment in Cambodia and we'll have a continuing one thank you for being here I'm glad that we could raise this issue commemorate the 25th anniversary of the Peace Accords and look ahead to future engagement so thank you all


Welcome to WTIS 16 in Khabarovn in Botswana. I'm very pleased to be joined in the studio today by Mr. Onko Kame, Kitzu Makaila, who is the Minister for Transport and Communications in Botswana. Minister, thank you very much for joining us in the studio today. Thank you for having me. I'd like to start off by talking about the Measuring the Information Society report. Why is the MIS report important to Botswana? Well, as I say, if you can't measure it, you can't manage it. And therefore it's important to know what target you are working towards. And so this is very important to us. What is the message that Botswana, do you think, will be taking from this year's WTIS symposium? I know we're here in day one, but looking a little bit ahead into the next few days. Well, as a country and a developing country for that matter, you want to know what your other neighbours are doing. You want to know what is happening internationally. And therefore you don't want to know where you are ranking, because your attractiveness is dependent on your, for instance, ICT penetration, ICT availability, infrastructure, and all those things. So it's very important for any country in its development agenda, it must understand where it is positioned, because that directly affects its attractiveness. And in what ways do you think that ICTs are assisting Botswana in the drive towards the attainment of the UN Sustainable Development Goals, the SDGs? Absolutely, in many ways. Capacity development in us understanding what we should do to be competitive, what we should do to have the right infrastructure in place, what we should do to have a proper agenda to follow. All those are the areas. And finally, I'd be interested to know what steps is Botswana putting in place to ensure that no one is left behind in the digital economy? Well, first of all, understand that Botswana is a very big country. 582,000 square kilometers with a population of 2 million distributed all over this country. And therefore the chances of those who are far removed from where the centers of the economy are are likely to be left behind. So what government has decided to do was to set up a company called Boffinet, which basically has laid out broadband infrastructure all over the country, fiber optic networks. It has bought into the access to the sea from Wax on the western coast and AZ from the eastern coast basically to ensure that nobody is left behind. We've also involved private companies to come partner with government. For instance, we've targeted populations of about 5,000 where we know it's not viable for the private sector to go. Government would subsidize those private companies to work with them. When the populations get to around 10,000, then those companies obviously can stand on their own. We've also done many studies. Apart from just the census, there's a reversal access study that was done, which basically looked at all sorts of things, assets you earn, health, education, all these things to determine how we know who might be left behind. So government has done all these things. These are things that we are looking to measure against to see how we make ICT accessible. Well, we wish you the very best of the future and thank you very much for joining us in the studio today, Minister. And please do check our other videos on the ITU YouTube channel where you'll find more enlightening and informative interviews and other such videos, which I'm sure will be of interest. Thank you. Thank you very much. Thank you.