Daniel (00:03.214) Are we live? We are live! Dave! So nice to see you! How's it going? Dave (00:08.094) Kia ora, good morning Daniel, how you doing? Well good evening for you. Daniel (00:12.16) Yeah, I'm good. I am very happy because I was under the weather, let's say. And now I'm better. I can't like, yeah. And I was really afraid that I wouldn't get better before going on my trip tomorrow. I can totally tell you all about my trip tomorrow. And that would have been an absolute bummer. But before I tell you about the trip, hey, listener, welcome to waiting for review. Dave (00:20.606) Mm -hmm. Dave (00:30.35) Yep. Yeah, for sure. Daniel (00:41.262) a show about the majestic iOS, no, not iOS, about the majestic indie developer lifestyle. Join your scintillating hosts, Dave and Daniel, and let's hear about a tiny slice of their thrilling lives. Join us while waiting for a view. Dave (00:59.774) Hey. Daniel (01:00.814) Starting with a wave today. Yeah, I am going to go to Barcelona tomorrow. And it's like a really expensive trip because shortly before Christmas, I was thinking, I should really do something just for myself. Like a lot of the things I do, I do it for others or to make others happy or like for like Dave (01:04.798) Excellent. Dave (01:10.75) Mm -hmm. Daniel (01:28.718) group, like my family or whatever, or my friends or whatever. And so I was like, I want to do something that's just for me. And I bought myself a ticket for the Formula One Grand Prix in Barcelona. Dave (01:43.838) Ayyyy Daniel (01:45.166) Like I did a lot of research, of course, first I was like, okay, I want to go to a formula one race. I've never been to a formula one race, but I really want to go. I'm really into motor sports and I so want to see that. And, and so I was thinking like, where should I go? And there's like a lot of, especially in Europe, they have a lot of different racetracks. And I was thinking about which, which other racetracks that I like, which are mostly like, like Belgium, Austria, and, and Spain and Hungary. Yeah. But also like which ones are easily accessible and especially Hungary is apparently is and is very hard to get to because like they have bad shuttle bus buses. Same with Italy, same with Belgium. And then Austria is good to get to but there's no hotels because it's just like in the mountains basically. And so Barcelona, Barcelona it was and... Dave (02:15.486) Mm -hmm. Dave (02:37.438) Right. Daniel (02:42.702) I asked a friend, I've asked a few friends, but they also all didn't have time. So I'm going alone and it's so cool. But then last week I got ill. I still don't know what it is. I did have a sore throat and I was very exhausted. So, and it kinda like, I don't know, headaches and stuff like that, but like still I did like daily COVID tests and they were all negative. Dave (02:57.342) moot. Daniel (03:11.95) I still isolated and just like took it very easily. And luckily I'm just about ish recovered. Like I don't feel like a hundred percent, but I feel good enough to be like, okay, I can do this trip. And I'm really happy about that because, I would have been so mad. I would have been so mad. Like they would like, like not only about the money that I'm losing because like you're not getting any of that back. Dave (03:21.822) Yay. Dave (03:31.806) Yes. Dave (03:36.19) Ha ha! Dave (03:39.71) No. Daniel (03:41.038) but also just about the missed opportunity. Like I've been looking forward to this trip for half a year and just be throwing it away at the last second would have been so shitty. Dave (03:52.19) Well, I'm, I'm looking forward to seeing pictures and potentially videos, eh? Daniel (03:56.398) yeah. Totally. All the, all the, like, I'm, I, I, I'm going to take so much content. Yeah, I just had to add a, I had to wrangle with the check -in website for the, for the flight. Because the flight is tomorrow evening, my time. So it's basically in 24 hours, which is way later than I usually fly, but it was cheap. Dave (04:03.614) Awesome. Daniel (04:23.31) And now recently I've realized, because I arrived so late, I probably have to get a taxi instead of getting public transport. So I'm going to pay extra for that. So all the savings that I made, I completely like, I should have thought better. The other thing is I booked a flight with a very cheap airline. I booked with Viewling, which is the Spanish Ryanair basically. And I was just completely unable to check in with their website. Dave (04:46.846) rights. Daniel (04:52.782) Like I tried it on my phone and it was like completely unusable. So I went to my computer and then it allows you to select a seat. And then I already selected a seat when I booked the thing. So it kind of kind of has like, but where do you want to sit? you want to select a seat? Of course, that's just like 45 bucks extra. So, but actually, actually it turns out the, if you don't select a seat, you do get your preselected seat. It's just like a horribly dark UI. Dave (05:12.766) I selected a seat when I bought this ticket. What are you doing? Daniel (05:22.542) And then it kind of just crashes. It's like, the next screen is just like, how do you want to pay? And like, because I didn't select a seat, it doesn't have anything for me to pay. And the browser console just says like, yeah, the server returned a 400 bet request. And then I'm like, okay, I'm going to try this with different browsers. And like, like, like I have like Microsoft edge, which I use for like every all without any content blockers or whatever. Doesn't. Dave (05:23.102) Wow. Daniel (05:50.478) like doesn't make a difference. So finally I made it. I managed to open the same screen in the app that they have. I downloaded the app and there was a tiny, tiny note at the top that said, you need to pay for minus 11 euro. And I, does that mean like you owe me 11 euros or whatever? And then the button says, yeah, that's entry credit card details. And I'm like, Dave (05:52.318) Yikes. Dave (06:12.798) Yeah, yeah, yeah. Daniel (06:16.878) whatever, I'm just gonna enter that credit card details. I'm gonna check this check in and whatever. And so it's just like, you know, credit card number, expiration, like name of the owner, expiration date. And it also has a dropdown for type of credit card. So I like usually it auto fills that thing because it can tell from the number, but it didn't auto fill the thing instead. Like I tapped on it, a new screen opens with a list of credit cards and the screen is just empty. And it's like. Dave (06:34.11) Mm -hmm. Daniel (06:44.558) just tapping the empty screen. No, nothing's getting selected. So I tap back, I was like, okay, whatever, I'm just gonna leave it empty and see what happens. And then it says like, no, no, no, you've got to fill in this field. This is a required field. At this point, this is like, at this point, I'm like, okay, this is, we're recording in 15 minutes, I would really like to have a boarding pass for my flight. And I'm like, just piling regret upon regret, like, for this flight. Dave (06:46.814) Dave (06:56.286) What? Dave (07:06.334) Mm -hmm. Daniel (07:12.91) I kind of noodled around with it for a while and then suddenly the the note just went away and it didn't want minus 11 euros from me anymore. Dave (07:25.086) Okay. Daniel (07:26.062) And then it said, you are now checked in. Would you like to download your boarding passes? So now I have boarding passes for both the flight there and the flight back in my Apple Wallet. And we'll never open, hopefully never have to open the stupid app. Dave (07:38.11) Okay. Dave (07:43.486) wow. So. Daniel (07:44.526) Yeah. And so I have, I'm like, I already, I'm already half packed. So I have my Lewis Hamilton t -shirt, of course. I have a hat just because the sun is going to be going to be horrible. I got like, Dave (07:53.566) Mm -hmm. When you say Lewis Hamilton t -shirt, is that like his face on a big blown up thing or what? Daniel (08:04.622) I know. No, I am like, like, he's kind of colors is like he has like this very, very neon yellow color sometimes. And so it is a wonderful functional shirt, you know, like, like that footballers were so very like breathable in that neon color. And then just has a big black letters that is number 44, which is his race number. Dave (08:07.454) Number one fan! Dave (08:18.11) Okay. Dave (08:25.854) Okay, yep. Daniel (08:33.55) And that's kind of nice. And I kind of bought it because usually these things, I'm like, I cannot wear this in real life. Like, this is just like something I'm going to wear once to that event and then never again, right? But this, because it has this very sporty fabric, I can totally see myself wearing that while bicycling. So that's why I'm like, yeah, of course I needed to buy that. Dave (08:56.222) Absolutely, absolutely. I've added a note to our show notes saying Daniel needs to link a photo in the Lewis Hamilton shirt. Okay, so. Daniel (09:08.726) Yeah, like, do we have a follow up list of things because like, basically next episode, I can then I can then add a photo. Dave (09:20.062) It'll be in the notes, so if you don't get to give me a link to you wearing the shirt before I upload this, then we can certainly cover it off next time. But yes, sorry Daniel, obliging you to take a photograph in said neon t -shirt. Daniel (09:29.518) Fair. Fair. Very good. Daniel (09:38.542) I just have to find the perfect spot to sit and or stand so that the TV cameras will pick me up so I don't have to take the pictures myself. Dave (09:47.774) cunning planning plan. But yes, I. Daniel (09:50.094) Yeah. Like if you are someone who watches this and you see me, you see me on the, on the, on the telly, like do take a screenshot. Dave (09:58.238) No, I was thinking you could get a photograph Daniel and do it for the gram. Put it on the Instagrams. Obviously. Daniel (10:06.158) Obviously, obviously, no, I'm totally totally going to spam spam the gram. Dave (10:14.43) I've been on the gram a lot lately, actually, spending a fair bit of time putting the old video of my app and stuff on there. Daniel (10:18.766) huh. Daniel (10:24.43) Fantastic. Are you also getting follow requests by accounts that are named a lot of young women? Dave (10:31.294) kinda, but I tend to just report reject cause I'm like, off you go. Daniel (10:35.694) Yes, but that was the best name like a lot of young women want to follow you Like I mean good for them, I guess Dave (10:41.694) Hahaha! Yeah, but no, yeah, occasionally get to get some of those. It's not too bad actually for bots. My experience of Instagram is certainly not as bad as I remember Twitter was when I was using that a lot. But yeah, I'm kind of crowbarring our conversation towards it because Instagram is where I recently caught up with a customer of Govj user of the app. Daniel (10:55.214) Mm. Daniel (11:13.55) Who do tell? Dave (11:15.162) So yeah, I'm just trying to track whether I mentioned it at all on the last show because it was kind of lined up and ready when we last spoke. But anyway, the view of what happened is that this person tagged my Instagram account for Govj for my apps in one of their videos. And I'm like, sweet. Let's have a look. They were using Govj. Daniel (11:35.278) Okay. Dave (11:44.286) to put on a art installation. This is. Daniel (11:48.846) yeah, you've sent me a few images. That is fantastic. Dave (11:53.278) Yeah, so they're a visual artist. They do a lot of drawing work, a lot of like skate inspired and themed artwork as well. So a lot of like big, you know, bold lines and that sort of stuff. And what she'd done is as part of, I think, a university project, she'd made a bunch of video loops for with her artwork. loaded them into Govj and then put it on a like a plinth in the middle of this room for the installation with a big TV opposite and then with music playing let the audience come in and mix her artwork with my app. Daniel (12:42.574) Hmm. That is so cool. How did that make you feel? Dave (12:45.95) I was pretty stoked, to be honest. I have a thing, like when I release a new version of the app, I generally tend to feel glad it's just out of the way, right? Rather than, yay, I've really achieved a thing. It's more like, I'm glad that's over. And for me, I get the most satisfaction out of customer feedback and those sort of moments, right? Daniel (12:49.582) No. Daniel (13:15.246) Mm -hmm. Dave (13:16.446) So definitely classified as one of those moments where I'm like, hell yeah, that's awesome. Really great to see it in use. yeah. So I messaged her cause I'm like, yeah, that's really, really cool. Love to see it. Thank you. I got a couple of messages back and I'm like, I keep meaning to find out more about how people are using the app anyway. So, you know, I just sort of said, I'm trying to find out more about this sort of thing. Would you have some time to have a call? And we did a call on through Instagram actually through its video chat about a week later. So yeah, just last week. Yeah, so I've been doing this on and off for the last few months really. I've spoken to another Govj user who was based in New York and he uses it in a completely different way for his. Daniel (13:54.25) wow. Dave (14:15.134) his live video work. But yeah, I'm trying this out for size Daniel in a sense of sort of going for really direct user customer feedback and actually finding out, well, okay, how are you using this app? Where does it fit into what you're doing? Because the arena for this, if you like, is pretty wide. You know, like there's the niche of what it does. And then in terms of the type of artwork, the type of performances people are putting on. Daniel (14:37.166) Hmm Dave (14:45.214) It's quite variable. So, yeah, I, I learned a whole bunch of stuff. Like, you know, I learned about how the app was easy for people to use in a way that, I might not have predicted. I sort of always assume you need a bit of prior VJ knowledge. and she was saying the audience really got into it. She had like, Daniel (14:48.43) I get that, yeah. And so what did you learn? Daniel (15:09.102) Mm -hmm. Dave (15:14.302) instructions on the plinth of like, you know, this press this button for, for loading the videos, press this for effects sort of thing to guide people. But I don't think it really needed it, which is, is good. I, I also found that, for her, some of the, the. Base principles of VJing and the art form itself were, it was sort of pretty new. Daniel (15:23.374) Mm -hmm. Daniel (15:28.398) That's nice. Dave (15:42.11) because she's mainly sort of been used to putting together collages, her own drawn artwork, and getting into then animating it is something I think she'd done for online purposes and to explore that end. So then actually pulling it together and doing a live video performance was new. And that then leads sort of tangentially into one of the things I'm going to prioritize. for my users and my customers is I'm actually going to put together some short videos on how to use it, how to get X, Y, or Z effect sort of considerations you need to think about when setting a show up. Which is, that's kind of funny. It's all beyond actually making the app. It's now into more like, so you want to be a VJ, huh? You know, kind of that sort of element of like, and then helping people who are at that moment who are going, yeah, I do tell me. like she's, she did admirably. She certainly didn't need that sort of help from, from me, but I can sort of see from the conversation we had that. Yeah, there's definitely a bit there that could be more helpful. So. Daniel (16:35.006) You Daniel (16:44.782) Fantastic. Daniel (16:58.734) very nice. Like how did she even think of because if you say like she's not very like she's not usually a VJ or she's usually not thinking about VJing like how did she even think about I should do a VJ thing. Dave (17:06.494) Mm -hmm. Dave (17:12.99) I honestly don't know that was that was part of yeah. in fact, I'm just going to have a quick look at my, my notes from the call. and yeah, we didn't really land on that so much, but she's incredibly creative. And I think being into the, the, the skate scene and that side of stuff as well, like there's a, a sort of blurred line of seeing. Daniel (17:14.926) The VJ plinth. Dave (17:41.694) some of this sort of artwork around the music and the rest of it that sort of follows some of the things that she's into at a guess. But I think the idea for the plinth and that sort of stuff, it was fairly organic. She said they had some of these things for displaying some of your art. And I think it had then sort of gone from being like, well, if I was going to do it visually with a video, then we could maybe combine these two areas and use the plinth in this sort of a way. But yeah, it was eye -opening just for me in terms of, yeah, like a whole bunch of stuff. So being at university, they had iPads that were available to be used for this, which is great. But actually getting the app onto it was a bit tricky as well, because I think they're using like, Daniel (18:36.814) Mm -hmm. Dave (18:39.358) Apple School Manager and that sort of stuff to put apps on probably in the primary year. And what it meant was that she couldn't use the full version of the app. She was able to get it on there in freemium with a watermark, but not upgrade to the full. So that was also another aspect of this. The app was pretty damn usable just with the paywall in the way and the watermark showing. Daniel (18:41.966) yeah. Daniel (18:55.47) Mm -hmm. Dave (19:08.062) But the watermark's actually quite subtle on the big screen, which I feel like I might want to close that door a little bit and nudge people a bit more. But I'm glad it was good for her, you know, for the show. Daniel (19:10.542) Mm -hmm. Daniel (19:19.15) Hahaha! Remember back in the old days when every single video on YouTube was like had like this watermarked unregistered copy of I don't know even what it was but you know what I mean after some some some video cutting thing or whatever. Dave (19:33.758) Mm -hmm. Yeah. Dave (19:42.318) Yep. The thing that was quite fun, though, as well, was that the themes that I added to the app for version 3. So prior to version 3, you only had the blue accents at UI, so like a neon -y blue on a dark background. Now you can choose. There's a whole bunch of different themes. She'd chosen the hot pink one. Daniel (19:43.798) No. Dave (20:10.43) And what it meant was on the watermark, the background of the bit that says go VJ free version or whatever on the output. The background actually changes itself to the accent color. So it kind of looked themed as well for the setup. Yeah, there's part of me that was like, God, yeah, the app is far too usable for people to use for free. I'm being too subtle about this and sort of kicking myself. And then the other part of me was like, well, yeah, but also this Daniel (20:24.343) Very nice. Dave (20:39.774) this enabled a show that just wasn't going to happen otherwise, right? So, which brings me to another thing. I've had an inquiry from a, educational establishment in, in your country, actually Daniel in Germany, about, can I do an educational discount on the app? Daniel (20:55.054) Okay. Daniel (21:01.474) What do they want to teach? Dave (21:05.47) Yeah, I know. So it will be some sort of visual arts type thing in a similar sort of vein. Yeah, so this is where having a subscription -based and in -app purchase -based app is kind of to my detriment. I can't offer anything to those establishments today. So I think that is actually going to be another thing that I try and solve off the back of this. Like, Daniel (21:11.214) Mm -hmm. I can see that. Daniel (21:25.71) Mm -hmm. Dave (21:34.174) I want to make sure that if this does come up again there is a route for these managed devices in educational environments because I think that would actually be quite cool. Daniel (21:45.742) How would that route look like? Like, do you know already? Like, what's the... Dave (21:49.502) I'm trying to figure it out. Yeah. So the conundrum is this, if, if, if the school or university uses, devices that are having apps deployed to them through Apple school manager, Apple school manager will let you buy books or apps and get them loaded onto these devices and you buy licenses through it effectively. Daniel (22:05.166) Mm -hmm. Dave (22:14.814) And then you can distribute them through your devices, through the manager. And there's an MDM link there as well. So if you've got, I don't know, a hundred devices and 20 licenses for this app, you can choose which devices get to have the license copy. Daniel (22:28.814) Right. Right. MDM stands for I think mobile device management where you can like, like just manage your fleet of iPads or whatever for a school or other organization. If it's an Apple, if it's an Apple thing, you can also add the A for Apple's MDMA. Dave (22:34.718) Yeah. Dave (22:39.824) Yes. That's it. Dave (22:47.646) You absolutely could do it. And honestly, that might be not too bad a route if you want to make some interesting visuals with my app. But anyway, that's so but the conundrum is this I can put the app there, I think, as it is. But then the app is geared around being freemium. And so then that brings me to, well, OK, how do I give them a version that can be purchased with an educational volume discount, right? So if you buy over 20 copies. Daniel (23:20.046) Also that doesn't work for in a purchase. come on. Like how much, how long has this existed? And like how long has like every single stupid app on the app store been premium. Dave (23:23.294) That's right. Yeah. Dave (23:33.15) Yes. So I'm trying to work out my route, like one obvious route that I can think of without getting too complex and trying to figure out what state anything is in, would be to, to make a new app, to make a new app bundle that is go VJ EDU effectively, probably put something on the app icon so I can distinguish the two quite easily. cause that that's probably a good idea. And then. Daniel (23:52.11) Mm -hmm. Dave (24:03.39) What I can do is set that up as a brand new app and go straight into the Apple School Manager side of stuff. So the app never appears in the regular app store, but it is there for schools and educational environments. Daniel (24:14.606) so you can make it disappear from the regular app store because otherwise I'd just be like, okay, just make a new app that's called Govj lifetime. It costs 80 bucks, but if you're a school, you can purchase it for like a lot less. Dave (24:25.166) Yes. Yep. Dave (24:31.998) Yeah, so that's kind of what I'm doing, except that you'll just never see it in the regular app store. It'll be a case of if somebody ever needs it, yeah. Yeah. So that's the other thing though, is they would have to search for Govj through Apple School Manager and know it exists. Daniel (24:38.446) Sneaky. Daniel (24:49.838) tricky. Dave (24:50.974) Yeah. So a couple of elements to this. I think I'm going to do it. I'm going to figure out, can I, can I add another target to my project? Can I make a new app bundle and then just upload all the same information as I have today for the regular app. The only thing that will distinguish it will be a different icon for that bundle. And if I can do that, then I kind of might as well and jump through the review hoops to just make it there and just wait. Hopefully it goes out and Apple don't. Don't hold me up too much. And then at least I've got an answer if and when I'm asked for this and I can signpost this on the website somewhere as well. You know, educational establishments, click here and have another landing page that just goes, goes through the, you've got to search for this in Apple School Manager, but it exists. yeah. So that's where I'm at. It feels like perhaps too much effort, but I also am aware that I'm. potentially leaving some money on the table in terms of like that volume lifetime purchase so it's probably worth me doing it even if i only see one lot of reasonable sales through this every so often. Daniel (25:52.558) Mm -hmm. Dave (26:07.55) Yeah. Daniel (26:07.694) Hmm. Like as long as it's not too much effort, I like, because I mean, you, you would have to manage two different SKUs which can get kind of annoying. Dave (26:16.478) Yeah, yeah, but I think I can distill it down to to just two different two different bundles and having to upload the app twice to distribute it. Daniel (26:23.918) Yeah, and then. And that can probably be automated if you're into that, that sort of thing. it's annoying that this wouldn't get, this wouldn't be easier, you know? Dave (26:30.526) Yes, exactly, exactly that. So. Dave (26:38.622) Yeah. Yeah. It feels like, I mean, to me, what I would love it to do would be to say, well, okay, if I want to nominate my app to be in the educational store, can I, can Apple do the plumbing in their system? If you like the, those licenses that they buy, they're translates into an in -app purchase, right? Let them just let them buy the lifetime in an app purchase. Like I get. that schools and universities probably don't want to get into managing 20 different subscriptions and having some mess there. But like, let me sell my lifetime in at purchase at least. And then when they're licensed and it loads up on that device, I can then use my existing code that restores the user's purchases in a normal way. And then that way I don't have to have this situation, which is just a bit daft really. Daniel (27:11.022) Yeah. Daniel (27:33.294) It is it is icky. Let's let's see. I mean, like, I think we haven't seen the last chapter of the Apple versus the EU and the App Store versus the EU chapter. So maybe that is the cattle prod that just like pushes Apple that prods Apple to go into the into like, into providing a modern App Store. Dave (27:41.854) Mm -hmm. Dave (27:54.046) Yeah, yeah I'd hope so. I'd really hope so because I don't think any other DMA stuff is done yet for Apple. Daniel (28:03.086) No, probably not. How is how is the your your other app, the switcher app, the the switchy the switchy boy? Dave (28:10.654) the old switcheroo. Damn it, Daniel. Yeah, so that's in an interesting place. I'm trying to just finish it up for generally that first beta test run, which would be a big test of like, can I actually sell this thing or have I just been wasting my time over the last three or four weeks? Daniel (28:29.038) Mm -hmm. Dave (28:37.79) But it's going well. The app itself is sort of settled down into most of the UI I'm pretty happy with. I've got a couple of gnarly little bugs at the moment that I'm trying to figure out before I send it anywhere. So it has a memory leak right now, which is a byproduct of having to work with a C++ SDK and wrap things around it and work with different threads. I've done something wrong. in the middle of all of that. I'm definitely holding it wrong in some way. But I'm, yeah, I can replicate the issue. So I'm probably a weekend away from having that bug nailed. And then after that, it's like full steam ahead into test flight, really. So yeah, that's coming together. Daniel (29:31.054) I am a weekend away from having that bug nailed. He said, I'm looking at my calendar. Like I'm going to go watch like very fast cars do. And of course, like it's going to be exactly that. Like this thing is going to be done by next week. Dave (29:35.39) He said, yeah, I know. Mm -hmm. Dave (29:45.118) Yes. Dave (29:50.91) Heh. You're gonna be stood there and I'm going to message you and I'm going are the cars going now because I've just fixed the bug Yes, I shall I shall let you know we all know what's gonna happen this time next week I'm gonna be telling you I'm still chasing this thing down, but Hopefully not Yeah, so anyway, that's where the the switchy boy is a hats and I I'm kind of excited Daniel, because once I've nailed this bug, I feel like it might help me with some of the other performance issues I've had here or there. Yeah. And so I'm hoping on the other side of this bug hunt and with a couple of the other controls I've got, this becomes really quite performant. So. Daniel (30:30.958) Okay, cool. Daniel (30:43.15) Is it like a threading issue, like a concurrency thing? Dave (30:47.198) Yes, but not currently solvable by Swift concurrency and going hard out into that route. Yeah, I need to take a look. I was halfway inside of this the other evening and one of the memory graphs around this particular object, it was a circle, Daniel. Daniel (30:51.822) I see. Daniel (31:09.55) Hahaha Dave (31:12.542) And there were actually enough connected things there to make it look like a circle on the screen. Daniel (31:18.318) wow. Like back in the Objective -C days, we called that a leak. Dave (31:23.166) It's a definite, it's a leak. It's a strong reference somewhere and not allowing something to be released. I can almost guarantee I'm going to have to call the NDISDK somewhere and tell it to destroy something that it's holding onto. Like manually, you need to release that memory on this thing. Yeah, just let it go, man. Let it go. You don't need this data anymore. Daniel (31:38.862) Mm -hmm. Daniel (31:44.686) Let it go. Daniel (31:50.574) I'm sorry. Dave (31:52.542) But well, it's part of the job though, right? And there was no way of me using this SDK without wrapping it up and potentially encountering some of this. So yeah, that's, but that's where I'm at anyway. A bug hunt and then off to the test flights. Daniel (32:14.926) Good to hear. Good to hear. Like, I'm really hoping that you will gain like a huge amount of performance. But I mean, I love those moments when you're like, I now see the bug. And also, you suddenly realize, wow, this is maybe connected to another thing that happens. I love it when that happens. That's perfect. So yeah, I'm really hoping. I'm actually like really cheering you on. Like I was gonna riffing you earlier, but like... Dave (32:22.27) Mm -hmm. Dave (32:28.19) Yes. Dave (32:37.918) Yes. Dave (32:44.126) Yeah. Daniel (32:45.326) Please, please, like, I'm really happy for you and I'm really excited with you actually to be like, yeah, like, cut the circle, cut the circle and just make everything faster. It's perfect. Dave (32:56.798) And the other thing is, is it will parlay into development on the VJ app as well, because that has NDI inside of it. I'm actually slightly worried that there's a scenario where you could trigger the same bug in GoVJ to some degree, and I've just not managed to see it before now. But so far hasn't seemed to be there. So that's another angle on this. The way the two apps are using this is just slightly different. But the bonus part here is that once I've got this nailed and any performance games that come off the back of doing it better will then be an update away from being inside of the VJ app as well because they're using the same packages. So as long as I have to be considerate and make sure I don't completely change the wiring. But that's that should be fine. So, yeah. Hopefully, hopefully. Daniel (33:39.854) Fantastic. Dave (33:54.622) fixing one app then helps improve the other. Dave (34:00.034) How are you? What's going on your side? Yeah, yeah go for it. Daniel (34:01.262) It's really nice. speaking of, by the way, yeah, I have follow up, but I didn't, I forgot to put it in the notes and whatever. The follow up is basically, like last time I talked about this new cable that I wanted to run from the PlayStation to my Pro Display XDR to see if I can use that as a display for the PlayStation. And the follow up so far is I haven't tried it because I was just like on the couch like with. less with a lot less energy than usual and I was like no I'm not gonna not gonna just like untangle the PlayStation from underneath the TV. Dave (34:38.494) No, no, it can stay there for now. Daniel (34:39.694) Right, so like that's a project for later. The other follow up that I wanted to do has to do, I don't know, did we do this on the show or was it in the pre -show? Like someone complained that my blue microphone cover kind of melted into my beard and so my beard was less visible. And so what you did was you kind of suggested, get an orange one. Dave (34:59.582) Hmm Daniel (35:08.078) And then I was like, yeah, but on German Amazon, the orange one is like 35 euros, which is like ludicrous. And then you found a UK website that would send me five of them, like one of which was orange for five quid. So I actually did that. So I don't know if you can see that, but I have an orange microphone cover. I also got four more covers in very shitty colors, actually, like for like, whatever. These are not really important. Dave (35:18.398) Different colors. Yes. Dave (35:26.59) I can, yes. Yes. well. Daniel (35:38.19) But yeah, that is actually my follower. Dave (35:45.15) That's fantastic. And yeah, it does look cool. And it's orange, which is a telemetry deck accent color. Yes. Daniel (35:46.542) And it looks cool. Daniel (35:52.846) very on brand. It fits with my my wall cover, which is also orange foam, although it's a different color tone, I think, but it's it's fine. Dave (36:00.478) Mm -hmm. I feel like with your bag full of microphone covers that are kind of surplus to requirement, I feel like I'd love to do like a, you know, if any listeners want to have one of those, we're doing a giveaway. The logistics of that would be an absolute pain. But... Daniel (36:22.798) You mean like, do you want like a microphone cover in a weird off -brand color? Like, we can totally... Dave (36:29.662) I take the neon, I take the neon yellow myself, Daniel, but again, posting it from all the way where you are to New Zealand feels excessive. Daniel (36:36.27) The thing is that's not, it looks neon yellow because my lamp is kind of like lighting it, but it's actually just regular yellow. Like, that camera doesn't kind of catch it. It's kind of dirty as yellow. Yeah. but like the logistics are so hard. Like Marina, my coworker Marina recently posted a picture of their telemetry deck cup, which we sent to them in Estonia. And... Dave (36:44.094) no, I'm out. I'm out. Nah, keep it. You keep it. Yeah. Fair. Dave (37:00.318) Mm -hmm. Daniel (37:05.006) Like someone was like, this is so cool. Where can I have one? Can I have one on, on Macedon? And I was like, how, like, I like, and that person was in the U S and like just getting like that stupid cup to the U S was so expensive. And so I was like, wait, we have a U S merch shop now at cotton Bureau. Right. And so I was like, do they actually print cups? They don't print cups. They, but they print pint glasses. They print these kind of tumblers, which I assume are like, like, like. Dave (37:26.686) Aww. Daniel (37:34.894) sealable coffee cups and they have water bottles that they print the logo on but not regular coffee cups, which is kind of sad. But I kind of enabled all those anyway. Like I'm like, if someone wants a like, telemetry like Tumblr, they can now order it from Cotton Bureau. And it's like not, it still is kind of expensive, I think, or it feels kind of expensive to me, but I'm just like saying this, like we're not making any profit. Like you can say like, You can add your own margin. And I just set that to zero because I really don't want to pay any more taxes in the US, except for SaaS products, which are kind of like a specialist category. Speaking of SaaS products, that's actually the thing that I wanted to tell you about is I've been working a lot on server orchestration. Like the show notes say, Daniel is a conductor, which. Dave (38:10.366) Yeah. Yeah. Dave (38:20.638) Go on. Dave (38:31.454) Ha ha ha. Daniel (38:32.078) Which of course orchestration, but also the server train is leaving the station. Choo choo. Dave (38:38.33) I can't say the thing I was going to say but yes. Daniel (38:40.074) Yeah. Choo -choo, mother flipper! Dave (38:50.078) Yes, choo -choo, rob a docker. Daniel (38:53.038) Right. So anyway, the telemetry next servers, especially the data, like the druid servers, God, like half of the people are just like reaching for their podcast app and pressing like fast forward 15 times. If you're still here, thank you very much. Anyway, they need to move off of Kubernetes. I think we've talked a lot about this already. And so now the path becomes clear and the path is basically. Dave (39:08.254) Yeah. Dave (39:15.646) We have a bit. Daniel (39:22.222) they, I want to provision virtual machines using Ansible. Ansible is a tool for server orchestration where you basically write what is kind of a script, but also kind of a functional description of the end state in YAML. And then it gets kind of interpreted by Python. And then it makes like a, there's just a number of servers do that. Dave (39:31.71) Mm -hmm. Daniel (39:51.79) So I can give, I don't know, like 20 servers the role of you are now a Druid historical node. And so it turns out that there are no real good, what is called playbooks for hosting Druid, but also especially like for the stuff around it, like the log collection, the automatic making the cloud provider that we have automatically, right. startup, like N new virtual machines, and then also like getting the IPs for that for those machines and installing like, like SSH keys so that they can actually be integrated into the whole thing, that kind of stuff. And so I have been like working with that. I kind of had to like because people ask me like, why are you choosing Ansible instead of like Terraform or Puppet or Chef or whatever, like these are other tools that kind of do the same ish thing. Dave (40:23.166) Mm -hmm. Dave (40:33.214) it. Daniel (40:50.861) the answer is because it's open source and free, like some of the others, of course, cost money. And also because it's in Python and also because I tried out a few, and this just felt like the easiest or it felt, it felt the, like, it kind of fit me the best, but I might totally change, like change. Like I think the, the knowledge that you gain in like, okay, how do I orchestrate a Dave (40:55.902) Mm -hmm. Daniel (41:18.574) cluster of gaggle of druids. I think these are probably more or less portable. But yeah, I've been learning that. And then it turns out that also I hit a bug because a good friend of mine, Arno, he is a server wizard. And he wrote me some of those Ansible scripts or plays. And I didn't understand them. Dave (41:21.022) Yep. Dave (41:44.254) Okay. Daniel (41:46.126) And so I was like, I was really stuck. So I actually bought a book. I bought a like a real life. I went to the, I went to the website of a local bookstore because I don't want to buy everything off Amazon. And they have like, you can search for only items that are available in the store. And so I was like, okay, I'm just going to click. They had like two ansible books, one from, I don't know, 50 to 1500, but one that was like reasonable, reasonably new. And so I bought it. I read it cover to cover. It is. Not the best book. It was in German, which is already a minus one because just reading everything through a translation layer is weird, especially computer stuff, I don't know. But then also the author had very peculiar ideas. I'm like, how do I do Ansible inventory management with cloud providers, which is something that people will inevitably... come up to if they are actually using Ansible in production. And this guy spends three quarters of the book just on like, okay, so we have our own private Linux machine, but we can have a VM. And then let's play around with this stuff. And then he plays around with like, and then he has like a chapter on how to author your readme files. And then he has a chapter on like, but we could also try out like reorganizing our stuff because it fits on our single. like system better. And I've like, I'm not like, I'm not on a single system. Like, I want to use this in production. And then, I don't know, like, I'm like three quarters of the book, and finally, the chapter comes that I've been waiting for, because that's the thing I'm like, okay, that's the thing I'm really not not grokking. And that chapter is like five pages long. Dave (43:16.03) It's not where you're at. Yeah. Dave (43:36.254) Wow. Yeah. Daniel (43:38.67) And in the end, it turns out that the problem was I didn't have a Python package installed that like was compatible with the Azure CLI, whatever thing. So that was my actual problem. I did understand everything, but now I understand it slightly better because of the book. So thank you, book. Dave (44:00.414) those five pages. It's sometimes like that with some of those books. Daniel (44:03.63) Yeah, but also like I kind of I read through the whole book. It was really quick because I understood most of the concepts already. And so I like but it kind of kind of firmed up my understanding. So that's kind of helpful. You know, I don't know, like and I like I got to do something different, which was also nice, like not only sitting in front of the computer, but also like sitting on the balcony reading the book, you know, so that was that was okay. Dave (44:26.75) Mm -hmm. Well, that's decent. Did you, I want to ask, was this something you could have asked of, say, a GPT -based tool? Could you have gotten an answer from that? No. Daniel (44:30.19) Yeah. Daniel (44:40.046) No, no, no. Like, I don't think so, to be fair. Because A, it is like, so this individual problem was actually like very hard to debug. And B, I think I could probably get a GPT -based tool that's a chat GPT. I probably could make it give me a good starting point, you know? Dave (44:56.766) Yep. Daniel (45:10.286) But then, like I know from like using copilot, for example, I would like, I would like kind of need to need to improve the solution that it gave me with the knowledge that I have. So if I have a lot of domain knowledge, then I can really get the boilerplate out of copilot, for example, and then improve the stuff. Like actually I'm using like everything that I'm writing in Visual Studio Code, which is everything except Swift automatically has copilot. So like I actually have auto like copilot auto completion. on in VS code while writing these YAML files. And it will oftentimes like try to pre -populate the next step. And like most of the times like, yeah, this is actually a good starting point, but this needs to be different and this needs to be different. And then also I need to like switch these things up or whatever. So yeah, I think, and I feel like I don't understand enough to understand all the implications of that the tool will give me, but hang on like, right. And Ansible. play that deploys a druid cluster. Like, I mean, come on. That is, that's four, which one's better? Four or four dot zero. Dave (46:19.422) I have no idea to be fair. Daniel (46:22.99) Okay, this is actually not bad. Like this is not, this is yeah, this is very similar to what I did. It Dave (46:28.798) Yeah. But you're assessing this with the knowledge you now have rather than where you were. Yeah. Daniel (46:35.726) Yeah, like it will completely destroy the system because it writes everything on the main partition and the data is just too much. And I think there's also an open SSH port somewhere, but it's not bad. I mean, yeah, that's probably a good starting point. I still feel like in this case, Dave (46:50.014) Mm -hmm. Daniel (47:04.878) In this case, I was better writing this by hand because especially like, like wrangling those stories, like this is also a topic for like, it has been topic for the last 17 years, of course, but like, like there's so many like very finely, like fine, fine variables and like knobs to tune basically that a, like that Chachi Pt or, or another like, generator -based AI will not be able to finally tune because it will just take whatever stack over a false set. And the whole goal is to get this running, in beta at least, and then start tuning and be like, okay, let me throw a few terabytes of data on this system and then see what knobs I can tweak, what settings I can tweak to improve performance and stuff like that. Dave (47:40.078) Yeah. Yeah, now that makes sense. Daniel (48:00.878) Can I make it crash? Like, can I make it... Can I make it run out of memory, which is a thing apparently. Dave (48:07.39) Yeah. Can you throw it at the same sort of load or issues you've had with the Kubernetes setup and start to see whether you've improved beyond what that was doing? Again, I don't have enough domain knowledge to know whether you've kind of proved that out of the gates just by what it does, but like, it sort of feels like you should be able to compare before and after. Daniel (48:14.414) Right. Right. Daniel (48:20.398) Exactly. Daniel (48:31.022) So like not completely like immediately, but I have like a list of like, I don't know, five things that I can make it do that will immediately see like, okay, if this works, then we have like a big success already. And so far, like the tests that I've run, like some of them actually, like I actually made them crash. So now I have like things to evaluate more. So basically the status is. Dave (48:53.214) Yep. Dave (48:57.566) That's cool. Daniel (48:59.822) All the provisioning works, but what doesn't work is the automatic inventory management. So that means like, if I just like create five VMs by hand, then I can make them into a Druid cluster and that works. But I want to be able to be like, device, spin up five or 15 new machines and then make them into a Druid cluster. Because it needs to be orchestrated. Infrastructure as code, you know? Dave (49:21.246) Got it. Dave (49:27.006) Yep, that's brilliant. Daniel (49:28.238) At some point, I want to be able to hire a sysadmin and or DevOps person. And at that point, I want to be able to hand them something that is reasonably usable by a professional. Dave (49:41.63) That's awesome. And I'm from the sounds of everything you've just said to me. It sounds like you are one more weekend away from having some of these things nailed. Daniel (49:50.19) It feels more like two weeks or at least five like person hours, person days or something like that, which I'm not getting like full person days to put into this project of course, but at the same time, I really, really want to change something because we are like our growth speed has increased again by another order of magnitude in the last few months. And the existing servers are just creaking along. And we need something better. Dave (50:22.526) Right. that's I'm looking forward to hearing where this lands. and I think I'm, I'm trying to deliberately engineer here a point where I can check in on you and go, Hey Daniel, how's, how's that book working out? Return fire. Yeah, no worries. No worries. I'm not going to hassle you for it while you're watching cars go meow. Hello Daniel. I think we'll call back on this in another couple of weeks. Daniel (50:36.214) I'll report back. Daniel (50:50.578) Right. Right. I have one more thing to tell you. I'm going to make it quick, which is another thing that I've been working on, which is I finished working on the website. I think I told you about this. Like not all the content is written, but I'm kind of handing that off to my coworkers, but all the technology for like the CMS stuff is all done. So like we can reasonably create like very different landing pages. Dave (50:55.646) Mm -hmm. Dave (51:04.958) Yes, yes. Daniel (51:20.174) and are continuing to do so. And that's actually really helpful for our Google juice and search engine juice in general. And that actually improves conversions right now. But then I kind of found myself with like, I need, with the thought like, I need to work on the servers, but I also kind of need to wait a few days for Arno to finish his part of the endable stuff. And I was like, Dave (51:32.414) That's cool. Dave (51:45.214) Mm -hmm. Daniel (51:46.094) And I'm all full of like HTML and stuff like, what can I do? And I have had with me this concept of how the telemetry deck UI could look like and could be improved for a long while now. And so I was like, let's see how far I can actually get into implementing this because like it is all documented in our internal repositories already. Like it was more of a case of implementing this and not of like thinking about how it does and. Dave (52:14.078) Mm -hmm. Daniel (52:16.462) I'm kind of done. Like I haven't pushed it to live yet. But I have a complete, you know, complete like prototype running on a separate server. Actually, I can show you, I'll show you this because this is actually public. Hang on. Dave (52:37.886) Okay. Daniel (52:41.294) This is the one. Yeah. Actually, I'm going to put it into the show notes. Dave (52:41.31) We're going for a screen share. Dave (52:48.222) Okay. Daniel (52:49.87) Here we go. But also I can screen share for a few minutes. Dave (52:54.974) Go for it. Daniel (52:56.366) I'm gonna switch it to the different browser. So what we do is basically if I create a pull request in, I'm just sign in before I, before I screen share. If I do a pull request with the front end, then it will automatically generate a separate environment that will host that thing. So that is actually what I'm doing. So here we go. So, this is new. So this is the list of your apps. I was going for these little spark lines because I kinda like spark lines. Also, if I refresh this, then they will animate. They will also say something went wrong, which is kinda not what I want, but okay, not worse. And then also, when I go into one of those, I will now have a tab -based, Dave (53:37.726) Hey. Dave (53:52.446) Yes. Daniel (53:55.982) user interface. So what does it mean? I have like in the time that on the top, I have this this this header bar that is just like, whatever I'm looking at, what time frame I'm looking at, also like, who am I actually? Then I just see the name of the app, because this is actually what I want. And then underneath, I have tabs for the different types of data that we can look at, or the different types of interactions that I can have with this app. Of course, I still have my dashboards, they are in one of the tabs. But also I got the tab for settings. I got a tab for overview. I got a tab for explore, which includes, like, which has the signal types, the payload keys, the playground, that kind of stuff. And what I like about this is that it's very hierarchical and we can have like a more or less sane hierarchy of data, basically. I also had some space. Exactly. Dave (54:49.438) it so it lets you add more things where it's appropriate to add more things yeah Daniel (54:55.694) Like I have a users tab here and that only includes the new revenue slash sales feature, which is not implemented in the app that I'm showing right now. So this only has the empty data, but basically you can send whenever you make a sale, you can send that data to telemetry deck and we'll give you a good estimation about how much revenue you're making. This is especially cool because if you're using iOS and or the Google Play Store, Dave (55:02.302) Mm -hmm. Dave (55:19.422) Got it. Daniel (55:23.79) they will usually report your sales a few days after the fact. So if you want up -to -date data, this is a good way to get a decent estimation, really, really, like in real time. But as you see, that's the only entry in that user's menu right now. But of course, I want to have more there. The goal here really is to have the whole pirate framework. So acquisition, activation. Dave (55:27.71) That's right. Dave (55:34.526) That's awesome. Daniel (55:51.95) retention, referral, and revenue in there and have, R and have, just like, I have, I have like pre -made charts here because this is, these are metrics that many, many people will actually need. So why not have a space here and why, why force everyone to create their dashboard for this kind of stuff? Like people, like you can still like, like get all your custom queries in there, but like, if you can, Dave (55:54.782) Arrr. Daniel (56:21.198) actually have less, like have the same data with less work. That's actually really, really cool. Also, I'm at the charts a bit thicker and I'm playing with improving the tool tips. this one isn't improved yet, but if you look here, for example, look at the tool tip, it actually says, it's more readable now. Yeah. And also like we have, Dave (56:27.966) Yeah, for sure. Nice. Dave (56:39.902) Mm hmm. That's looking very svelte. Daniel (56:48.718) Like in the top bar, I'm actually saying, I'm trying to preview various things immediately. Like this app here has 106 users. It's using Swift SDK 2 .0. It has zero US dollars revenue because the revenue was set up. It also has zero errors because error tracking is not set up in this version of the, or in this app as well. Like we have error tracking now. I don't know if I told you this. Dave (56:56.03) Yeah. Dave (57:13.694) That's cool. No, no, I was unaware of this. Daniel (57:15.246) We just have very, like, it's very, very basic. Like you just, like, there's a convenience method in the SDK that's just like, is like, hey, an error just occurred. Here's the error message. And then it will just try to just like collect those. So this is not exception tracking. Like this is, this doesn't, this does not look at crashes or it is exception tracking, but it doesn't, it doesn't look at crashes. It doesn't look at, you know, like, like a. list of like a stack trace or whatever. This is just like, yeah, like this user defined exception occurred and I'm catching it and telling you about it. Dave (57:46.782) Yes. Dave (57:53.022) Yeah, so it's not a full on. Yeah. Daniel (57:53.966) But it's already kind of helpful. So that's why we're having it here. And then we can make more in the future. Yeah, so this is almost finished, but I'm kind of hesitant to just put it online because I don't know, I want it to be good and not be a meaningless change. So. I've actually put that link that I put already shown. I put that on social media already. And I'm still waiting for someone to give negative feedback because most people were like, yeah, this is cool. Change this, please. So I think I'm going to just put it live next week. Shippit. Dave (58:37.374) Ship it. Yeah, I'm looking at it and I'm going, I can see instantly how that makes more use for me. Like just being able to flick between the apps from the top bar in the tabbed navigation. If that's leaving me sat in the same sub detail of the other app, if I can just flick from one of my apps, but stay in the same view. okay. Daniel (58:57.902) that's actually not the case because that used to be the case. But it turns out that this like this kind of breaks all the URLs. So my recommendation is just like, keep bookmarks or whatever, or keep multiple tabs open because like that was actually a thing that the previous version had. And I kind of removed that because it makes it kind of impossible to link to a different tab, like from a message or whatever. Dave (59:07.71) Mm -hmm. Dave (59:11.518) Okay. Dave (59:25.19) Okay. Daniel (59:26.926) because the system has to keep track of, where are you actually? So, yeah. Dave (59:30.878) Yeah, yeah, it stops being a, okay, so you stop ending up with that sort of sub view bits working properly and it kind of couples everything more tightly, I guess, if you, but, well, fair enough, but it's looking awesome. It's certainly looking like something I want to be using. So I'm, despite that I'm team shippet. Daniel (59:46.83) Fantastic. It is slightly increasing the number of clicks you need to see different information, but at the same time I think the information is presented better and it allows, it's a good framework to add more. Dave (01:00:00.222) Yeah. Dave (01:00:04.83) That's cool. That's really cool. I've got a similar prop set of concerns, I guess, turning up within my apps at the moment for configurations and settings menus. I currently feel like that user story for one of a better phrase for Govj is a bit messy. And it's then something I'm coming up against with the switcheroo, the other app. At the moment, I'm just sort of rolling with what I've got. but there's a hanging task there for me at some point in the next few months to go, okay. I need to go and revise how that works because as I add new settings, it's sort of, it's adding, it's adding extra into an area that's currently buried down in the main settings menu. So you have to go settings and then there's like a general settings rather than specific ones. It doesn't make a lot of sense. Like you can find the things, but It's really not what I want longer term. So anyway, that could be a whole other show and we do need to wrap this show, but there's a, like I say, there's a, there's a hanging task if you like there for me to improve that. And similar to the problems you're solving with this is yeah, you've got a lot of information. You need to split it up in a way that's useful to the user and is accessible as well. Daniel (01:01:12.79) You Dave (01:01:33.022) It's no good having all this stuff but it's buried like 10 clicks down and to the left and then to the right and you know nobody ever really sees that end of the tree if you like. So yeah anyway not quite the same but similar set of problems I think and I'm gonna have to have to give it some love at some point but yeah but Daniel (01:01:57.87) Give it some love. Dave (01:02:02.558) Anyways, Daniel, I need to go. I think you need to wind down. Daniel (01:02:04.174) Hmm. Right. I need to go. I am gonna I'm gonna have to get up early tomorrow, finish packing, and then sit around for a while. Before I head off to the airport. Maybe I'll even do some work. I think I'll try. Dave (01:02:12.958) Yes. Dave (01:02:22.91) No, enjoy the trip. Daniel (01:02:26.222) Anyway, I still haven't decided whether I'm taking the laptop. I'm like 50 -50. I'll see you tomorrow. Dave (01:02:32.818) Fair. Fair. Daniel (01:02:35.246) Anyway, thanks so much for listening. Please rate us on iTunes and YouTube. Send us emails to contact at waitingforreview .com or just like write in the comments down below. Also Dave, tell me where can people find you and your projects? Dave (01:02:52.446) You can find me over at Dave at social light beam apps dot com on the mastodons. And yeah, you can find out all about my apps at light beam apps dot com. Daniel (01:03:06.862) Fantastic. All right, find me and Daniel at social .telemetry .deck .com. Also go to telemetrydeck .com and look at the fantastic design. And also, if you like this show and you want to interact with us more, you should really join our Discord. We're linking it in the show notes, I think, I hope. But we have a Discord channel where we just hang out with like -minded. Dave (01:03:26.142) Yes. That's right. Yep. Daniel (01:03:35.566) indie devs and nerds and stuff like that. And what we do there is we complain about WWC, we complain about all kinds of stuff. We complain about Docker and Kubernetes. I don't know, just like come to come join us. It's actually really nice and say hi. All right, Dave, have a fantastic day and see you soon. Dave (01:03:37.822) Yes. Dave (01:03:44.894) It's not all complaints. Mm -hmm. Dave (01:03:53.726) It is. Yes, yes. Dave (01:03:59.07) Take care, Daniel. Daniel (01:04:00.942) Byeeeeee!