 Welcome to the Minecraft DevSync for October 16th. Yes, October 16th, 2020. Welcome. Alright, so we're wrapping up our sprint here. We've only got a couple more sprints before our big get-together. Which I guess the community doesn't know much about. Maybe we can put them in on that a little later. But we should be wrapping up at least the major work on the wakeward tiger. And this is our last week to get other stuff done before the boards come in this weekend and we start going heads down on bringing those up and getting those ready. So where are we? Chris Vair. Let's start with you. Alright, I have show and tell. Awesome. Oh, we still see as you. Oh, wait, here it is. Okay. The biggest waste of time when we get over. When you go to precise that my craft in my case, it's not test, but in production, in case we.ai slash tags slash whatever the wakeboard is. You get the screen, which is now you have seen before, but is now populated with my APIs. That's a lot of audio for one sample. Well, this isn't a wakeboard sample. I have a very low tolerance level for stupid bullshit. That's my state. That's a, that's a lot of file that I downloaded for fun to press this way. Okay. So all of this works coming from the database. I am not quite. And you click one of these buttons. See, I can error. So I'm still working through why that is. But that should be pretty easy. I also need to implement. Navigation and then wanted to talk to Derek about that. How we wanted to get to. The tagger. Okay. Contribute here with the wakeboards, something. So, so at risk of. Feature creep. Which we don't want to do because I've been packing software and I don't know what to do. I don't know how much to do. Could we have a page that shows all of the wake words that are in process. And then on the left hand side of the page show. Wake words that need work, maybe a color code like red, yellow, green. And, okay. And then on the right hand side, the ones that are complete. And then as an added bonus. And then on the left hand side of the page show. And then on the top down. So the person can select their dialect. So mine would be American English, right? Or Midwestern English or Midwestern white dude. Or I'm not sure what that, what that. What that thing says. But then it would display the page based on completeness for my dialect. So I select male. Midwestern English. And it shows all the ones that are green that have plenty of samples from white dudes from Kansas. And it shows all the ones that are green that have plenty of samples from white dudes from Kansas. And it shows all the ones that have plenty of samples or have fewer samples from the white guy from Kansas. That can be an iteration. Yes. That is not, that is not something for right now. Yeah. My, my charge was to get the most basic of the tag or working in the sprint. And it's, it will be by the end of today. It was very close. Cause I would be, that would be pretty slick from the standpoint of, you know, the language that's been used to have the most. Um, So I, I think we're going to go ahead and get that out of there. I'm going to go ahead and do a sample for each one. And they do a sample for like 10 different words. And it greens them up and they get tagged and trained and. Every time we, every time somebody shows up from Sumatra or wherever. We're able to expand our, our. Yes. I'll shut up now. And let you do your download. Sorry. Well, correct, but just keep in mind that Google actually keeps theirs as male and female voices. So I guess they're not quite woke yet. Okay. So in order for this to be finished, what I need to be able to do is to navigate to it, which I would assume would be a wake word entry on this contribute menu. Right. That's what I had mocked up. I think we just put in the two places I had, we could navigate to it in the Figma mockup was in that drop down menu under contribute at the bottom at a tag wake words option. And unless anyone has a better that was what I thought we could call it, but if someone has a better title for it, I was just going to put a word down there because eventually we're going to have more than this the tagger will have a contribute wake word contribution tool as well. So this is true. Initially, it'll just take you here, but eventually it'll give you an option to tag or to contribute samples. And then the other place we talked about it, and I've got a mockup for it too as a card that we could put on your home page. So when you first log in, you know, we've got a couple of cards there, like, you know, if you're a contributor, one that says, thank you. But you know, that could be, we could wait on that, you know, if you just want to, yeah, I think that's a fine place for it for now. I think we need to rethink this, the whole top level, you know, navigation for this. Like, ideally, this would be a lot more exposed and easy to find than having to go to a sub page of a sub page. But, but for now, in terms of like getting getting it functional, that seems like a fine place for it. OK, so I'll add a wake word to this navigation. When you click on that, you'll come to this screen. My next question is, what wake words do we want to expose or tagging right now? The four I have here are there because they're the four that we have as options when people add devices. So that's why I picked them. You know, no other reason. Does that sound like a good starting point? Do we just want to focus on? Hey, my craft and Christopher. Are all these precise models that are trained currently? No, only a microp has a model. Christopher might. I don't remember where we left Christopher at. We were starting to train Christopher a while back. But hey, Jarvis and Ezra right now are just pockets of things for us. Let's not lose all the world we're at and what we're trying to accomplish. We have plenty of male voices saying, hey, my craft. Our deficiency is, and will be for every wake word, other voices saying the wake word. Or yeah, we don't care about not the wake word. We can get those plenty. But you know, female voices, children's voices, accented voices saying, hey, my craft is really our deficiency. And I'm not sure how we're going to present that and try to nudge people in that direction. But if we don't do that, we may just end up right back where we are, which is a ton of male voices saying, hey, my craft. And that's really not going to solve our problem. Well, again, the next iteration is to, right now, my algorithm is giving me a random something. Again, we're trying to get this functional first. And then we'll see what we're doing. Yeah, it's more about how do we encourage non-male speakers to say, hey, my craft and capture that. That's outside my scope. Yeah, that's what I'm getting at. But then I'm wondering, in terms of the question, direct question in front of us, I'm wondering if we just skip this stage for the moment and link straight to the, hey, my craft, tagger. Yeah, I would agree. I only do, hey, my craft for the moment. But anyway, my point was more for Derek. So yeah. Yeah, I agree. I think it's important for us to get the pathway settled, as you described, Ken, like we've got. We've got certain kinds of data to be tagged. And so let's focus on that. And then we can expand it to the new waypoints. Especially since these are not, well, it looks like maybe there's a Christopher model out there. I don't know how much it's being used. It's really out of our focus right now. I think our focus should be on getting the hey, my craft, a wakeboard to work really well. OK, I'll launch straight into this stuff. Yeah, I'll be able to. OK, so yeah, so I'll go straight from those wakeboard navigation into here. So the next question is, if I click one of these buttons, and this is a question for Derek, do we need any kind of feedback that they completed the task, other than we're switching to the next item to tag? Or do we want like a snack bar or something to come up that says, hey, you did this. Move on to the next one. I didn't know what you wanted to do to acknowledge that they had finished on the screen. That's a good thought. I don't think we need much. I think it just needs some indication that we've moved on to the next screen. I could change skip to done. Well, if somebody clicks something. It'd be nice to just be able to click it and have it to be able to do it fairly quickly. Just click it and see what we're selecting. So I'll just move to the next tag? Yeah, you just click it, move to the next page. OK. I like when they do some kind of transition like there's an indication that something's changed. Like if it was too quick, then they might not realize that the audio file has changed and then just hit the same button again kind of thing. Yeah, I mean, you could set up like you could just keep like a count of how many they've done, right? So they could see the number change. Or you could put like a progress bar. I don't know if that's what you meant by snack bar. I don't know what that is. But just give people a goal of like, hey, tag eight words for us. And the bar just fills up when we get to eight. It could just say, hey, do you want to do another eight? Something like that. Well, yeah, we talked about a progress bar on the top. But we kind of pushed that to next red with points and a running count of your points up top. Right. So maybe for now, yeah, we just, I don't know. Would it be fairly simple to change the button to a tick icon when you click it and add a delay so that you can't re-click it for half a second or a second or something like that? Or they should be played out until you close the sample. That's a good idea. That's a good idea. Yeah. So not to belabor the point. But again, at this point, Derek, the fact that we could say this is a single or multiple case of multiple times the wake word being spoken, probably such a low occurrence, we could almost algorithmically figure that out from the length of the way file. But here is where I really think we need to capture or somehow figure out how to capture whether this is a non-male wake word sample, because those become of higher value to us moving downstream from here. And it's not clear to me how we're going to ultimately do that. It seems like we make that clear to our community in other iteration when that's kind of really the most important thing to capture at this point in time. Well, we just. Yeah, go ahead, Chris. First of all, this is every tag we want to do in the first iteration is just a database entry. So if we want to add female, if we want to add gender, if we want to add age, I just got to put those in the database. And then we'll randomly get selected. So this is not the only screen. This is just the screen that I have. This is the row I have my personal database right now. I don't think this is. Yeah, no, I just. The buttons come from the database. That's the valuable data. Because what comes from the database, Chris? The button name, like the text for the buttons, is that coming from the database? Is that what you're saying? So like if you add. This is a database column. This is a database column. This is a database column. And the values of these are database columns. How did you know they were multiple versus single? What do you mean? They're different values in the database. Oh, I see you're saying their columns are going to fill in based upon the action taken on this screen. Yeah, these are all values for the, do you hear the wake word tag? Yeah, for the gender one, there's different values. There's three values for the gender one. Masculine, neutral, and feminine. Yeah, the way that the database is set up is that each tag can have its own values. I mean, I would suggest for you guys on the back end, like if we need, you know, say, hey, we need a bunch of gender tags, like we have a way to like prioritize that. And I mean, as opposed to putting it in the hands of the user, you know. Yeah, that's past number two. That's been talking about having that algorithm so that somebody like Ken can go in and say, hey, these are my priorities. These are the tags I really care about. And even set up targets, like, you know, I need to have this ratio of tags in order to train a model. And the system should be always trying to get things tagged in that ratio. Yeah, but I think we're confusing two concepts here. What you're talking about, Michael, is the ability to say, this is what I need to train. What I'm talking about is the ability to classify the big set of data we have right now that's not classified. And while it's certainly important to know whether it's the wake word or not the wake word, we know what's going to happen, right? We know that 90% of those samples are going to be male voices saying, hey, my crop. And what we really want is the 10%. And I'm trying to figure out how we can get that or at least start working towards that in this iteration. OK. Well, I think Chris can show us a demo of that next week. Because like you said, it's pretty easy. It's just another row and there's things to be tagged, table. Yeah, so what I want to do, and that's probably a good discussion. I don't want to do it later, but what's the next thing we do to this? So I want to roll this out as simple as it is right now, the ability to tag whatever tags we define on any wake word we have. Then once that's deployed, that will be deployed with all the other stuff I've done to Selene recently to support all this wake word tagging and all the wake word collection stuff. So once all that's deployed, that'll be the first thing I do next week. Then my next question is, what is the next iteration of this tool? If it's improving the algorithm so that we get certain kinds of data that can't allude it to, or if it's whatever it was Josh was saying, or if it was a progress bar, or whatever, just need to know what we want, what's most important for the next generation of this. I'm beginning to talk about that when we plan the sprint next week, but just to put it in your head. OK, thanks, Chris. OK, so was there any other news this week? No, I've been pretty much concentrating on this thing. So OK, great. All right, Ken, you're up next. Yeah, so let's see. This week I've been working mainly on the VK tasks. I've got the wake word upload VK tasks running. Of course, they're not working because of the authentication URL issues, but they're ready to go. I've been looking into the code Chris pointed me to for the actual Selene VK tasks, and I'll be starting on those soon. I did a couple of minor pull request code reviews, and I'm working on a ticket Chris gave me, which is a redirect for the existing Flask app. So I guess the point is we want to just basically send them back at 200, but not actually capture any of that data. Is that the intent behind that, Chris? So I think we've disabled the code in core. But as we've seen, not everybody has the most recent version of core, and we're still getting those things. So what I would like to be able to do is if somebody still uses that old URL that is in the code right now, we redirect it to the new URL in the proxy, and a new URL is what we put in core going forward. Oh, I didn't appreciate that. So what you're saying is that if somebody hits the existing URL, you still want it to hit your new entry point? I'm trying to figure out how that's going to work with authentication since the initial URL isn't picking up the authentication token. Or we could just ignore anything using the old URL. Just send a response redirect and just redirect it to the page. It just sent it as HTML. No, no, no, you're missing the point. So the current code doesn't authenticate. The current URL doesn't expect authentication. The new URL expects authentication. So the current code hitting the old URL and redirecting to a new URL will immediately fail because of a lack of an authentication token. Yeah, why wouldn't it? Why wouldn't it ask the user to log in at that point once they log in with their friends? You can go from the device, not from a swing. Which is for there's code that says, did I just think the wake word was triggered? Yes. Well, let me send that sample up to the host without authentication. Yeah, so talking about a small number of devices, too. And it's going to get out of time. We're looking at maybe 30 files a day is what we're getting up to. Yeah, so to answer the questions, probably it's just strange to prop the return of 200 or something like that. Well, I'll just return that. Yeah, so just go ahead and return a 200 like everything is copostatic. Just don't do anything with it. Yeah, and that could be at the proxy level. So I can do that pretty easily, I think. So not to be contentious, but then why bother doing that? Why not just capture the sample and save it anyway? And then later, they can go into, they're going to go into a separate place anyway. They're going into some holding pattern, and later we can just write some code to pull them out and send them over to the regular and get them into the database. In other words, it's not that big a deal. What we're saying is we'll throw away 30 wake words a day. So we can do that. That's fine. That's fine. I was just saying that we could also capture them and process them later. But yeah, it's just such a small amount. I'll just return a 200. The code won't know any different. It'll think it uploaded its wake word. It just won't. And that's that. That'll be fine. OK. All right, so that's all I'll do. All right. And so are you prepared to start working on these boards on Monday? Does that mean Kevin gets them on Sunday? I'm not working on them on Saturday or Sunday too. The other thing, Derek, did you mail me or send me the prospective unit or two? Actually two would be better just to make sure that it's the same problem with both of them. Yeah, it's on its way. It probably won't get there until early next week. That's fine because I won't be there until early next week. I'm down at the con next week. All right, that's it for me, Michael. Awesome, thanks. All right, Derek, you're next. All right, let's see. So I mostly just continue to work on that G2 of the FDM design, which I'm just kind of just wrapped up before our meeting. I did actually talk to Kevin a little bit this afternoon. He's still playing on game boards tomorrow. He, I asked him if he could modify, to start with anyway, modify his laser cut enclosure for his first tests. And he said he could actually make some more. He's had access to the maker space over there. So he might make a few more of the laser cut ones because they're much quicker to do. But yeah, as soon as we can get this FDM thing going, I'll have Josh and myself and Kevin all spitting out iterations of that. Let's see. I think the things that I still have in progress are, I did get the camera modules yesterday, like I talked about on Wednesday, but I haven't actually got a chance to really mess with them yet. And I do, I just got the LED switch spec stuff to really go over with Kin in detail. So I've still got that to do. Yeah, we've got all the parts. There actually, there was a split shipment on the speakers. So I'm not going to get part of the speakers until I think Tuesday of next week. We only got eight of the 40 so far. But I don't think that'll slow us down. So yeah, that's kind of where I'm at. So I need to do some spec stuff for Ken and play with these cameras. OK. Thank you. I guess. Yeah, so Chrome Assistant is for getting a little love this week, or lately, which is really cool to see. And Steve Stratus, that I've been doing those videos with, has really taken ownership over that and is reviewing those. And there's a lot of work coming from a guy named Tony and a few others. But anyway, so there's lots of good stuff happening there. Personally, I've been working on a lot of CIS stuff. There's a few issues that have cropped up. A big one being like because in the skills, in the micro skills tests, they're using a share. They're using a volume on the Jenkins host. And so if two tests are running at the same time and one finishes and then it cleans up that volume, then it causes the second run to fail. So I kind of thought that that was happening. I mentioned it a little while ago, but I caught it properly yesterday. And so yeah, just looking at the best way to deal with that. It looks like in the core tests, we lock that resource. So two micro of core runs can't happen at the same time. So I'm assuming the same thing should work for skills. Anyway, that wasn't on the board already. But it seems like an important one to deal with. Done quite a few updates to the timer skill and the alarm skill and the news skill to deal with mostly to do with test issues. There was another instance of a problem in one test or the outcome of one test bleeding into future tests. Which was making it seem like there was a problem in a completely different skill. So I've done a temporary work around for that, which essentially just tells Minecraft to shut up at the end of a particular test so that it doesn't then continue speaking and pollute the next one. The lingua franca stuff is still coming along. There was like, when we were doing, when chance in particular was doing deeper testing across the whole range of skills, discovered that there was a reason at some point in the past that skills needed to pass lang equals none into some of the functions, which doesn't really make any sense, right? Like, if you're asking a language parser to do something, then it's probably gonna do some language. But the intention behind it was that that would make it English because English was the default. Anyway, there's some weird things like that where like past decisions have got making it a little bit more difficult. And there's also a little issue with the tests under Python 3.5, which seemed to just be the test not working properly rather than it not working under Python 3.5. So we're probably gonna just say that those should be skipped on that version of Python and call it a day. I think, particularly given 3.5 is deprecated as in globe. Like, it's reached its end of life and we should remove it at 21 or two. And then some, yeah, trying to push PRs from the community forward. So I think, in particular, the plugin system for STT and TTS and audio services are now wake words. I think that all the feedback from Christopher has been addressed from what I can see. So I'm gonna do one more deep look at that just to make sure that there's nothing else and hopefully merge that in. Yeah, I think that's about it. All right, something like that. Josh, do we have an update system yet? Yeah, it's all completely done, ready to go and just waiting for the software. So yeah, the Molina stuff, I spent some pretty significant time with it, including attempting to push the Minecraft Docker image across to the Raspberry Pi through Molina. It does look like that's a workable solution for us. So far I haven't played with their cloud service, which is what they charge for. I've just been playing with Open Molina and the Molina platform itself. And that works fairly well. It allows you to containerize the stuff. It allows you to do updates as an atomic, both to the operating system and to the application. It does everything we want it to do, plus they have a Molina Wi-Fi setup tool that does all of the Wi-Fi setup stuff, including, and I was really happy to see this, including the ability to punch through a captive portal so you could set it up in a hotel or whatever, which has always been something that Minecraft couldn't do. We may have to do some maintenance inside of their Wi-Fi setup stuff to make it look and act the way that we want it to, but that's definitely something that we can have happen. I did find, as I was unpacking our Docker images and pushing them across, that our imaging processes, I just do the truffle-shuffle. It's really fat and chubby. And so it seems to pull everything and the kitchen sink and toss it into the application. And so we do need to narrow our stuff down so that we're not just randomly grabbing huge packages and shoving them onto the device because we needed one function or because actually in some cases, people just simply didn't remove the dependency when we stopped being dependent on it. So I think that that's a workable solution. I think we should also evaluate Pantakor. And there's several other open solutions out there. They're all basically the same, though. At the end of the day, most of them are Docker-dependent and they basically allow you to move your Docker container onto devices in a seamless way. The one thing I will say about the Bolina stuff is that two things become possible for our customers, which I really kind of like. So one is if we work with them on the cloud service, we should be able to export large numbers of devices into groups and then pass those groups off to a new manager. And so if we're working with, let's say, a hotel chain and they wanna manage 10,000 devices, we can set those up, sell them to them, get them all configured the way they need to be and then pass them off to the hotel chain to manage those devices within Bolina. I suspect that there's a business arrangement for there for us to have with Bolina. In other words, we get a payment for making that happen. And then the chain would pay them for the update processes and whatnot. The other thing that stood out to me is that they, it looks like the Bolina company has a really strong interest in deploying Bolina, for lack of a better word, appliances, to the broader community. And so, if we engage with them, I suspect that they would make a Minecraft Bolina image available across all of their platforms and they support it's some ridiculous number of boards. It's like 150 boards. And so if we worked with them on that, anybody who used that platform could really easily grab a Minecraft instance and just shove it onto the device and it would just go without us having to do a bunch of heavy lifting. And that would move us on to be big up on black and until nook and all these other platforms that people are using. So anyway, good progress on that. I actually am probably gonna peel away a day this weekend as well to spend some more time on that. And I would like to get something working for Minecraft in the near term. That being said, the install log for moving our Docker image over there is 2,300 lines long. And so there's a lot going on in there and making it actually work is, as I said, Michael, a note that week is non-trivial. It's not as easy as it could be. All right, thanks. Chris, you had a question. Yes. So does this mean that we need to be running Docker on our machines and we'll be running over Docker off of Docker images instead of like on the bare OS? Yeah, so the bare OS is provided by Belina or they're all these things are the same. They're provided by whatever the application provider is. It provides an operating system that has drivers and all of the magic that allows you to interact with the hardware. The application is deployed in a container on top of it. It looks like pretty much everybody's standardized on Docker. So that's kind of where it lives. The issue that, and so yeah, we would be running inside a Docker container, we could get persistence by mapping local storage into our Docker container and persisting with settings and things like that. But it does get a little trickier when you've had a third layer of abstraction. First you've got the operating system, then you've got the image application, or the application image, and then you have the skills abstraction on top of that, like figuring out how all of that is going to be organized is something that we are going to have a discussion, have to have a discussion about partially because it's good for everybody to have input, partially because as I'm reaching into this, I'm realizing how far out of control Minecraft has gotten in terms of the size of the project and the size of the community and the size of the software and it is no longer understandable in a reasonable period of time coming at it from scratch. Like it takes some dedication to get into it and you guys are deep into it. So you're going to need to weigh in on that. Yeah, so the reason I asked, and you brought up when we talk as a group, is that if we're running Docker on a machine, that's one more thing that's running on our machine. So I don't know, Pi 2 is probably having enough power to do all that, but when we talk about how much CPU that you're going to use, I just want to make sure that we're aware of what the CPU utilization is going to be when we start running a Docker server, or not Docker server, but running Docker on the machine and the Rocker host and all that good stuff. Well, I mean, I see two things coming from running an image, running a Docker container. Number one, it'll force us or encourage us to get skinny, right? And really limit the amount of stuff that we're pushing down in that image and really look at our services carefully and say, okay, where do we trim the fat, right? I think that that's an important piece. And then I don't know that processor times necessarily the enemy, heat is the enemy. I mean, that's what I'm concerned about. I'm not concerned that we don't have enough time on the device, those Pi 4s will allow me to simultaneously stream like five video streams and compress audio and they work fine. My concern is if we're pegging those processors inside a plastic box, that we run out of cooling. And so that's the one that, that's the piece where I have questions. Okay, my just precise is running, give me a half, you know, TPU on it, we're out and flinching. So yeah, I don't have a lot of confidence that we've done optimization in any of that stuff. So unless, can you feel as though precise is optimized for efficiency? I don't know how to answer that. I don't know that I have enough knowledge to answer that intelligently, so I won't. But following up on Chris's point, are we looking at any non-docker oriented installers that we can roll it back and have you tried to do an installation through their stuff and then roll it back to the previous version and it worked? Yeah, all that stuff's super, straightforward, at least with Belina and with Pandacore and the others, like that's a key feature as atomic updates, so they roll back easily. But I haven't looked at any of the other container standards out there. There's a list of like a dozen. And then the second question is, is this process where we say, here's our image, go make this work, or are they saying, here's our product, go make it work to us? Today they're saying, here's our product, go make it work, but that's because we haven't got into a discussion about money. If we were to select them, I would say, we bring them in and say, hey, we wanna build a really, really well-designed process for pushing Minecraft out through your platform. There are a lot of IoT makers out there that are gonna want voice as a feature in their IoT products, so this is a benefit to you. We're willing to pay a reasonable fee for help with this. Let's use their expertise to do all the packaging stuff so we can focus on software. If we do this ourselves, we're gonna dork it up. At least if I do it, we're gonna dork it up. Yeah, it's just my experience is that, Doctor, I've had some bad experiences with Docker. Now, granted I was pushing it and trying to do a lot of really difficult things and it wouldn't work, but it works great. My overall perspective on Docker is it works great. For simple run-of-the-mill stuff, when you get into larger, more complicated systems that utilize more features, you become a Docker expert. And that's my concern is if they're doing it, here's our image, gonna make it happen, that's great. But if they're saying, here's a product, and oh, by the way, we require you to Dockerize your product to work in our environment and work around these issues regarding networking and all of that, we could be in for a bumpy ride. So my recommendation would be to throw them an image and say make it work and then see what they come back with. Yeah, I think that that's kind of their model is that they do the heavy lifting. So we just need to make it make sense for us financially to make that happen and make it make sense for them financially as well. But I think that there's a happy medium there. I mean, we can basically guarantee that we're gonna ship 5,000 units almost right out of the gate. And amongst other things, their technical lead's a backer. I mean, they are kind of headed in our direction. No, no, I understand. It's just, I've been through this with Docker and Ansible and Kubernetes and all of that, in all sense, and it just always seems to be the same thing over and over again. You know, it's the 80-20 rule. You put up the 20% of the time and it's wonderful. You're 80% there. And then the next 80% of your time is required to get the last 20% if you can even get there. So again, if we can, hey, here's the image, go make it work, prove it to us at work, show us it rolls back, that's great. On the plus side too, we can get Docker to work. I know we've talked about different things where we have Docker images running on cloud servers, spinning them up real fast and spinning them down for scalability and that kind of stuff. If we get that figured out, that's something that could benefit us from longer time. Yeah, then you're in a Docker swarm versus Kubernetes and all of that. Yeah, I guess I saw something about somebody porting Minecraft to an 80-266. Well, it has my interest in chatting. Yeah, and in that case, they're gonna need to do something like that because the 80-266 is like nothing, right? Like a Wi-Fi stack on top of a very, very small processor with like two pieces of IO. And if they're gonna make Minecraft work on that, they're gonna need to do all of the heavy lifting on the back end with some kind of virtualization. I do like the idea of going through a road process too and seeing if there's any threat we can trim. That is one thing that is always very hard to me with distribution is you start adding things to your requirements, but you never really go back and say, oh, do I really still need this thing? You just keep adding. And it's been a challenge with every project I've worked on is, how do you know that you stopped or you forgot this code or don't need this package anymore kind of stuff? It's not an easy thing to do. Yeah, we did a little bit of cleanup with the requirements in core recently because it was one giant requirements file. And so you're like, when you change something, you're like, well, maybe something else uses this. I don't know. And so it's now split up a little bit into a couple of different requirements files that indicate what it's actually a requirement of so that it helps somewhat. But I also think the us testing new versions of requirements is gonna help a lot too because there's probably a lot of optimizations that happen within those libraries. And if we're using the later, the newer versions, then hopefully we're getting those optimizations too. What's a compounding problem too? And I have this problem with the web development. I install one web development library from NPM. I went up installing 500 because each one of those depends on another one, which depends on another one, which then depends on three more. And yeah, I'm sure the same problem is there with the Python packaging. You know, you build a package and a lot of, sometimes it's just a certain combination of five or six other packages. All of a sudden you've got this huge piece of software because you wanted to use the handful of packages. Anyway, yeah, the overall thing is not trivial. And we need to work through the workflow. That's the big piece. It's like, how are we gonna go from A to B to Z and do these releases? I would like to set a goal. I actually had a question for you guys after your update. In my view, I would like to set a goal for by the time we're done on November 20th that we can push a Minecraft package through whatever we select to the device and be squared away and ready. Because at that point, we can start shipping. As long as we can connect it to the network reliably and push atomic updates, we can start pushing the dev kits immediately and even 3D printed first run units to critical partners right away. But in my view, that's the blocker to shipping as having an update process that's repeatable and reliable and affordable. Is our goal like to come out of the Hawaii trip to have dev kits available and ready to ship or to have a consumer oriented product available and ready to ship? Dev kits, we can't get the consumer products done. We might be able to get unit one of a consumer product done that it'll be like hand sanded and finished 3D printed. So like we could do something that we could demo but we won't have anything to put in a box and ship. Well, we're not gonna get the softwares so soon we're ready in two weeks either. Let me manage the expectations there. Well, we've been working on it for five years. I mean, I think we can get pretty far. We'll see. Yeah. So before we actually head up to the retreat where we will think the week prior to that we have a short sprint and we should take that time to really solidify our goals for the summit. Just to get a tan. Yeah, I've started a sprint actually and I've named it so I've created sprints that go all the way out to that time just so that I can start to put tickets into the retreat sprint. And I've started to create tickets for that and we can start through those and decide which ones are the ones we wanna tackle. Maybe now that we've gotten to the summit to the community since we've been alluding to it for 15 minutes now. Sure, Josh, do you wanna take a crack at that? Sure, we're doing a summit. So we can only do so much via video chat. The bandwidth of communication is kind of limited. And we're not really stuck but we're not making the type of rapid progress that startups typically make. You know, if you look at Lyft, you know, the Lyft platform that they deployed that became Lyft, the company they built in three weeks. And so the, you know, there's, we're pretty far along with all the core technologies. We're pretty ready to kind of start gluing everything together to create a product. So we decided to get everybody together in one place, you know, in a time zone that's accessible in a place that there's not a lot of disease. And so we're flying everybody out here to the big island with the exception of Gez who's stuck in Australia because of nationalism and doing a big sprint surrounding, a big sprint to see if we can get into, you know, I get the product in a working shape. If I were to set the goal, I would say, you know, you know, eight plus two done and working, maybe not perfect, but eight plus two, meaning the setup and the, you know, volume control plus the top eight skills people use, you know, with an update process that's repeatable on the dev kits and, you know, from there, all the changes becoming criminal. So we're starting that on November 9th here and we're gonna do a 12 day sprint and see how much we can get done. Do you have whiteboards, Josh? Yes. Okay. I'm feeling they might come in handy. Yeah, I have an entire wall of the garage dedicated to whiteboards. I'm sure this is a silly question, but you've got plenty of USB keyboards and mice out there, right? Yes. And there's everything you guys need to work will be here on site, including, you know. Yeah, he says my plan tomorrow to pack USB keyboards and mice and stuff like that. We'll be able to mainline coffee and, you know, the weather's solid and, you know, we'll be able to get some recreational activities out like Chris and the girls will, I'm sure do pancakes and whatever in the mornings and you keep us fed and just, we'll just, you know, eat and poop and code. Have a good party. Well, I give you some advice because my wife's not really happy about the trip. So I told her, here, you know, I always wanted to visit Hawaii before I die. Don't tell him that. Well, I will admit that ulterior motive is to make a case for locating the company here and growing it here. Like, you know, we're kind of the seeds of a company right now. You know, I'd like to see us at 50 or 100 staffers, you know, really building something that's competitive in the next several years. It's great to have a distributed team but by the same token, it's great to have everybody in the same place and if folks are happy with this place, maybe this place is where we are. It's certainly affordable relative to Los Angeles or San Francisco or Seattle or New York or Boston and the weather's better than any of those places, including LA. So there's that. We haven't had any COVID for like three or four months. So just saying dollars, dollars has been great. You're pretty boring, Chris. Everything is poisonous. Plus, you have multiple creatures that will eat you. Like, yeah. Details. We're still alive. You get to a volcano, Josh. You're playing good, Josh, but we're not on the top of the food chain. Your prime minister went swimming in front of a group of reporters and didn't come back. Now, if you could replicate that for leaders here in the U.S., now you'd have a case. They need to be able to swim. Hot air floats. Wow. Well, on that positive note, I'll keep everyone apprised of the situation when the hardware comes in tomorrow and you'll be getting timely updates on that. And we'll get those shipped off to Derek and maybe we'll be sending some direct. Depends on how things work out here. But yeah, so I'm really excited about that and forward to getting everyone updates on that process over the next week. So, but for now, unless there's any other things people want to bring up, any last words? Well, no, update technologies. Make sure that we consider the developer experience on those too. But I'm sure we'll look at that and we'll look at the different options. Yeah, as I'm looking at it, I'm beginning to understand why companies lock their platforms up. I don't think it's necessarily ideological in every case. It's extremely practical to simply be able to enforce this is the way it will be instead of being flexible. So we do need to figure out how to both provide reliable updates that are controlled and secure and also give the end user the ability to hack it and break it and do what they wanna do with it. All right. But yeah, well, the goal is, I mean, the software will always be open, right? But for a consumer level device, we need to make the common things easy and the uncommon things just need to be possible, right? All right. Well, thanks everybody. I'll talk to you all next week, if not before. Have a great weekend, everybody. Have a good weekend. Have a good weekend.