I'm not saying that again All right, good morning Also awkward to say it the first time Let's go. Okay. Well even better. All right, so welcome everyone to the meeting There is a jam-packed agenda. These are these agendas getting longer and longer But the hours are not getting longer and longer, so we'll see how much of this we get to if not We'll go to the next week As always always better too much than too little so just as a release status we mentioned last week that The new version of the CA had gone out The biggest announcements in terms of the ongoing agenda, which I'll click over to is anyone who was on the contributors call this week I guess I have to log in Heard some of the the status updates for things that we really hadn't gotten good status updates for in a little while like your BFT Jason Yelik shared that He had been dragged into a few of the things because that's that's common for Jason. He knows everything So he's always helpful on anything but that work is continuing along and I don't know if you Know a better than I do Pam. I'm sorry. I know you're taking notes, but Was there a date put on that? You know No, he was I think he mentioned you supposed he was hoping to have something Something ready by the end of the quarter. I don't know. Yeah deliverable or consumable or But whatever he was working on Yeah So, I mean that's good. I mean this has been on the I mean as I mentioned every week 33 I mean, that's like a you know buffalo nickel. That's pretty old so It'll be good to see, you know, how that's going to look I'm excited to see how that How that'll turn out because there's some exciting performance based Enhancements there in addition to an additional security So the channel participation API, I think this work is going pretty well As you all know this basically allows I Don't know if bypassing is the right word But you don't have to use a system channel anymore the interesting thing as far as this group's work will be is how we choose to kind of dock this is You know, are we going to recommend the system, you know the participation API? Over the system channel is it just going to be two different options, you know Crucially will the samples, you know, you know with the test network, which one will the test network do? Will it be a second second network? I think a lot of these decisions have yet to be made and you know, maybe even the discussions haven't started So what I get to the end of this and we can maybe mention that or we can put that on an agenda for a future time But I think it's worth thinking about how we choose to dock this as And where it will sit in a recommended process perhaps in samples So the transaction library as you all know basically simplifies channel configuration updates and presumably creating Genesis blocks and things like that the Deployment guide we have these meetings at free Thursday or every Thursday when we're all around We started kind of focusing on the peer Dave and you're put together a quite excellent Google doc where he talked us through a bunch of the most important config Parameters and so that was really exciting to see that and to be studying that and so that work. I think is going pretty well You know, we have a turnaround on these a couple of months, so we'll see how quickly we can get this one kind of in So the samples that's an agenda item for later in the meeting if you want to give you know The 15-second version of that Chris. I know you're kind of on those meetings and I'm not Yeah, so the big news this week the 15-second version is is that the right your first application tutorial has been Almost completely rewritten about 90% of it had to be rewritten to reflect the new basic asset transfer application interaction with that the associated chain code, so So this this is like a makes me nostalgic because that was the second back. I worked on when I got this job Privilege of writing it and other people have contributed to it since then and I have to make another minor commit to it today But the the gist of it is is that I laid it out How I how I found it most effective to learn it from a user perspective instead of a you know, a really experienced dev perspective And and what I did was I have it and I'll show this later when I share the screen is We show the application code for the JavaScript application and then in snippet form And then right below that we show the associated chain code function snippet that it actually calls And then what the expected terminal output should be when the application runs That way as the user steps through if they know exactly what they should be looking at and how it interacts with How the application interacts with the chain code So yeah, so that's an agenda item. We'll get into a little bit more a little bit later So just to finish up these last two pieces here the snapshot and checkpoint I haven't heard as much about this It's very difficult thing to achieve technically because there's concerns about does everyone have to take their snapshot of it Or checkpoints at exactly the same block and how do you achieve that? So this is one where I haven't heard as much about it. It's Something that everyone wants. It's just about how difficult it is to really achieve it from a technical standpoint and The program model work as far as I know is going well. Anthony always gives me updates that, you know, they're optimistic about this So I don't think anyone on the call really is involved with that intimately So that's the basic updates As far as development roadmap Stuff that's not on here, you know the token work apparently still is going I mean that's kind of not as we said On this list, but we'll see when some of these bigger ticket items like the BFT and tokens and stuff kind of become available So the next piece here is the Asia Pacific study circle. I don't know really much about this. I don't know David you This is a one for you. I don't know much about it. Does anyone know we may be able to skip I mean, I I do know a little bit about it that it's happening You know, they're going through the fabric docks there. I think it's something and Nina's running I don't know any Detail specific updates for this. I mean, I think it might be something Anthony was wanting in general to carry over from the eastern hemisphere call I don't I don't know if there was a specific update to share. So he's probably fine to skip for today Well, my other things seem like it already happened Well, they happen weekly. Oh, okay Okay All right, so maybe we'll table this and and for the next meeting. I'll try to learn more about this and see what what the deal is So the next piece here is a women in blockchain event. I remember you went to one of these a couple weeks ago or a couple years ago Pam There's no link here here. I can dig up to the link. It that also just happened recently. It's on the YouTube channel Also run by Amina here. I think it was more just an FYI. There were the recording is available I'll dig that up and put it in the chat. Okay. Cool. Thank you. Appreciate that And then we have our international languages. I don't know if we have anyone who is on the other languages other than you or not but if you guys want to What the updates here on The languages I've seen a few of these emails kind of going around Yeah, uh This week I Did the merge and helped me to meet to the marriage of my last last changes in the repository and I I call it I Tried to reach out Brett Logan, but they don't answer me about to make the CICD of our Repositories, I don't know what's what's happening with with Brad You know why they are not answered or Request or something I Don't if you Do you want to shoot me an email I can see if I can Yeah, yeah, because last week we talked about to start to work into to publish it the language documentation and the Integration pipeline that the bread is working needs. It's essentially to do that. So yeah It's important to check what's happening Beyond that I I inclusive Claudio send a message in the Arshad because yesterday I talked with the Latin American group. They started to work And They created The poor quest is six seven and they need a help to approve To have a baseline of Spanish language in your repositories So if someone else could take a look in this this poor quest, it's it's could be amazing to to then to to Go ahead in the process of the translation It's been a Spanish translation What kind of help do they need? They need to to approve because I'm not assignment to approve this report this request. I don't know why Russian Shinies is is is it's a sign in to approve but not not Signing also so I can help them. So if you can then look this poor request And in the proof they can have that the baseline Release to to working on our repository. Yep. Okay, I'll take a look the same same the same way if you can authorize the the American Latin American people to Manager his own branches. It's could be also Amazing because they they have About 10 people's and they can Managing himself, I believe Okay, it sounds like their own code on our file with maintainers in there. Yeah. Yeah And the the the last thing about the international languages is the work that I I doing with David and We have the first version of a Brazilian Portuguese Hyperleg front page translated. So it's a Working in progress, but it's been amazing. I don't know if they would like to say something about Yeah, I definitely yeah, thank you, Renato for providing the translation for that and it is exciting that we're now going to be able to translate The home page for the hyperlegious site. I put that on the agenda Not to jump ahead a little bit But I think in my mind, that's a great way for us to make sure that people are finding these You know the fabric docs as we translate them, you know, the homepage gets obviously a lot of traffic And how do we make? You know as we make these translations available How do we make sure that people are seeing them? So, you know, I'm I want to I want to talk about Making language specific landing pages on the home page and then being able to point the language specific resources such as the translated doc So, yeah, thank you, Renato for helping us do that. Yeah, that makes a lot of sense Yeah, I don't I don't want to jump ahead. We can talk about it when we get to it The question would be what what other you know resources do does a language group want to point to? Yeah, and Brett's defense this issue which we're gonna talk about later has taken up I know a good amount of his his time because we might have to switch versions of Sphinx and Python and all kinds of stuff So it's become kind of a black hole of effort So, yeah, let's let's get with Brett and make sure if there's simple approvals I need to happen. We can just make this happen so that people are unstuck So the next piece down here is sample status Chris yep, I'm gonna share my screen here. Hey, let me stop my share Y'all see my screen there. Yep. Yeah So first thing is is that a week Nobody needs to Hey, Jim, I think you need to be maybe sure So if we if you pull down the latest fabric samples In the asset transfer basic folder This is the first part that we're working on these other ones are being work but but this is the one that replaces fabcar and You'll see here that the structure is that if it's prefaced with the word application It's the application code in that folder and if it's prefaced with the word chain code It's the chain code application piece. Okay, so you'll notice that we have the go chain code sample the Java sample the Java script sample and the type script sample and We've added Java Into the application side along with Java script now You don't need to match the application to the chain code. You can use Java script Application to call any of these chain codes if you start your test network with them just to be clear on that so the latest one that we did and have or I have been working on has been the Java script application and What we did was we used this as the basis for updating the write your first application tutorial and that tutorial what we've done is We've updated the use the fabric test network tutorial already We've updated the deploying a smart contract to a channel tutorial again. This uses Basic and there's been changes so we'll have to go back and and refresh those with some new commits, but In writing your first application This used to say about fabcar so all references to fabcar have been removed. This is on master branch by the way So it's merged into master, but it's not back ported yet into 2.2 So so what we've done is we've rewritten most of this There are some of the images that were still relevant that were left in there And it steps through the tutorial steps through on how to run the application in the chain code And the prerequisite section is pretty much the same We talk in here about the availability of the other types of the of chain codes and Then the the most I think the biggest change here is that We're not using cryptogen in this section here explains that when you use the CA flag on starting the test network We're actually using the certificate authorities. I think Nick had had that note in there before and we just kind of revamped it So hey Chris it used certificate authorities before but it was hidden under the CA flag was hidden under The fabcar script Certificate authorities, but they didn't get to they didn't get to see what they were doing Yeah, and I think this specifically calls out to that we're not using cryptogen so that the user knows that It's actually the CA coming up And so so what we're what we're doing here We leave a note where we're saying, you know, look when you when you run this command This is what's happening behind the scenes. It's using the peer Chain code lifecycle to package install query and approve For those ors and then it tells you what your expected Output should look like You go through the npm install tells the user what they would see after they did that their their package chase on file And have JS on so forth Gives the option to run in a new terminal the CA logs. All this has been tested and it works Then you actually start the app now instead of interacting when you run app.js here It steps through everything right so it it goes in it, you know There's a note here that says what you have to do for prerequisites Essentially, that's have the test network up and running before you run this thing, right? Which is why it's first in the tutorial But effectively it enrolls the admin registers the user imports the ID into the wallet and then it starts running through The corresponding function calls to the chain code. So init ledger get all assets Create an asset read check to see if an asset exists update and and read an update and then update where we know that an asset doesn't exist so that we Purposefully return an error so that you can see what that looks like So the tutorial was written to match The application and if you look at that whoops if you look at the JavaScript chain code if I open this to the side Just make this big for a second You'll notice that the steps it matches right so so it's done this way on purpose so that the user can consume What's going on if you're like examining the the code or if you're examining the tutorial in the snippets in it so when this calls this Chain code function and it ledger.  If you go down into the chain code and you see get all assets, this is the function that's being called So it's it's a one-to-one. It's set up kind of neat and and the tutorial Is effectively written to that regard so when we get down here to where you're looking at so we talk about What happens in the sequence when app.js runs? It enrolls the admin user it registers and rolls the app user and Then the application prepares for the connection to the channel in the smart contract Which is this and you'll notice that these snippets match what's in in the app, right? So and Then if we go down here, we get we get to where we actually start interacting, you know where the interaction happens and So you'll see that the sample application and is Called out here and there's a snippet the corresponding chain code function for in it ledgers below it and then we show what the expected terminal output would look like and It's it steps through the same for each one in there. So that's that's kind of the layout and We talk about typing and sequencing of those and why it's important for those to match kind of give the user a Thing there. This is one of the things I have to fix with a commit today Is this isn't in a code snippet something happened in the formatting there same with this terminal output But effectively you get the gist that that's that's what it should look like One of the things that we did was we put a note in here. I put a note in here that talks about how When the register and enroll It is done it clarifies to the user that it's not It's not happening as an interaction between the application on the chain code that piece happens as an interaction between the application and the certificate authority so that's just I Mean that's just Here's the note right here So it's important to note that in rolling the I'm going to register in the user our interactions take place between the application the CA Not between the application and chain code and in fact if you go in and look at the chain code, which is here You'll see that there are no There's there's nothing in the chain code that actually supports registering and rolling the user So it helps make that clear to a first time user that may not be familiar with fabric But that's effectively what's going on in the background So that's that's it for now The next thing to be worked on is I'm going to be refactoring chain code for developers Is going to get turned into a tutorial call It's going to get refactored into a tutorial called writing your first chain code It'll be based on the go chain code But it'll still have reference to the other ones that are available and it'll It'll replace the simple asset chain code tutorial with the asset transfer that's in the go chain code So that's pretty much it for me. But you have any questions about that So it'll be basically developing the chain code that we already have in samples, right? The writing your first app chain Yeah, so if you if you come into the go chain code here Into the chain code folder It'll be based on this chain code here So there has there been any thought to renaming writing your first apple writing your first application It's fine. Is this going to be writing your first chain code? Is that yes? It's going to be refactored from chain code for developers to writing your first chain code. Okay. Yeah Does the chain code development mode work on 2.x? Don't know yet Yeah Simon stone. I asked him that question. He said he was would look into it because it was a dependency for the VS code, but he was Skeptical, yeah, I haven't got that for yet But that's Pretty much it Nick left big shoes to fill so Nick and Joe both so you guys have done a lot of work on these it actually made my job a lot easier to come in here and refactor these So you do those to you. Yeah, I need a ticket for a spin. I've been busy, but I'll try to Get it together sometime soon and go through it. We should probably update the read me for I don't know if it's already been updated, but the read me for fabric samples Tell them that fab cars deprecated and had the tutorial for the basic chain code Yeah, I think that's on the work list in the fabric samples work group, but I Might I need that's a good. It's a good plan. We need to go back and revisit that if it's not Just everyone knows one of the fabric samples meetings. Those are what Tuesdays, right? That's like Yeah, is that one that work? Tuesday at nine. Okay So 10 Eastern time Okay, gotcha. I just I get confused very easily. I keep thinking America ends at the Eastern border of Texas. I'm sorry That's where the United States of Texas starts. That's a different kind of thing All right So the next item here is something I remember I mentioned a couple months ago But now this has kind of become more important with translations about anchors so For anyone who doesn't know the there are no Almost no anchors in the fabric docks as it is You essentially have to derive the anchor from the name of a section and It has a standard formatting that it uses to derive those anchors But in general we haven't used them and we haven't created special anchors And this is a problem because in a translation, of course people are translating the anchor Are translating the name of a section into their own language and so the anchors are not consistent from language to language So I know this is a problem. I haven't been involved in discussions run out of between you and Anthony So I don't I don't know where kind of we are if there's a consensus gathering around how to address this Yeah Be honest I A little bit comfortable to do what to do what I do now that is take the original anchor and create Explicitty Mark in the code and it's to work and fine Uh, because in the end of the day any solution that I can See today, we work. Uh, he working if you understand why I tried to say so The solution is you don't you don't think it's there's no one solution. Everyone's gonna have to figure out their own things What you're saying? Yeah. Yeah, but I'm not The specialist here so in my Uh, a simple Point of view a simple way of of see this this problem. It's working. It's it's working fine I create a workflow where I take the the original anchor create a Directive in the content it's working It's so one one one Just one step more that one one time Finch it I didn't need to to he work because I thought in the suggestion of the last meeting that it's put An indexed item one two three four That if we do that when you updated the documentation and create another Uh chapter inside between two original chapters you need to index all documentation Yes Yeah, so it's it's it's worse than just I create another anchor and be, uh, in compliance with the original documentation because if you do something kind of If you not change the the title of the chapter It's okay. If you change it the the the the title I have a little problem But it's not big enough then need to he index all document all document to to make sense for for the future. So Yeah, be honest. I I I'm a little bit comfortable But if you have or anyone else have any kind of Better approach. I I'm glad to to to adopt without a problem Yeah, a difficult one because ideally if we had done the right thing from the beginning Or I mean there wasn't any real need to do it. Uh, so that's why we didn't Everyone could have used the anchors that we established in the you know the english version And that would have been simple for everyone and then translated the names of sections But we didn't do that and it almost feels like it's kind of You know the horses have left the barn so to speak You know there's no I don't know how much of a point and how much of a help it would be I mean there's more languages in the world obviously but I wonder how useful it would be to go back through and do all of that right now whatever standard was adopted whether numbers or anything else Yeah, in some some some ways My work of translation need to be prepared to do some real work because it's part of my work Sometimes do a he worked as as as and having this anchors in Point to do original anchors I believe that in long term is better to backtrack changes for example, so Yeah It's not a pacific point. I don't know if Yeah, I mean to be fair most of the docs don't get updated that often because the problem I mean in addition The worst problem with not having direct anchors is Is similar to what you're saying is if you edit the name of any section Then it changes the anchor, you know in english There's whereas anywhere else and you know the The ugliest thing you can do to someone is to break a link for no good reason The broken links are bad as we'll discuss later if there's time But you know so having anchors is good. It's a good practice. It wasn't a practice that we followed And so I don't know if you know like Our other languages essentially doing the same thing you as you did is Establishing their own anchors and they're kind of comfortable doing that or Is there yeah, I don't know Okay, but after I Yeah, just you you you use your work of last week Chris because the work that chris did in the last week that Check the broke links Also works to me because if you have any kind of issue in bro about broke links, I can process like chris did in the last week and and And fix those broken links believe I Is it's better create a framework to to support this this problem then to to create another Bro, yeah, I agree with you rondo and the reason why is because It there's we have more than just the anchor problem The the anchor problem is derived from changing titles and languages as you pointed out and joe did The other issue is because we have a mixed restructure text and markdown The procedure for doing that isn't exactly the same and joe talked earlier about how The the anchors are derived when the html is built based on the the title right which which you've alluded to and When you do When you run your local doc build if you're using the pip file and the And the sphinx to build your own docs You get this warning that says this doc doesn't have a title and the reason it doesn't have a title is because of the change Instead of doing dashes. It's done with an equal sign now. So in order to make it consistent We would have to go back and change those anyway To get doc build fixed and if we're going to go through the trouble of doing that As long as we're in there it it makes complete sense to go standardized on agreed anchors and put those in there if that makes sense And to to illustrate that I actually have that up on my screen right now If you'll I guess share or go for just a brief second um What happens is You get this You get this warning here And it talks about how um something doesn't have a title. Okay And that this is in the tutorial source and if and if you went in there and you looked at some of these, um Let's just let's just get to a heading here that we can just quickly change So you'll see how writing your first application. It has the equal sign which is repeated underneath of it.  It's just a dash sign. Okay Well, you'll notice that if we were to go up here to the top of all of these errors, um You you wouldn't get that if you changed it. Okay And so that's what makes it um That's our t default is that your top header should be equals and then It doesn't really care how you do the rest of them as long as you do them in the same order Whatever order you establish is what rst kind of picks up Yeah, kind of it kind of we've done a unofficial slash official The method of the dashes come after the equals And then you'll see a mix of the carrots versus, you know, the You know versus the squiggly lines or I don't even know what the official words or all these things are But like it kind of just figures out what method you're using and then kind of Follows along and then for the rest of the doc whatever you establish first So in this doc, you see that the carrots are there More more often than not what I what I used to do them. It would be a squiggly line would come third, you know Whatever I tested this and what happens is if you get rid of The the dashes and replacing with equal sign. It takes the error out of the doc build Well, if you do that then it shows up in the left talk as an equivalent top line doc, right? That's right By the warning is talk tree contains reference to a document that does not have a title Yep, you can only have one equals header in each rst doc. Yeah, so that so ashley to get You just stop the share here and give it back you So my point was is that we have more than just the anchor tag problem. That's related to this That's what the point is and we may have Work to do where we could we could do both at the same time if we were to make the decision to go in there and do it So you have a consideration of markdown with rst You have a consideration of a standardized anchor tag and then you have a consideration of fixing the doc build was thanks if you're doing local doc build and and What happens is and we're not you've probably seen this when doc build doesn't work and it gives you those errors Where you have those errors? You don't get Uh a word that's linked to its section you can click on you get some weird character like a closed bracket that you click on and it's h into that page. So It definitely breaks The doc build when you do when you run make html html html Speaking of things breaking Yeah, this is a sticky one because you know, obviously no one likes to go back and and redo old work But you know, there's a there's a couple of issues here that are converging And some of this will will come down to Again not to skip ahead, you know, if we have to move to different versions of it might we might be moving back in Sphinx and up in python Uh I'll let Pam talk about that more because I think she she actually took notes. We had a meeting with with Brett about that for the winchecker. So And that it's only a temporary band-aid. We might have to move off eventually which could create all kinds of formatting problems. So I'm a little hesitant to do all this kind of stuff Although anchors are probably regardless of your version of python are gonna still persist And we're not going to reformat everything in rst to mark that we're simply not going to do that but um Yeah, we'll see I would certainly love to do it. Um, it's just about when and who would Standardizing around the format Yeah, there's definitely an issue because um, Sphinx 185 works fine, but Sphinx 32 does not it breaks. So yeah all right, so, um, let's move on to the next uh issue unless there was anything more on that Which I assume there isn't but if there is just stop me Promoting translations. So the david and anthony show would just be the david show If you want to grab it Sure, and I I touched on some of this earlier when Renato was sharing his update but basically now that we're getting close to having more translations Done and published my my thinking has moved on to the next step about how do we make sure people see it and so um I'm glad that we have the flexibility to offer translations on. Yeah. Oh, yeah. Thanks for showing you Showing it. I'm glad we the hyperledger home Uh website uses wordpress and wordpress has translations ability, so we're we're Initially just limiting in this to the homepage. We could choose to translate more in the future But you can see what Renato did. So I think it looks great You can um, you know come to this if you're a portuguese speaker You can now come to this and get an overview of what hyperledger is And my main concern now is for those portuguese speakers. How do we give them a path forward? If this was the only pay if we did a strict translation of the english page They wouldn't then have an opportunity To you know connect with some of the other portuguese speakers. So if you scroll down just a little bit I think the one main difference I want to point out the difference between In my mind what a translated homepage could look like in the english page is this english page doesn't have resources in your language section and that is where when We could point to things such as a portuguese version of the fabric docs when they go, you know When things go live, you know, we can make you know surface them here So they become more discoverable because again, we're doing this great translation work We want people to be able to find it So, um, you know, we can do other things to promote it But it felt like the homepage was a good place to do it And then you know any any language team could point to other things I think pointing to the language team itself could be a good thing to do So that people can learn about this translation effort and can take part and you know Maybe there's meetups or other things that a given language would want to point to so There is some flexibility how the languages would be shown appear in this top right with the flags For now my understanding talking to our web developer as we add more languages you start running out of horizontal space There's a vertical drop down that it can convert to and I think I haven't tested yet I'm slightly uncomfortable too with the idea that languages are represented by flags. I mean, there's Yeah, especially get to like Spanish, you know, like or there's not a flag, you know, like Agreed my understanding is it converts to a drop down When you would pick language and I think and Renato, I don't know if you've tested this yet But I I meant to test this today, but maybe you could just tell us if it works this way I think there's also an auto detect feature if you have in your browser a language preference It should serve it up to you. Yeah, unfortunately my my browser is in English But what are you trying knowing that you need this this the support or you try Yeah, if you could try I'll try to but yeah if you could try and tell me but yeah I use my my my daughter know the book That's funny So basically we have a process now Thank you, Renato for helping us pilot it. We've tried it here The Chinese one had already existed but used a different process that was run by our Chinese team So we kind of had to redo A new process So we have a process that works if other language teams are listening to this recording or looking at the agenda and want to provide A home page translation. They certainly can and again they we have flexibility if they want to point to their own resources We have flexibility any given language can arbitrarily point to whatever they want and that resources in your Yeah, yeah, and I like the idea to have the anchor to to the local resources resources your language because it's talking to my chapter pushing us to have Comfortable land page in your language. You have organized this structured structured page with your Meetings your content. So it's it's It will you put oxygen in your week page that we don't have today because it's too much Orated to organize organization of the chapter beyond that to provide the content to the community So have this anchor point to our weak page. Could you Pushing us to have some more more Community maybe orientation then then we have today and I like that's great And hopefully it's in it's a recruiting engine for you too. You know, I mean people will come to this page and find out Yeah, yeah, I really like Um So, I mean I can share I'll keep people up to In the loop on how this is going again I think you know for for this call the main thing to do is, you know, once these Translations are available. We definitely want to think through how do we drive people to them? So, um You know, I'll just keep people in the loop as we add more languages and as the translations Translated docs become available, you know, we can look at that goes back to the google docs analytics You know, I think we'll want to spend some time with google docs to see how are people finding the translated You know fabric docs and how can we do to you know increase that? So that could be a conversation Maybe we dive into the analytics at some point later on these calls to see what else we could do to You know drive traffic, but hopefully the homepage is one way to do that This is tremendous. Wow a lot of work has gone into this The chinese team has done a lot across the whole site You know, I think for now, you know for other languages will stick to the homepage But we do have the ability to you know, you know, these like to be changed into svg as we run into this with the With our ivy. Oh, yeah, because it's hard coded in. Yeah But you know You can progress and continue, you know, sure. Yeah iterate for sure. Yeah So david if other languages do want to translate their homepage should they contact you or What's the process? I think I put a link if you go back. I'll just talk through the process really quick If you go back to the agenda Did I put you have that form? Can you click on that fill out this form? I don't know if this is the best way. This is how rinato and I did it I don't know if this is the best way to do it. I mean, I'm not I'm open to ideas. This was just the first thing that came into my mind the wordpress Unfortunately wordpress itself. We can't give like direct access. You need to be a website admin So we kind of have to capture the information somehow and then give it to our web developer I'm open to other ideas if people have preferences for a better way to capture this It's like we're not always pointed out a bug in the form. So maybe this isn't great. Anyway, you know, this is what it is Certainly a lot of questions, you know Yeah, so maybe there's a better way to do it. I mean if people have a preference It works for me and it's uh, it's pretty simple page and and translate those those, uh This content is it's pretty simple and I Actually, I don't want to to to support the hyperledger page. So to me, it's makes sense because just I can help without To to have the the ownership to the page. So yeah Okay, well if it works for you and I mean, so this is open if other Um languages like, you know, whatever russian spanish, whatever want to try it. There's certainly this is live We can yeah, I believe when I need to make some some changes in the translation I I I So we meet again the the the form and do you have another version comparing in a place something like that? So yeah, it's simple and functional when you fill this out. Who processes it It's super It's manual. I will let our web developer know and I'll just send her the strings Can we not do this on actual hyperledger fabric blockchain like pretty easily? I'm sure I'm sure there are better ways to do it. Yes. If somebody could tell me that there's a better way to do it I'm happy. I just didn't if there's a person who has to who does this like they're you're getting the answer then You know, I just don't know how many questions somebody needs to answer what What really the approval process is because it's somebody saying, oh, it's it's ronato and ronato is fine versus someone It's like, I don't know who that is and we better ask someone, you know, like, well, you're you're right I mean, there is a trust issue and there's I think you're right. I mean, so Ideally the language would come from somebody from one of the language groups that's part of that language group And it's not some, you know, buddy who's not familiar with the community Well, and that was the point you brought up one of the first times you were on a meeting and Now I forget what company was at oracle. They have this system where like there's these people who are Not running a group, but they're like a known person Who can be a filter through which other people who want to access, you know, we know who all those Yeah The word's coming to mind is sell leaders, but that that's probably not the right terminology, but No, but yeah, I you're yes, you're right I mean, so and and I think when you're probably thinking maybe when I talked when I shared the the mozilla Mozilla. Yeah. Yeah Yeah, I think a more, you know, we're just getting started. I think a fully mature open source translation effort You're right. We'll have language owners or language leads, whatever the right terminology we choose to do and they would they would own Like we wouldn't they would tell us this is an approved home page translation Right, they would they would manage it within their community and hand it off I think we'll we'll evolve to that, you know, and we'll get to that like anina clearly is the language owner You know in her community and so yeah somebody else, you know, I'd check with anina before so yeah I think we'll evolve to like Ownership roles and processes Mm-hmm. You know, Renato clearly is the lead, you know, I mean, I think we kind of informally have a sense of who you know Is the lead for which language but Well, Renato is the CEO of hyper ledgers, you know If not today then someday soon Yeah, and sure clearly he speaks for you know, you know, he's I know that Renato's we're all connected to the community in brazil. So yeah, I mean we yeah But it's more informal today than then probably it will get formalized over time Yeah, yeah, it makes sense. I mean, obviously it's just uh thinking Long term about what the best processes are if this is working people now, then that's great considering how Relatively new this all is. Yeah. Yeah. Yeah. I mean, I think yeah, what's the what's the open source thing about minimum viable governance I think we'll kind of add add the governance as we need it Yeah, I've heard that term before I always love how long it is like it's minimal This is one of those but I understand the concept, you know uh all right, so This is really nice that people are, you know, the translations are extending kind of beyond just the docs themselves and kind of Getting on these landing pages because you know, that's a big part of you know, somebody who is like, uh, well I'd like to be interested in hyper ledger. I've heard of it And they might not know that there are docs in the languages, but if the landing pages That might let them Yeah, I don't think the yeah, I don't think the I don't think a translated doc can live on its own without the larger, you know People don't even get to the doc to find out. There has to be a path. There has to be a pathway to get them there right Well, we have a few minutes Left and we probably have time for either the broken links or the analytics. Pam. Do you have a preference? Um, I don't have a preference. Oh, I guess it'd be up to the other people on the call what they're more interested in hearing about Yeah, that's fair Why not Yeah Okay inclusive inclusive. I need just to give a feedback about I almost started talking in spanish because I talk about the myth of the american group, uh, latin america group. They created amazing think that is, uh uh containerized No, I'm sorry. I can't say this word make a create a container environment of the the translation Process, I don't know it makes sense to you but they create a docker image to to make the translation is Be amazing and maybe in the next week I talk a little bit about that because it's can simplify the process for the new languages because you just Just take this image and and go ahead. You don't have any any kind of issue to to make the process and you can introduce the the frameworks Automatization so on inside this this container That's a really good idea really good idea Yeah, sounds cool Yeah, so we'll put that on there or if you want to You can put it on that gives everybody a universal starting point, right? Exactly because nina had a problem about the versions They latin america group had the same problem and support both then so claudio that is The guide that is the they are leading the process in the latin america group creating and we share with us and we can uh introducing the process of the translation and Be pretty simple after that I think also by containerizing that ronto. You can get over the uh issue of the Having having to make sure you have the correct doc build and sphinx and all of that, right? Exactly. Yeah Standardize it. Yeah, it's a really good idea. This setup is not simple for who is not Who who can have a minimal technical Knowledge so if you can simplify you can speed up the process of Starting new languages Yeah, let's let's put that on the agenda for next week for sure. That'd be great. Amazing a little bit more about that. Yeah So it sounded like there was kind of a unanimous consent to discuss the broken links with about the botanists Yeah I I can um I can bring that up real quick. So um, we had a meeting with brett. I I guess if I back up a little bit there was a Comment in the mailing list about broken links in our documentation, which one of my biggest pet peeves the broken links not the comments in the mailing list And so um, I hate it when I find broken links and I do we really do try to avoid them as much as possible and so You know the further history around this I was actually out on vacation I guess when all this happened and Chris jumped in and he was able to generate a spreadsheet that showed I think 40 broken links which was much smaller than the broken link checker that brett actually ran he So so what happened was we had a developer years ago remesh who instituted a broken link checker for us and um, basically it fell by the wayside and stopped working and nobody was able to Get it to work mainly because we just didn't have the time of resources so um Thanks to brett. He stepped in and he was able to get it to work, but it it Ended up introducing was it 1900 broken. Yeah, it was Well, it wasn't broken links a thing So what happened was You know our sphinx and our python are far apart and and being updated so to get the link checker to work he had to update the python version and the formatting something in there is breaking when it's converting The markdown in the rst. It seems like the markdown was actually the bigger problem converting it over to html the formatting was breaking all over the place Yeah, 1900 separate and unclear like what's breaking. It's not super obvious. What's breaking? It's not like there's a consistent error that or something we're doing that's causing it to break It just seems to be breaking often around code blocks, but not always And it's just sort of a these an infinity of errors that are would be very difficult to fix Even if we had the time like because it's not super predictable Or obvious what's broken Right So when he ended up doing to get this to work was he downgraded the sphinx level from 1.7 to 1.4 And he was able to get the broken link checker to work again So as joe alluded to earlier and to call this is sort of a band-aid. It's not in a perfect fix But it does get us around the problem at least temporarily and One thing I did ask him was will this impact the language translations and he was going to go off and run a test I guess against malealum and make sure that the downgraded sphinx level doesn't Break anything he hasn't gotten back to us on that So I think he's continuing to work on the pr. It's still a work in Work in progress pr But we're hopeful that this will at least get us A way of flagging broken links as part of that pr He did fix all the broken links. So once this is merged The 40 broken links that were in chris's spreadsheet will be fixed So that's good news But the only ones that are left are ones that are example like non broken broken links. So if you have any any example You know html of like your name here or whatever then those will still show up as broken links and a broken link checker But they're not actually broken right so going forward the process will be that when you submit a pr and it does the build It will flag any broken links that are in the content, which is nice I think that's great. So then we can go fix them or at least open it up and say, okay, what are the broken links? Oh, that's you know, that's an example. That's a false positive. You don't have to worry about that one It's not going to block you from merging the pr. You can still merge the pr we've broken links Which you know, obviously we don't want to merge pairs with broken links, but if there are cases like that You know, you can still merge the pr, but at least it gives us Uh more headlights into broken links As the prs are being generated And so hopefully this will help with the language translations and the mancubes too for run out all And if you're able if you're able to use things to do a local dock build you can actually test the URLs before you push Right, and we all should be doing that but you know sometimes contents really long You know You can miss things. So this is just a secondary check, which is great. Okay, so you'll see it in the prs and the dock build There'll be a little line now under the dock build says broken links failed or something like that So, yeah, the basically two parallel pieces of work, right? This is the getting a link checker to work in the short term And then long term upgrading python and upgrading the versions that we're using in a way that doesn't Shatter the formatting everywhere And the sort of the other piece of work that bret's working on is, you know, why is that happening? Is there something with the I think it's called recon mark, you know That does this sort of translation of markdown to html. Is that broken? Is there something weird going on there or you know with a combination of factors because Python whatever version of python that we're that we're working is nearing end of life or just about to hit it So we kind of need to move like it's not like we could just sit here Um on these versions forever. So We need to figure out what's going on with that that formatting But the good news is we don't have to fix those the 1900 Right Have a work around Yes Yeah, because it's just not going to happen Yeah, I mean Brett and I looked at some of those like it's impossible to even figure out what the heck is going on Like why did that break? It's it's anyway One of the issues that came up really quickly is that the a lot of the links that people are trying to access to Work from versions earlier than 1.4. So in the read the docs Um html on the fabric website When are we going to take those links away and just Be able to select from 1.4 to master, right? I mean in the bottom left of the screen Because that's causing a lot of chat and questions and people are like 1.4 should be the minimum that people are working with in any doc And so the problem is that because they can still select 1.3 On the read the doc site. I Put it in the jeer that we needed to do away with this. I haven't heard any feedback back on that, but It's a good point at minimum There should be link checkers running against old versions So like things that don't exist anymore. We can figure out what to do with those but I mean, it would be a broader community community statement than us I would imagine that as long as the fabric repo has old versions the docs will also have old versions So it would be a discussion for maintainers Yeah, the point is that we need to come up with a deprecation schedule then because it's I mean Like you can't stay on the same these versions of spainx forever We can't have 1.3 in the doc repo forever either, right? So fair. No, I don't just agree with that at all It's just I think that the broader maintainers and maybe that's something for a community call a couple weeks or something contributors calls to discuss that and you know I would hope that there would be some Community support for that, but you never know, but you know, some people might still be on one one. I've heard stories, you know So yeah one course. Yeah, so So it's interesting that you say that joe because I was looking at the google analytics right before this call and in In one of those widgets it shows, you know, the the path people take through the docs and Surprisingly, there are people using 1.1 version of our documentation Yeah, well, and they might not know any better You know as well or I mean, look, so if we get rid of old versions at minimum, we're gonna have to do some redirects I mean, I think that goes without saying it's like There will some of the those versions of docs will exist But they will redirect because you don't want people just hitting isn't as broken. Well, it could be google search You know sending them there, too Sure. Yeah, and all the more reason to have redirects exactly But yeah as a community it's worth You know discussing You know, should we just you know from a code standpoint get rid of these older branches Of the doc, you know, or do they serve? A purpose to enough people to you know, keep them around I think you make a good point chris about long term support I think there's an implication about having long term support releases about What value your older releases have and and your duty to kind of keep them up Because if we're going back and having to fix broken links that is an explicit form of support for older docs, right? Well, the other the other issue there, too Is that if somebody is using those docs there should at least be some big header warning on the page that says this version of Fabric it's not suitable for a production environment, right? I mean, you you don't want people going and instituting one version 11 in production Yep, I don't hear that at all. Yeah So, yeah, that's that all makes sense now. We just need to figure out what the strategy is there as we always didn't have to do So, uh, yep, we're five minutes over And I don't know if anyone else has anything They want to discuss Don't I'll talk at once All right. Well, if there's nothing else then we got most of the way to the agenda. I'm pretty surprised so


Welcome to the next discussion on system properties. You will recall that in the previous discussion that we had, we had identified one important system property namely, additivity and in additivity, what we did was to perform three experiments on the system. In the first experiment, we gave one input to the system and recorded the output. So, we had an input x1 and an input x2 respectively in the first and the second experiments. In the third experiment, we gave the input x1 plus x2 and here I mean x1 and x2 to be functions of time. So, each of them are signals in their own right. The corresponding output y1 and y2 in the first two experiments are recorded again as a function of time and in the third experiment, we query whether the output is also y1 plus y2. If it is and if this is true for all possible x1 and x2, then we say the system is additive. Now, let us take an example of a system description which is not additive to make the point clear. So, suppose for example, you had a system description where the output yt was equal to the square of the input xc, xc is the input. Clearly, this system description is not additive. That is very simple to see. If x1t produces y1t which is of course x1t the whole squared and similarly x2t produces y2t which is x2t the whole squared, then x1t plus x2t would produce x1t plus x2t the whole squared. And this is of course equal to x1 squared t or x1t the whole squared plus x2t the whole squared plus 2 times x1t x2t and it is this term that makes the system non-additive. If that term were absent, the system would be additive but that term makes it non-additive. Let us take an example of a system now, a system description corresponding to an additive system. I first came an example of a system description which was not additive because I want to bring out what is required to make a system additive. What you notice is that the moment there is a non-linear operation in the system description the chances are the system would not be additive. Let us take an example of a system description y of t is x of t plus x of t minus 1 minus x of t minus 2. We show this system with additive. So, very clearly if x1t is input to the system the output would be y1t given by x1t plus x1t minus 1 minus x1t minus 2 and similarly for x2.  The system is indeed additive and let us declare itself. Now here you also notice what makes a system additive. When there are essentially linear combinations of the input coming both from the current time and some other time the system is essentially additive. But let us also take an example now of a system which might deceptively seem additive but is not. So let us take the following system. You have y of t is x of t plus 5 a displacement so to speak or what you call a DC shift system if you mind like clamping the system to a higher DC value. Now here let x1t result in y1t then y1t is of course x1t plus 5 and similarly let x2t result in y2t where upon y2t becomes x2t plus 5 but then when x1t plus x2t is applied to this system what results is x1t plus x2t plus 5 and not x1t plus 5 plus x2t plus 5 which would have been equal to x1t plus x2t plus 10. So system is not additive clearly as I said it is deceptive because one might have been tempted to think that it is additive because there are linear operations all over the system description linear in the sense that you know you have sums of isolated terms so you might be tempted to think that it is additive but it is not additive. So essentially a DC shift in that sense is not additive so so much so for the property of additive we shall keep saying more examples as we go along but now let us bring in one more property that we need to discuss and that property is called homogeneity or scaling. So here in homogeneity or scaling as the name suggests what we do is to scale the input by a certain constant and ask whether the output is being scaled by the same constant and no other change is being seen in the output and whether this is happening for all possible outputs that and of course inputs that you can give the system. Let us first define the property formula. So here we go we first say Xt results in Yt by virtue of the system this is the input to the system and this is the output of the system remember both of them are sigma in entirety we multiply the input by a constant scale the input by a constant meaning multiplied by a constant which is called C and we query what the output is. Is the output equal to C times Yt for all possible that is very important for all possible X and C if so the system is homogeneous or it obeys scaling the system is homogeneous or it obeys scaling a very important definition. Now here I must utter a word of caution I mentioned briefly in one of the previous discussions that although the independent variable is taken to be real that is T for example is real T could be time it could be space the dependent variable could in general be complex we have not justified why we should allow complex numbers right now but we are kind of accepting it and we are noting that real numbers are a subspace or a sub they are a subset of the complex numbers in fact the real field is a sub field of the complex field. So therefore there is nothing terribly unacceptable in extending our outputs to complex numbers or inputs to complex numbers as a function of the independent variable and we shall do so the reason why I am emphasizing this is that the constant C here can be complex too as we go along we understand why we have to accept complex numbers but for the moment we will just take it for a given. Now we shall soon take up the next discussion where we look at homogeneity with a few examples but meanwhile I encourage you to look at the examples that we saw for additivity and answer whether they are homogeneous or not an exercise for you before we meet again for the next discussion thank you see you soon.


Hi guys, welcome to my 25th birthday vlog. We're taking it easy today, just hanging out. But first, I'm going to go to the grocery store because I wanna get myself this cupcake because I wanna film this TikTok. I know, it's kind of silly, but I don't know, I saw it and we have the candles in there and I just need this cupcake and then I'm gonna get some chippies for myself because, you know, you gotta treat yourself on the birthday. So I'm gonna run, get those two things and then I'll be back. I don't know what else we're doing. We did share his hair this morning. I was gonna do like a video doing her hair, but it was kind of early in the morning and we just like wanted to get it done. But you guys will see the after result pretty soon. She's getting ready right now. So I think that's pretty much what's going on right now. We made it into a Publix and hopefully they have some cupcakes. Ooh, I see some here. I wish we could just get like one though. I don't know, I'm gonna keep looking. Ooh, look at all the fun candles. I ended up going with these because there wasn't any just single cupcakes I could buy. So I just went with the classic vanilla with sprinkles and chocolate with sprinkles. Now, what chips should I get? This is always such a hard decision for me. Okay, so I settled on Doritos because I don't know, just the vibe today. I was just feeling Doritos. I was looking for Funyuns, but then I'm like Funyuns just I eat them too fast because it's just a bunch of air. So I think that's why I just decided to go with Doritos. Okay, so update on Sherry's hair. I told you I'd show you guys. Looks good, looks good. Looks good, lovely. She's doing a outfit show for us. I think we're gonna use this outfit tonight since she hasn't worn it in a while. I have not. I'm gonna start filming the TikTok cause I'm gonna start getting ready. So I need to get the cupcake. I think I'm gonna use the vanilla one because I'm just a vanilla type of gal and we'll put the candle in. Hopefully it won't like take that long cause I just don't wanna be like retaking it all the time. If I don't get it, it's fine. Sherry will have cupcakes to eat then. Okay, I got the cupcake. I used this pink candle because I don't know, it just looks good. So I think I'm gonna do it in my room. I don't know guys. I think I might just do all of the TikTok here and not do it when we go to dinner because that'll just be too stressful. So you know what? We're just gonna roll with it here and it's gonna be fine. I hope this video is like kind of entertaining. The second half of this video is gonna be on my phone just because I don't wanna take this camera. It's kind of big and I really wanna carry my shoulder bag if you know what I mean. So it'll look better. It'll look cute with the dress. Speaking about dress, I am going to wear this one. You guys know if you guys watched my haul video, I got this in Winter Park and it's so cute and we're gonna wear it with a bralette and stuff. So I'll show you guys the completed look but first I'm gonna try to do this TikTok. I hope it goes well, at least the first half because like I'm unready. Okay, so I got the first take and honestly, it was a lot harder because I didn't have anything to set this thing down on. So I used my mat, I'll show you guys. So literally this is how it looked because I had nothing to set the cupcake down on and I was kind of stressed out because this thing can fall over any minutes and it was like lit, like the candle was on fire and it was kind of stressful. So I'll show you guys kind of like what it looked like. This is the best I'm gonna get, which is fine. That's what we're working with. My like lip-syncing is not good or syncing or whatever it's called, it's not that good but Grace Cuatro's part was fine. So we're just gonna deal with that because I don't wanna like, you know, catch the house on fire. So we only got one take but it's fine. Now I'm officially gonna start getting ready and then after that, I'll just do the ending of that TikTok. I might do one more TikTok of like before and after. Okay, so I got all my makeup here. Just gonna do the classic Alex look, pretty much like light stuff. Just gonna like sit here and do my makeup. So enjoy the time lapse. And this is the final look. I'm just wearing this cute dress I got in Winter Park. These shoes, I think I got up Macy's but I wore them in my friend and cousin's wedding and then I'm just wearing my Tiffany bracelet with my Tiffany necklace, curled the hair. The curls probably won't stay but it's fine. Just wearing my earrings to match my jewelry and stuff and that's pretty much the final look. The makeup turned out a lot better than I thought it was. The eyebrows are giving me trouble. Every time I do my brows, it's very difficult to say the least but we managed to pull through. So yeah, I really like the look and this is exactly like what I wanted to look like for my birthday so I'm happy about that and now I'm gonna finish my TikToks because I have a little bit of time and everything just worked out timing-wise. Starting with Valerie, show us your outfit.  Anything you wanna elaborate on. I have my necklace. She's got a really good hair day. Yes, and I have my necklace that is my Alex and Valerie necklace. It's really Walt and Mickey. And I have a little stick pin. Let's get my initials on it. I forgot about that. And so I have my beautiful flower jacket on with white shirt. Next, look at how good she really looks. Not that Valerie doesn't look good. I'm just saying. On the other hand, I have the leopard print outfit with the black pants. I have this necklace that was made. It has my grandmother's diamond in it. From her wedding day. Special made, yes. And I have on my Tiffany bracelet that somewhat matches Alex's but she has a lot more charms. I only have one charm on mine. You know I love things that match your hair. I know. Yeah, all right. I have Tiffany earrings. Yes, remember? She almost lost the back of them. You know. That the first time I took them off. Yeah, exactly. I'm not leaving this here. I should not need any of these things here because I don't really need AMC stubs or Panera car. All right, so we are going to continue the vlog at dinner. Again, I'm just gonna film on my phone. Sometimes when I film on my phone, I feel like I forget to press record. So hopefully I don't forget to press record. We're gonna get our meal too. Yes, I'm so excited. So we're going to Kappa at the Four Seasons in Orlando. And we don't really like go to the Four Seasons a lot. And it's just a new adventure and something nice. So I'm so excited to try it and everything. They're different. Yeah, it's like a different experience for all of us. So it's gonna be really nice and special, I think. Say that again, Sherry. If it's not, we are gonna be sorely disappointed. Very much so. All righty, so we're here. We're driving into Golden Oak. Stormy out. Look at it. A lot of them. But here's some of the houses mansion-like. Oh my gosh, yeah. It's so cool, man. But they're really big on privacy, as you can see. And each one, each little subdivision of houses, they're all in gated communities within the gated community. We have made it to the Four Seasons Hotel. This is where the restaurant we're eating at is. Anyway, I just wanted to capture it here. Look how pretty. I really wish it wasn't raining. Hopefully this will blow over because it's porta. We're driving up to the Porta Cachère because they apparently they only do valet parking. So you kind of have to do this. But look at all those like suburban fans' cars. Oh my gosh, look at how pretty it is. Whoa, it's so nice. Oh my gosh, someone's getting married over there. It's so pretty. Oh my gosh, I'm just taking it in. My gosh, Valerie's really impressed. Look at how nice this is in here. It's so nice. It is impressive. It's very impressive. This is so pretty. Ooh, here's a peek inside the restaurant there. Sherry, show us your menu. Look, it's like all lit. Look at how cool that is. I'm just taking a look at the vlog. Okay, so here are the drinks. And I'm gonna get the Kaffa vodka tonic. One of my friends suggested the gin, but I like vodka better. So I'm just gonna go with that one. And then I don't know what the mothers are gonna get over here. We'll see. This is very pretty. Sherry got this cool mojito. It's a special type of mojito there. And then I got the Kaffa tonic with vodka. I'm so excited. It looks so cute. Cheers. Happy birthday, Alex. Cheers. So this is our table. You get a nice view here. The menu, if you guys wanna pause and read. But they're so nice. They even gave us these like classic bags to put our masks in. So this is what the menu looks like. So cool. Okay. And they were so nice. They gave us these plastic bags. They're like, oh, these are for your masks. Oh my gosh. So nice here. And my drink is really good. Sherry. Yes. Show us what we got here. Well, we got a little bread, apples and butter and extra virgin olive oil. And what convinced you to get this? Well, because he said that the steaks take a while.  She loves a good sales person. So we all love the bread and he did a really good job. All right. So Valerie found something. The camera was on slow-mo. Thank you. Aw, that's nice. Sweet. Us seeing you grow into a woman you are at your birthday celebrations. Plurals. Love yous. Sheee. Love you too. With the eyes crossed out. What did you get, Valerie? Mushrooms, combination. Mushrooms and more lobster. Yeah. I got a filet, like normal. These mashed potatoes, they say are their best sellers. And our waiter is like so good. Like the customer service is just like 100% man. Like even like 105%. And then we got broccolini. And then we have some mushrooms over here. I think the rest are mine. And then Sherry also got a filet over there. I got a bone in filet. She got a bone in filet. And she also has the broccolini with the potatoes. Moo cheese on the filet. Yeah. Guys, I didn't forget to vlog the food. I make sure Valerie knew. So I wouldn't forget to vlog. Because knowing me, I would just like start digging in. We've come outside because the fireworks show is going to start. This view though is just like amazing. It's beautiful. He carried all our drinks for us. Thank you so much. Thank you. And Sherry got another one. Thank you. Thanks. That's so nice. It's still raining. It's raining, but we can still see the fireworks. Living out what makes you happiest. Here's to you and all the goodness. This next year we'll bring happy birthday. Wow, 25. We love you, mum and people. Did you already get me a card? What's that worth for? Starbucks. How much is it? $25. It's a thing. 25. 25. The card says 25 because you're 25. And you've got 25 for your Starbucks. Yeah. But why did I get two presents? Well, thank you. I don't know. It's a surprise. Oh, okay. It would be mum and people, but they're dead. So that would have been clearly weird. No, it's not for me. It's from us. It's going to make those public trips on the day of. Right. We have a thing in our family that we just go to public on the day of the person's birthday or anniversary and get them a card. Thanks guys. You're welcome. I hope you had a wonderful day. I did.