 Welcome to Microsoft's 4th of September developer software meeting. Here we go. So this is the end of our sprint for this two weeks, right? All right. So let's take a, we'll go through the existing sprint and just do a quick check in on how we're doing. And after the meeting, if there's anything that didn't make it in by this sprint, we'll, you know, we'll push that into the next sprint. If in the course of going through these items, you think that we shouldn't push an item into the next sprint, then we'll note that. I want to try to minimize how much time we spend actually messing around with the Jura interface during the meeting. And so Emily's taking notes, we can actually get around to doing anything that is more than trivial after the meeting. So with that being said, if we get through all of the sprint stuff in a timely fashion, then we can talk about any other issues that are outstanding there. So without further ado, let's start with Guest. We can't hear you guys, or I can't hear anyone. That is accurate. 20-hour hate fill release. The one, the two things that I forgot to add on before were generating new images of PyCross and the Mark I. So I've added those onto there and started that, but I'll need to get rolled over to the next sprint. Those couple of bugs there, they're still outstanding because we're waiting on the process status and other stuff in core that we didn't want to merge into the 2008. So that's coming in 20.8.1. But I think the PR on that just needs a review. So they're blocked, essentially. And then the yes-no thing, I've put a lot of detail in the comments, so I won't bother going over that. But if you're interested, check out that and we might talk about it later. And then posting the images, I just need to get around to doing that. But if there's any reason, I shouldn't post either of them and let me know. So 112 and 115, you're talking about posting the Mark II images for Qt and for Qivy for the community to test. Can you just briefly go over what that's about real quick again? Just that we, you know, there are people that have made their own Mark II prototype and to date like compiling everything to actually run those, to run Microsoft on those with a GUI is like quite complicated. And obviously we've done the work to do that because we run them on our own devices. And we've just never actually released the software to be able to run things on their own prototype. For the people that have put all the work into putting together a hardware prototype, it's giving them an easy to use image to help evaluate that. Right. So what's the feedback path for that? Like if they have comments on functionality or bugs or anything like that, where do they communicate that sort of thing? Well, I'd be putting it, I'd be putting both into a single thread on the forums. There's also the GUI channel on Minecraft chat, which is where I anticipate. Oh, there's also the Mark II channel. So probably it'd be coming through the Mark II channel unless it was very specifically related. Okay. So we're not posting these up to one of our repos or anything like that. Is there? No, no, no. That would just be in the forums and chat. Okay. Got it. All right. Thanks guys. Let's see who's next. Derek. Okay. So I got, well, you know, it looks like about half of this stuff, but it's not as bad as it looks. But I got, okay. So I did an update or I posted an update in the matter most channel for where I'm at with the, with the full assembly of the first rev of the new def kit design with the SJ201 board. So that's going to be an FDM printed prototype. So that'll be what we focus on after we get done with these laser cut ones. So I've actually got the laser cut parts all done for Chris, Ken and myself, but I'm still printing audio chambers. So that should actually going to try and print something through the weekend. So hopefully I'm pretty much done with that early next week. So I'll clear out a lot of the stuff still in progress. Yeah. I'll just get an email and point me, point me at the STLs and the SVGs for that. Oh, yes. Yeah. Actually, I need to just get them up on GitHub. I've made the changes. Kevin had some suggestions to better access the, the ribbon cable for the display. So I made those changes. So we're just getting posted up on GitHub as well. So the goal is to really get as many of the, although I have the design done for the 3D printed full 3D printed version, or at least the first draft. I really want to get the quick laser cut ones out to everybody first and make sure we get that done. Maybe even a couple extras before I kind of spend too much time on the process of a fully 3D printed one is much slower. So yeah, that's been me. Did not get to work too much on the, well, I've been, I don't know, there's something we might want to talk about afterwards is like this, the re-speaker has been kind of giving us a lot of trouble. It's like maybe we, it's becoming a bit of distraction in terms of trying to perfect it. So that might be something we discuss, discuss later. Yeah. Okay. So that's me. Thanks, Doug. So I spent the week trying to nail down this bug. I know less now than when I started, but I, as far as what the book specifically is, but I do understand our stack better. I understand from a software and hardware perspective. I understand some of the limitations of what we're using with pulse audio and things like that. I also think we have some issues with our basic image where we're bringing in codecs and modules that we don't use and that we don't even have the hardware for and they're in that chain. So that could be part of it as well. But I've been working on that and we'll continue to do so briefly. I looked at the yes-no from a couple of perspectives. So I have a couple of questions for Gez. So Gez, two questions. Are we getting back from the speech to text when it's not recognized as yes? Are we getting back? Yeah. Why EAH and the skill is not keying off of that? It's explicitly looking for yes or is it capable? Yeah. We look for a range of things that mean yes and no. So that's fine. If people say no and it translates that correctly, then it will return no. It's more if you say yes and the STT returns yes or yet or something like that, which doesn't in English language mean yes. And yes, they just got it wrong. I just went to the back end directly through a browser and gave it a bunch of yeses. And based upon where I was standing, I will get back a yes or a yeah. And so as long as we can pick up yeah, then that's not the issue. Hold on. That's with your accent as an American male middle class American male is in Florida. Yeah. So, you know, there's a much broader audience out there. And so, you know, at this point, you know, I think we should be thinking about like if it is, you know, you know, whatever guess was what was one of the ones that gets just brought up. Is there a way for us to capture that as a company and find out that it happened that in, in 6% of instances when we use the yes no skill, the STT algorithm came back with the word guess, right, which as humans, we look at and immediately into it that they meant yes, and for us to build a correction for that, right, because that's the type of thing that we should be paying attention to if we want people using the software to improve the quality of the software. That's exactly what the, the precise training loop does, right. And so I think it's just a matter of, you know, expanding our, our data collection to, you know, to those missed intents as well, right. Which, you know, certainly is on the roadmap, but we can be thinking about it actively. Well, yeah, and I'm putting the ticket that's going that I think we should think about while we're doing this because it's not specifically a word. And so it might need a little bit of, you know, flexibility around how we design a schema and stuff. But I think it's close enough to actually to live in the, in the hot word spotter, tagger kind of thing. I take a more, a much more simplistic approach to that. And I agree with everything that was said. It's just more work there. You know, with the Catholic resistances to go into the yes, no. And say, okay, J E S S is yes. G U E S S is yes. You know, anything that doesn't have an O in it is yes. Right. S is yes. I mean, that's the simplest. Well, let me hold on. Let me. Can I add in that in the ticket. So that's why I kind of, yeah. So I would, I would classify, I would classify what, what Ken just said is a Cluj, right? Which is fine if we want to get this out the door for English as quick as possible, but we has an O in it and also means yes. Yeah, I agree. I haven't really expanded to think about other languages yet. Just saying that that's how my simplistic mind works. Now the other issue is that it could be the case and I've seen this the wake word where sometimes depending upon timing, it actually snips it a little short. And while that's not too tough for a micro because it has a nice, a hard cuff or at the end of it. Yes, really does require the trailing S wedge. And if you clip it, that could be causing some issues there. So maybe it's just a turnaround time issue. I don't know. I haven't really looked at it. I just know that I went up to Google speech to text and gave it a bunch of things to see what it would come back with. So anyway, yeah, that's, that's kind of a couple of things I was looking at. I'll continue to try to take the weekend off. Also, also when you're evaluating Google speech to text, keep in mind that's not the way that we're doing the transcriptions. Okay. So the way that the transcriptions the last I checked and you can go check the code, but the transcriptions were being done through the Google translate API with the source language set as English and the destination language set as English, not through Google's speech to text interface. Isn't that interesting? Just out of curiosity, why did we do that? You may want to mark the time here, Emily, because it's free and they never noticed. It's free and they haven't noticed that we're doing it for free. Otherwise, we'd be paying them. Okay. And speech to text pure is not free, I take it. No, they have a variety of different payment plans, none of which involve us not paying them. Yeah, yeah, they wanted my credit card information. That makes sense. Okay. Thank you, Josh. That clears that up for sure. But yeah, Tuesday when we come back to work, I'm pretty sure I will continue to be looking at isolating what this problem is, but from a much more rudimentary perspective, which is I'm going to plug a custom board from Kevin into my Ubuntu laptop, and I'm going to take this one off of the Mark II and plug it directly in and see if the problem persists on either device outside of the Pi environment and then take it from there. Yeah. So yeah, I think we spent a lot of time on this particular issue and based on the lengthy discussion you and I had earlier today, I'd like to limit how much more time we spend on it given the number of things that it could be that are going to completely change with the new SJ201 design. So there's a high likelihood that it's dependent on the re-speaker board and the drivers and whatnot. And so, you know, if you spend another day on it. Yeah, that might be Tuesday and then I await my new marching order. Yep. Right. Yeah, we'll discuss that on Tuesday as well. Perfect. And that's my update. Cool. Thanks. Chris. Okay, so the new upload endpoint in Selene from uploading wake words is done. It's just a PR waiting for review. This tagging UI, that meeting is actually done. I'll move that over. Storage of wake work samples is code complete. I'm just doing some testing, but I ran into a bit of a snag because the Selene, or the precise user on the host that has all the wake words on it is set up to only allow SCP commands. I can't SSH into it or anything like that. So it uses. Talking about the upload server that currently exists. Yeah. Yeah, log into it as in Ubuntu or as Mat. I have my own user ID on it, but I still need to be able to copy them over to the precise user. So I think I'm going to, there's an RSSH restriction on the precise user that I'm considering removing because I also need to be able to, to create directories. You know, On the upload server. Yeah. Aren't you, aren't you creating and work? The upload server is getting dangerously low on storage space. It has access to the NAS. I actually had to modify my stuff to not even work off of the local drive just to do everything on the NAS. Why do you need access to anything but the NAS? I would access. Yeah. I mean, that's, I'm accessing the NAS, but the precise user. What? You should be able to write to it as Ubuntu, Mat or you precise can't write to it because it was set up to be like a service or something, but, and you could, you could certainly do that, but you don't have to use the user precise. That's what I'm questioning. Why is that a holdup? Okay. I figured I did. I like to use application users for anything I possibly can. I don't like using my own user ID for anything. It's just something I've always done and something I like, I would like to continue to do. But I don't even understand why you're on that machine. I have to copy the files over there, don't I? Copy what files? The Lake World files. They go to the NAS. Yeah. And this server has a mount point on that NAS. But don't, doesn't your salini server also have that same mount point? No. How did you get the files over there in the first place? I haven't yet. You sure did. You moved them out of the, out of the directory into your schema. That's a, I don't understand what you're saying. That's a database thing. No, I'm not. Let's take this offline. I misspoke. You moved them from Mount NAS. Hey, my cross. To Mount NAS wake words or something you called it, right? That was all manual. And I did that all on the precise host. Salini. So you did that when you were on the. Upload server logged in as you. Yes. I see. I thought you would expose that mount to the salini server, which you're ultimately going to have to do anyway, right? Yeah, we need to, we need to have a sit down and talk about the architecture because Salini's in New York on a separate network and the Mount stuffs in Lawrence on the wicked network. And there's 10 gigs of capacity between the two. So capacity is not an issue, but I think we want to think through the security construct carefully and, you know, whitelist if we are, I mean, I'm not opposed to doing an NFS mount over the internet. We need to talk a little bit about crypto, but I'm sure it can be done securely. However, I think we need to have a sit down and talk about that architecture a little more carefully. I think you misspoke when you said 10 gig, you meant 10 terabytes. No, there's a 10 gig, 10 gig a bit per second. Wow. Link, through hurricane to the Digital Ocean data center in New York. Well, I think you're right because right now, like you pointed out, we basically have three different data centers involved in trying to communicate. And just from a transmission perspective, that's probably less than ideal. Yeah, hold on. You said three. Salini's running in New York. We've got Lawrence, New York on Digital Ocean. Yeah. And then Lawrence, what's the third? Wherever the upload server is running. I don't believe that's running in Lawrence. Yeah, it is. Oh yeah, it's in Lawrence too. Sorry, I thought you were about to tell me that we had an S3 bucket at Amazon. No, no, I wasn't going to do that. I've had that conversation with this team before. So you scared me a little bit. No, no, no, but it's on a 10 dot. So it's on a sub. Alright, let's just put a pin in this. Okay, I totally agree with Josh. We need to have a separate meeting about this and discuss the architecture. I'd like to see some diagrams that very clearly delineate where things are and how things are stored and how things are moving around because we've talked about this at length and we've discussed the implementation, but still there's some confusion about things. So let's go ahead and have a meeting about that. Somebody, let's draw the diagrams at a meeting because I've got about half the knowledge and Chris has the other half. Alright, yeah, let's do something for Tuesday then. Okay, I'll do that. As of right now, I have a script that does SCPs. So I'll just stop it right there and once we decide that I'll change it or get rid of it or whatever I have to do, that's what I've been doing for the last couple of days for this because that was my assumption was that we were SCPing the files over. So that's why I wrote the script. That is actually true. That's how I get the training data from the upload server to the precise Lambda2 server is through SCP as well. So that's fine. Alright, and if I could do it, I would use SSH as a database. So I'm very comfortable using SSH for everything, but we can talk about other protocols on Final Call. Okay, so that I thought that was done. That apparently is not a little finish it next week. One thing I did want to talk about and maybe this is separate meeting to the next thing I was going to do was the SCL83, which was implementing deletion. So what happens when a user deletes their account? We've talked about, yes, we're going to delete the files physical files so that, you know, we uphold our privacy policy, but we would leave, you know, records of the files existence in the database and how all that's going to, we really want that to work before I got too far with that. Make sure I was on the right page before I started doing any coding. So we did something. Yeah, if you have any concerns about that, we should definitely talk about it before it started there. Just to be clear with anybody who is listening, we do delete the data, but it's all being done manually on a regular basis rather than automated. So just to be clear about that. Yeah. Yeah, and Chris, the pruning of the databases is super, super important having been the victim of databases that didn't prune in the past. We should sit down and look at that. Okay. Yeah, so then I didn't get to MatterMost or the WordPress. I didn't get any of that stuff. I'm a little bit of work to do in a way for a collection of extra print before I move on to tagging. This is where I am. Chris, do you have the schema done? Yeah. All the DDLs done and it's all in the database, at least the voices of my personal database. I was going to say, where is that database running? That's the only thing I'm blocked on it and get back on precise once I can select the file names from the database. Right now it's running on my MacBook. Okay. Put it in New York. That would involve a production push and I'm not ready for that yet. My PRs haven't been reviewed. When do you think the test version of your schema will be accessible to a Postgres client? As soon as we figure out the storage thing and how we're going to move the files around, then I can do a release of Selene and we can put it to test. The PRs are going to be reviewed. That raises a question for me. A few of you have some PRs out there for review. I assume that you're just swapping PRs for review. Who's going to review those? Is that going to be Gez or is that going to be Ken or did you just throw it out there and hope somebody looks at it? I tagged Ken, Christian and Ken on it. Okay. I tagged both of them on all my PRs just because of the other two developers on the teams. I didn't specifically say this person or this person. I figure one of them will pick it up or both of them. I did have a look at this one in particular, but I feel like Ken has a lot more knowledge around you guys have been in discussion around how the system should look. I mean, I had a look at it and it looks fine, but I don't know if it makes everything that you were talking about. I think you should really review that one. Chris, I don't know that I'm actually getting automated pull requests in my email. I did see a pull request. Not this one specifically. If you could just email me and yank my chain and remind me, I'll definitely sit down and take a look at it. This is the PR in this ticket here. What's the ticket number? SEL 91. SEL 91. Do you want to assign that to Ken? Yeah, why don't you do that? So my plan was to sorry, my phone. So my plan was to do a release that did the collection stuff and the moving of the collected data to the NAS. So that would be the tagging stuff. So as soon as we can figure out how we want to get the data to the NAS, then we can do a release and then we can talk about how we use the schema and all that kind of stuff. So first part next sprint for me will be finishing that up and then we'll move to the tagging. Okay, great. So we're going to do sprint planning for the next sprint on Tuesday. Our we have Monday off, right? So so we need to reschedule that Monday meeting to Tuesday. That's one thing. And then I can give you well, I was actually just going to check my email see if there's any last second updates here. Well, we do want to have that infrastructure meeting maybe Tuesday's a bit early but maybe Wednesday. Well, earlier the better because this is kind of locked until I on this part until we figure it out. No, I agree 100%. It's just Tuesday is the first day back. We have the sprint planning meeting and I hate having multiple meetings in a day and I ain't eating every day every week. Yeah, but yeah, you're right. We need to we need to discuss this because it's kind of gating factor. I mean, you know, there's no reason to have everything disparate like this because just SCPing is going to be inefficient and expensive, right? Yeah, why don't you guys have that meeting in the morning? You know, it doesn't have to be a long one and you don't have to include everybody. Well, if you get in the morning and Josh, well, that's a different issue. Chris and I can meet and come up with a wish list and then forward it on the notch for how we think it would be perfect. I'm happy to get up. There's some reasons why things are split the way they are. It does make sense, but they're all mostly financial so we can we can work things out. Alright, so Chris, you and I can meet, I guess, Tuesday around noon or whatever and discuss over the entire. I prefer Josh to be there because he's going to know the most about you know. Yeah, it's fine. Just book me something early in the morning. I'm fine. It's not like at 4 a.m., please. Maybe an hour before our normal meeting would be good. Okay. Well, let me get two hours before I know that I'm going to be set. Alright, Michael, did you want to be optionally might that as well? No, I don't need to be there. Okay. Alright. Yeah, it looks like I'm just looking at the calendar. We're going to have to bump a couple things around. I've got a bunch of stuff stacked up on Tuesday, so we might have to cancel the marketing meeting. That's fine. Or the sprint can just go on Wednesday and we can use sprint planning on Wednesday and have a small sprint. I don't... Well, we still have to, you know, we still have some things to talk about, so I'm going to guess and Derek have things we should talk about. So let's just stick with the schedule. So on the hardware front, with my last check-in with Kevin, we've got he's got two boards in the mail. Oh, hey, no. There it is. Derek, why don't you tell us what's going on? Okay, so just a little while... Wait, did I skip Derek on the go-round? No, no. I was saving this as a bonus round. I did get two boards. You haven't done your own tickets. What's that? Michael hasn't done his own tickets. Oh, yeah, right. So we got this, two of these today. And I have not actually got a chance to fire them up yet. So, yeah, that's exciting. And then I think Michael is just about ready to talk about what Kevin had shot over today in terms of progress, but we're going to send some, he's going to send something to you, Ken. And let's see. I think he's going to send the rest to me to distribute. So, yeah, I will try and get this hooked up as soon as I can. And actually, I don't think Kevin's actually tried to boot my craft on it yet. So another good thing about just sharing the PB or Qt reposes is I haven't actually sent the link over to Kevin yet. So he can try it out. Although that's not his main objective, but we can get him to at least boot it up and see what we see. So, yeah, it's pretty exciting. I'm pretty excited to actually get this thing plugged in. Awesome. Yeah, so I think that just to reiterate the plan on the hardware side, Derek's going to build up the hardware, the Mark IIs with all of the displays and a case and everything like that. And hopefully, it packages them in a way that they won't get destroyed on the way to Kevin and Chris. Well, Chris is a little bit closer, I don't know how you guys are going to ship those around. But yeah, so the idea is that Ken's going to get a couple bear boards because he's going to develop directly out of them in USB mode. But I also want everyone to get built up Mark IIs in the cases with the amplifiers and all that kind of stuff so we can test everything. So, yeah, that's what's going on there. And on the hardware side, the other things that are in progress are so we're we're doing a, well actually a whole bunch of stuff. So we're looking at the next rev of the board that will be done through a PCBA house that does all of the side so there's no manual soldering and all that kind of stuff involved. And that will allow us to increase the production volume. Those still we're talking about prototype quantities for development purposes. And then there's some ancillary boards. There's like the little USB connector board that we're going to have made so that we don't have to use a cable to connect one board to the other board. And we're also talking about a submodule for the display because the display that you'll get is going to be a subpar display right now because it's the easiest one that we can get a hold of. But we have a plan for getting an IPS display in much higher quality that actually costs a lot less money. That requires us to build our own daughter board for the display which basically includes the 24 volt amplifier for the backlight and stuff like that. And we're also looking into the camera module and how we can affordably address that as well. So there's apparently some cryptography that built into the Raspberry Pi that limits the camera modules that you can attach to it. Not sure exactly what's going on there but we're looking into it. I just pointed out I didn't go through my tickets. Do I have any tickets in this print? I hope not. Yeah, I mostly said it because I thought that you probably wouldn't have been working on them. Well maybe you did and then there's also a few because I know you're working on a lot of other things not because you're being tardy. And then there's still a couple that don't have people attached to them and I'm sure that I would never touch them if my name's not attached to it because I just go in and click on my issues every time I look at it. Well okay. In terms of the process I think we discussed this last time. I've been creating tickets and assigning them to either this print or the next print. And so there may be a bunch of issues that are in this print not assigned to somebody because I've just been dumping tickets in there because I want somebody to look at them but if we haven't had a chance to look at them yet then they'll be considered for the next print. If there's anything in this print Chris can you bring up the the Sprint? Is there anything with my name on it in particular? There is the yellow screen of death that I assigned to you. Oh well right. I mean I don't know why that's assigned to me. I don't know anything about yellow screens of death but we should definitely yeah I know you've been doing some work on that. I don't actually know if it's a bug or what it is but yeah let's put that into the next print for assigned to somebody. Yeah it's a bug in the frame. It's a bug in how the frame buffers handle it. Gotcha. Okay well that's it. Any last things people want to bring up or any issues not necessarily assigned to the Sprint that we need to discuss? No? Alright then. Well so for all of us here it's going to be a long weekend in the States and I guess that means Giz also gets an extra so enjoy your extra Monday off and talk to everybody on Tuesday. Everybody have a green Labor Day. Happy Saturday Giz.