 All right, welcome to the Microsoft stand-up. It is October, November 4th. So how's everybody doing? I feel like I should be standing, I'm saying. Yeah. Oh yeah, we should be working at the standing desks, right? I am actually, so I should be standing. Yeah, me too. All right, well, let's go ahead and get started. We'll do a quick go round and see how people are doing. And then at the end, we can check in on the outstanding issues. So we'll start with Gez, since I know it's nice and early for him there. No, it's getting to be a very nice time, 8 o'clock in the morning. Yesterday was mostly emerging community PRs and helping people for us. Jumping in the elevator. Yes, it was emerging community PRs and particularly with Lingua Franca, there's a whole bunch of new stuff that's been unlocked now that the refactors complete. So helping people to work through just the thinking around some of the detail in there, like how things should run. I was also doing a bit of build recipe stuff, run into a weird issue with the preloading PR. But it doesn't really matter that much. Today, I want to get back to finishing off the default files in the .github repo. And hopefully, we'll should be able to finish the ticket around running simultaneous void conf tests. So I've got an idea of that. I just need to implement it and try it. So I'll do that today. And then whatever else I get to. OK, so how would you summarize the Lingua Franca process? Is it going well? Are you having any hang ups? Is it more or less complete? Yeah, so we've released version, we've now released version 0.3.1, because we've got some bugs in the .o version. So there's now going to be a whole bunch more development. So there's already plans for .3.2 and .o.4, the next major release. But in terms of getting it into core, we already did a test integration. So I'm just going to leave the packaging that up into a final PR into Minecraft core. I think Chance is going to work on that. So I'm just going to give them a few days to do that. And then it will be in core. And then I think once we get that into Minecraft core, I think it's worth doing a release of Minecraft core as well, because there's a lot of stuff added since 2008. OK, sounds good. But yeah, no hang ups. Great. Yeah, at some point we'll want to do a check in here. I'd like to see the Lingua Franca roadmap and talk about what are the community's plans for that and maybe get that onto our roadmap as well. All right, so Ken, let's check in with you. Yeah, just remind me after this meeting when we hang up or whatever. I got a couple of questions on the upcoming trip about the website and stuff. But anyway, yeah, so I've been working on this build, the QTM image build. It's not coming along well at all. As I mentioned, it would be done by today if I didn't have any unforeseen circumstances, unforeseen circumstances were hit. I followed Ake's instructions for rebuilding the tar. It didn't work. I went back and forth with him, exchanged emails, and he's not sure what it is. And it's not his job to figure it out, so that's where I'm at. I'm still working on that as we speak. I am having Wi-Fi setup issues just you guys now on both images, Kivi and QT. I have had all the images I've burned, and it's probably about 10 for each. I have had it come up in work out of the box once, and nine times out of 10, it doesn't. So that's problematic, I think, moving forward, but maybe it's just my Wi-Fi here, I have no idea. So anyway, I also helped Derek today. He installed the monkey patch on his Kivi image for the hardware. You can ask him how that went or if it's working or not. And that's where I'm at, what I've been doing, when I'm working on it. Okay, thanks Ken. Well, let's go over to Derek then since you brought up his name. Hey, Derek. Hey guys, yeah, so as Ken mentioned, I've got a almost working SJ240 with the Rev3, the SJ201 in there. I have not received the new batch from Kevin yet. They, well, they may have arrived this afternoon at the office, but I've been at home most this afternoon. So they should be coming in today. And now, Ken and I worked on this. We have a USB drive that I can use as a test to just plug in and make sure everything's working well. But I was able to do a little bit of just real quick test stuff now that we've got. I was like, I'm bringing up the Kivi built and I can use the mic as an input and get a little bit of testing and from far distances, it seems to work pretty well. And I don't have audio playback going. I'm not sure if we'll bug there that needs to get fixed. But audio does work on the hardware through the test stuff that Ken provided. So no audio is working, just need to get it flipped on on the Kivi build, something's not hooked up right there. That might have to do with the other Mark II skill that's in there. We have two Mark II skills, why I have no idea. And the other one, I might have actually changed it on my code line down here or on the Kivi images I was working with because it tries to send out the volume commands itself as well using I2C and God knows what that's doing. So it could be that. It could be a variety of things. I'm not sure I'd have to look at it, but. Sure. Yeah. But the hardware. Yeah, yeah. I mean, that's all good. I'm not, I'm not concerned about it too much. We just, and I don't know that I'm gonna push on it too much right now, but yeah, it'll be cool to get it to actually work. But, you know, like I said, I can, I'm interacting with it. I'm seeing the responses, you know, that's the weather, the, you know, the icons pop up and everything. I'm just not getting the audio playback. And you're seeing it in the CLI. So. Okay. And then you can get with Ken about that after the meeting and let's get that, let's get that resolved. So the sooner we all have, we have an image that we can pass around to people and we actually know how to replicate that. You know, the better we can get to iterating on improving things. Okay. Well, all right. Then, yeah. And then so the other thing I could do, which would be kind of a quick way to get to an image is I, once we have this working, I can just strip out my account information from this image and then just duplicate this drive as an image instead of, you know, building a proper image. And that should work. So, yeah, if we can get that figured out, then yeah, I'll create that tonight. Okay, cool. So yeah, other than that, I've been, there's several things that has I've been working with the mark to today. I've noticed on the assembly that I was like, I got to fix some of this stuff. So I've been making a few changes in the cat to fix some of these troublesome things I keep finding little tweaks here and there. The way the mic board makes up is a little problematic or the top part that the mic attaches to. Okay, so tomorrow I will, I didn't really get to put together all the stuff I need to bring for the summit. So that got kind of pushed to tomorrow. So that's probably gonna take up a good chunk of the day. That's it for me. Okay, great. Just to mix things up, I won't go last, I'll just go now. I talked with Kevin a little bit rather exchange some messages this morning. We didn't have the review of the rev4r201 this morning as we planned because it turned out he had a little bit more work to do in terms of layout and fixing bugs. So he's doing that today and we're gonna meet on tomorrow morning on that. I wanna get those shipped out to a PCBA before we leave for the summit. And so hopefully we'll be able to do that by Friday. And then I spent some of that time going over our Jura tickets and just doing a little bit of clean up and organizing and putting in more tickets for all the little bits and pieces that we need to do to, you know, to get the mark two dev kits shipped. And so I've got a little bit of a timeline as well on a rough timeline on what we need to do to get this shipped. So we still need to qualify a PCBA factory. That's kind of a hang up right now because we don't actually have one that we know can do double-sided boards in a timely fashion accurately. And then we've got to work on some of the the other long lead time stuff like ordering parts and designing the packaging. So I wanna get with Derek in the next couple of days on that stuff. Yeah, that's pretty much it for me. So- So last time I spoke with Kevin, I asked him to consider putting jumpers on the SJ201s for selecting whether we go over USB or whether we go over the old approach like GPIO or whatever. And in the last email I got from him, I think I saw it this morning. It wasn't clear to me because when he says jumpers sometimes he means, well, pull out your soldering iron and jump with this. Did he actually put post jumpers on the SJ201 too so we can configure that or did I misread that? There's a lot fewer configuration options on the next Rev but I will add that to my checklist. So the Rev4 does not have the same options that we had before because a lot of these iterations that we were doing in the past, we weren't certain how the chips would perform or how the software would work. So we put a couple of different options on there to just to test out like, okay, will this thing work? And if it doesn't, then we've got a fallback way to make it work. Now that we've kind of sorted all that out, we don't really need all those jumpers, right? So there may still be a few left but I'll make sure that they're easy to configure if they are there. All right, so the point is we're not going to put post jumpers on there. Say use GPIO for the switches versus use the XMOS USB. I'll look into it, but yeah. Okay, Chris Fair. Yeah, so last night, I upgraded the Jenkins server to beast mode. This is now a big honking machine. That seemed to go pretty smoothly. I've run several jobs on it today without issues. So I think we're for good there. And while I was in my Jenkins mindset, I upgraded the Jenkins file in Selene to make sure that when the build is successful, we delete the Docker images it created. So that way we don't have Docker image cruft, at least not in Selene. If this works out well, then we can apply it to other Jenkins files but I wanted to do it in one place first and see how that is. Ken and Chris, you have the pull request. It's just Jenkins file, a few lines of code. So I can merge that in. So that'll help part of the reason we needed a bigger box anyway, but so that was this morning, getting that working. This afternoon, I've been working on the designation logic. I have a query written that seems to work pretty well on selecting up the things to look at for designations. Now I just need to write the logic to go through the query results and determine whether or not I want to add some new designations or not. Okay. That's it. So tomorrow I'll continue to work on this script. Now, being that Jenkins job, it shoves that image up into an S3 bucket. Have you actually downloaded the image file from there, burned it and verified it works? This is Selene. This doesn't have anything to do with S3. No, I'm saying, okay. So you didn't modify the Jenkins job for the build. I modified the Jenkins job for the Selene backend CI process. Okay. Okay. So, Chris. Oh, and one more point on that is that the images will stick around if the job fails. That way, if you want to do troubleshooting, images will still be there. I only delete them if the job is successful because in theory, if it worked, you don't need to go back and run things against the Docker image to see what fails. But you haven't tested the QT build job at all with this new system, correct? I thought I missed, I must have misinterpreted what I saw this morning. Yeah. Test, the tests I've run are of the Selene code. Okay. Which is what I've been working on recently. Those are the only tests I know that I've run on the new box. Others may have run or been kicked off, but I haven't paid attention to that. So, but this new box will be the same box that runs the builds for making images and that sort of thing? Correct. Theoretically, it'll be used for lots of different, you know, Jenkins jobs, right? Okay. But that's, so that's a universal cleanup step that you've added, correct? Well, the cleanup step is within the Jenkins file and Jenkins files are per repository. Okay. So right now I added it to Selene so that Selene can make just to make sure that my idea worked and it is working. So we can go, once this is merged, we can go to other Jenkins files and other repositories. Not all repositories have them right now, but we can go to other Jenkins files and other repositories and do the same thing. Got it. Okay. So we expect to see any differences until we explicitly say that we're gonna make them. Okay. Yeah. Cool. But it does, it does clean up. Like if things are not being used, the pruning should clean up completely abandoned stuff from any of the jobs, right? The pruning cleans up like dangling things like that. So pruning, I did a lot of research on this today actually, the container prune will blow away any containers that are stopped. The image prune will not actually delete containers unless you use a dash A flag, which we weren't using. It deletes what it does is it cleans up images that are like orphan images. So we weren't getting, that's what we were missing because right now a lot of the Docker files do have an image prune command on there, but it's not written well, but it's written fine. It's not written to do what we really intentionally wanted it to do, which was to clean up the images when they were done. And my understanding is that all of our, I'm fairly sure all of our jobs create their Docker containers on the fly, either from a Docker file or from Docker Hub. So there shouldn't be any need for a Docker image to exist or a Docker container to exist there for it to use because each job should create that. The only images that might need to be there, like for example, I have the Selene database as from Postgres 10. So I guess that could be pulled down from the, yeah. So nothing has to be there. The only thing I delete, like in the Selene job, I just delete the Docker images that Selene generated. So I didn't delete the Postgres 10 image, for example, or the Redis image that it uses to build things from. I didn't see a reason to do that because I reuse those all the time. I just delete the images that are generated by that job. Okay, I guess it looks like he's got some side eye going on there, you know? Yeah. No, I just want to make a joke. It's like, would those containers then be stopped? And so if they're stopped, would they get cleaned up by the prune? But if you've already run it and the Selene stuff isn't breaking, then that is clearly not the case. Yeah, I've run it a couple of times. Yeah. It seems to be working fine, so. All right. Well, it sounds like there is a question there on what the process is for preserving those Dockers that you're basically using as a resource and not generated as part of our test script, right? Yeah, those right now, I do not touch as part of this change. Basically, they're pulled the first time and they're just sitting there. So we don't have to pull them every time from Dockerhub. We can, there's not that many of them. I think there's a Postgres, there's a Redis. There's one for the Microsoft device stuff. Yeah, I don't think that's the issue. I think the issue is just making sure that we have a well-documented difference between these things which are sort of static resources that get used by tests that themselves get created on the fly and then blown away and those tests themselves. Like if there's some kind of global flag that blows away Docker containers that aren't in use, what is it that's keeping those from getting deleted versus other things? We don't have to answer the question now. I just wanna make sure the process is documented well somewhere so that people coming in to play with things or modify things later on, know how we got to where we are. So I have a question on the tagging system. Do you think you're gonna be able to get to the, well, after your last comments, I put in an iteration zero, right? The slightly more advanced version of, you know, the basically no logic version. Will you be able to get that done in time for us to use it, you know, basically by Friday? Is that something you think you'll get done? Even like in production, is that what we're talking about? Well, I mean, yeah, at least into test, right? Okay, I'll have to see what is in iteration zero. If it includes designations, then probably. Okay, it was just what you had discussed, you and I had discussed and, you know, through the comments, you wanted even a simpler version than the iteration one, so I went through and I specced that out real quick. Okay, I'll look through and see. I should be able to have that done by Friday. Okay. So I had on the scene, most of all, we talked about it when we were done. Okay, great. All right, so that just leaves us with Josh. Thank you for all you guys to roll in here for the live, printing up, we do printed models of it. Thank you for responding with our good friends at the update provider. And I think that's the thumb total with the progress that I've made. Oh, unboxing many packages that Derek has mailed us and getting this place ready. For men, probably the most obvious, like hitting refresh on the national news over and over and over again, like a rat addicted to cocaine. All right, well, I know that you and Chris have been doing a ton of work in getting the place and logistics set up for us to all arrive next week. So yeah, I know that's been a big lift as well. So, okay, so I've got some follow-up items here. Is there anything else that we should talk about as a group? No, I just have some questions once we hang up on the website, the travel ones. Non-development questions, yeah. No, no, no. All right, great. Well, then I'll go ahead and we'll call this for today. And we'll talk again tomorrow.