Dave (00:01.101) Here we go. Daniel (00:01.144) Boop, boop, and we are live. And I have just realized I forgot the recording on the quick time. We're late. Let's keep rolling, keep rolling. I've started it. Worst case, we've lost like two seconds. All right, hi, everyone. This is your intro already. Welcome to Waiting for Review, a show about the majestic indie developer lifestyle. Join your scintillating hosts, Dave and Daniel. That's me, hi. Dave (00:04.717) We are indeed. Dave (00:10.115) Ha Dave (00:15.161) Okay, cool. That's one. Hi. Daniel (00:28.847) and let's hear about a tiny slice of their thrilling lives. Join us while waiting for a review. And I did the intro before even saying hello. So hi Dave, nice to see you. Guten Morgen. Dave (00:45.802) good model. Good model. How you doing? Daniel (00:47.63) I'm good. I'm good. I'm like, I'm really happy to see you as like, all day like, like, every day, whenever we record, like I spent the day like, okay, I I gotta be, I gotta leave some energy in my day, just for tonight. So when I, when I record and then my day kind of winds down and I sit down and like, whoo, I'm, I'm kind of beat like, I hope I have enough energy for Dave, but then I see you pop up on my screen. I'm just like, happy to see you, my friend. Dave (01:03.481) Mm-hmm. Dave (01:16.209) Awesome. Well, for me, you know what the score is. It's in the morning for me when we record and it's the first thing I do on a day of any activity. So you get the benefit of me being fully caffeinated and first thing on the morning bright-eyed and relatively bushy-tailed, providing my coffee works and that I've had enough sleep the night before. yeah, so. Daniel (01:37.571) Ha ha. Fantastic. Dave (01:43.733) All hail my cats who help make sure I get up on time. Daniel (01:48.216) Thank you, Dave's cats. I want to do something a bit different today because I want to start with housekeeping, basically. I have a tiny bit of follow-up and I have a tiny bit of announcement. And then we can go into the deeper topic. All right, follow-up. We talked about the iPhone 16. And we talked about that it has a heat dissipating layer built in. Dave (01:50.297) You Dave (01:55.502) Go on. Dave (02:00.245) slice. Go on. Daniel (02:16.226) They kind of alluded to some sort of heat management in the device. So today I was able to try that out because one thing where my iPhone 12 Pro always overheated or overheat, overheat is in my car. So I have a car that has wireless CarPlay and it has a wireless charging plate. So the phone like connects whenever like the phone just connects to CarPlay when you enter the car and Dave (02:29.379) You Daniel (02:46.186) started. But you can also put it onto the charging thing because wireless carplay just takes a ludicrous amount of power and will suck your battery dry in an hour or so. the thing, though, usually is when I put my iPhone 12 Pro Max on the wireless charging thing, the combination of heat generated from charging plus heat generated from rendering usually a map and then sending that over Wi-Fi to the car Dave (02:56.547) Yep. Yep. Daniel (03:15.982) is enough to make the thing overheat to the point where it's almost in unusable. About an hour in, the map will start to really not update smoothly anymore at all. And then one and a half hours or so, the phone will stop charging, say like, OK, I can't do this anymore. And it will be super hot to the touch. And you can't really use it at this point. It won't respond to touches or anything. What I do usually is I either, after an hour or so, the latest Dave (03:36.973) Yes. Yep. Daniel (03:44.62) I kind of move it off the charging pad or I usually like when the map says, all right, just take the next 60 kilometers straight on the highway. I just like, don't show the map because then the screen doesn't have to update. The map doesn't have to render. So these are mitigations, but I kind of wish it wouldn't do that. And one thing that I did do is like I put in a USB cable into the car and for longer drives, I kind of connect the phone via USB. Dave (04:05.4) Yes. Daniel (04:14.242) And that way it doesn't have a lot of waste heat while charging. And I also think it's sending the carplay data through the USB, but I can't, I don't really know for sure. Anyway, that also prevents the overheating. So today I took a car ride that was one hour, 20 minutes ish. And I had the 16 Pro Max with me and I can tell you it did get less hot and it didn't overheat completely. I still like the frame rate kind of dropped on the map rendering towards the end. Dave (04:22.627) Okay. Dave (04:36.707) Hey! Daniel (04:43.832) But it was like noticeably better. Dave (04:44.024) Yep. So hold on, you using it wirelessly at this point or was it USB-C'd in? Daniel (04:50.796) Yeah, I was doing it in the worst case, like wireless charging plus wireless carplay. Dave (04:56.621) Cool. Cool. That's good. I mean, that sounds no, it's a difficult problem to solve. Right. And this one of the things with the video apps that I make is that it can be very, very easy to turn the device into a hand warmer at that point. Right. Daniel (04:58.262) And so, yeah, still not ideal, but better. Daniel (05:19.65) Yeah. Dave (05:20.949) Yeah. And especially if you're doing all of the work that it would be doing under those conditions, right? So when I've been playing with, sorry, I'm segueing slightly, but I was playing a few days ago with a streaming setup. So I can show off how I use my VJ app and actually teach people. One of the things with that is that I had it literally that setup. I had the phone on a magnetic charging stands because it's nice and easy to operate. It's just here. It was throwing an output over NDI, very similar to what it would be doing over CarPlay. It's encoding to H.264, H.265 and using that to transmit over the Wi-Fi. OBS on my computer is reading it. And I was also, for good measure, wired into my Mac so that I could use the screen sharing over lightning to quick time as well. then so through that mechanism, I was able to show the UI, the output in OBS and also I have my camera and all of that. My phone. Daniel (06:37.826) And you should also drop your Twitch username so people can follow you there for your next stream. Dave (06:41.885) Yeah, what I'm yeah, well I will be at some point so if I do that before the show goes out then yes I'll link it up, but Suffice to say my phone was bloody hot mate in the process Daniel (06:57.4) Like when it's so hot that it gets like kind of uncomfortable to touch, I always think like, is this like, is this like too hot for the battery? Like will the battery just explode? Dave (07:07.565) Yep. Yeah, I'm like, my god, have I made a galaxy note? Daniel (07:11.399) Hahaha Dave (07:16.468) Huh. Dave (07:24.445) off yes I remember those announcements at the time but no anyway that was my experience of the same sort of heat dissipation issue so it's interesting to me that your new iPhone is handling it a little bit better. It sounds like you could still get it to struggle under excessive use but it's certainly not as bad so yeah that's cool. Daniel (07:52.846) There was slightly more than the two sentences I wanted to spend on this, but still good, still good. Second thing is an announcement. I will be speaking on a German language conference here in Augsburg. So if you are in Southern Germany, come visit. I'll be speaking at Heckerkiste, Augsburg, Germany on October 24, which is Heckerkiste means hacker box. their design is kind of looks like a local... Dave (07:57.165) Yeah, sorry, dude. Daniel (08:22.67) coffee chain kind of, I think. It's about startups and computers and doing art with computers and doing business with computers. And I'll be speaking about how prematurely optimizing your code and or your business will lead your startup and or business to fail prematurely. Dave (08:24.675) Hmm? Dave (08:41.468) nice. Daniel (08:42.254) because you got to do the right thing at the right time. Like don't go for a full time into the most professional solution. Spoiler, there's a spoilers for my talk. Dave (08:51.821) Love it. Love it. Yeah, we've spoken about bits of that in the past though, right? On this show and yeah, so that'll be a good talk, no doubt. Is it being recorded? Will there be something we can link up at the time? Daniel (09:07.542) I am afraid not, but if that changes or if I just, because like there are no recordings from the previous years. So I assume there will be no recording this time, but if there is, I'm going to link it of course, even add like English language subtitles. Because I handed in two talks, I handed in two talks to this conference. One was the one I just told you about. The other one was how does the space shuttle onboard computer work? Dave (09:16.473) Mm-hmm. Dave (09:21.09) Awesome. Yeah, yeah, absolutely. Daniel (09:35.398) And apparently they had anonymous voting and apparently both of them were ranked super high. And then when they kind of, when they revealed the authors, they saw, okay, this one, like this person has handed in two. So we're going to go with the higher ranked one. And it was super happy to hear that. So I have a, I have one in the bank for, for next year or something like that, or for a different conference. Dave (09:35.437) Yeah Dave (09:49.977) Bye. Dave (09:55.715) Yeah, yeah, that'd be cool. mean, maybe could you do, they doing anything like lightning talk sessions or on conference slots or anything? Daniel (10:04.704) Apparently they're kind of like bar campy. yeah, but I don't have the really, I don't really have the time to prepare the onboard computer thing. I could do like, because I did already Mars Rover onboard computer. So I could kind of recycle that into a bar campy kind of talk. So if I have excessive time left at some point in my life before October 24, I will totally do that. Dave (10:13.771) Okay, that's. Dave (10:31.593) off. October 24th is my birthday Daniel by the way so yes. Daniel (10:36.753) my god, so that's gonna be my birthday present to you. Dave (10:40.525) Hey, don't ask me how old I'm going to be. I'm turning old, Daniel. Every year. Yeah, I crossed the the meaning of life number this year. Daniel (10:44.59) I looked at my calendar and my calendar is telling me how old you're going to turn. Daniel (10:53.998) 29 Dave (10:56.761) key. And we don't use the 50 word around me anytime soon, although I'm a way away from that. Daniel (11:10.158) Yeah, you're gonna be fine. Dave (11:12.793) Yeah. But we have on our notes, Daniel, a little bit about how Daniel spent his weekend. And I think you need to set the scene because there was a definite setting of the scene when you told me about it at the time. Daniel (11:21.236) Right. Right. There was a definite setting of the scene. So speaking of birthdays, my birthday is in December. That's like two and a half months away. And suddenly on my calendar, there appears an entry for three days, Saturday, Sunday, Monday, secret shit. Do not book anything on these days. And I'm like, okay. Dave (11:46.403) Ha Daniel (11:51.934) So I come home in the evening and Alex says, did you take Monday off? And I'm like, no. So wait, I'm supposed to take Monday off. Okay. What's happening there? And she's like, secret shit. so, so I'm like, okay, next day I go back to, back to work and I tell Lisa, Lisa, I need Monday off. Like there's something Alex wants to do. And Lisa was like, yeah, I know. Dave (12:04.568) Mm-hmm. Dave (12:09.411) Ha Dave (12:21.881) wow, pincer movement. Daniel (12:27.398) And so yeah, I take Monday off and I am at this point, I am not really pleased with the whole situation because I don't really deal well with not knowing what's happening. But still, Friday, I come home after work and Alex hands me a clipboard and says, you're only ever allowed to look at the next page whenever I tell you, okay, now you are allowed to turn the page. Dave (12:41.496) Yep. Daniel (12:57.866) So first page is Daniel's super secret pre-birthday getaway. And OK. And she's like, OK, turn the page. And the next page is a packing list. And it's like clothes for indoors and outdoors, also like a small bottle of shampoo, small bottle of lotion or whatever in a plastic bag. So I'm like, I don't have a small bottle of shampoo. And she's like, ha, got you. Dave (13:10.659) Okay. Dave (13:21.625) Yeah, yeah, yeah. that means flying. That means flying, yes. Okay. Daniel (13:27.926) And so I'm like, this means plane. This means airplane. And I'm like, OK, what's going on? And so I pack my suitcase as well as I can. then it's just like, yeah, I'm not going to tell you anything more, but we need to leave the house at 5 AM tomorrow. And I'm like, OK. Dave (13:53.731) Ha ha. Daniel (13:54.094) So we do leave the house at 5 a.m. to drive to the airport. He booked like super extreme premium parking spots just right next to the departure hall. And in the departure hall, I'm allowed to turn the next page and we're going to Amsterdam. So we're flying to Amsterdam on Lufthansa economy premium, which is pretty nice. And also I get to photograph a lot of planes in the rising sun, which just... with the new iPhone, like took some pretty nice photos. If you hadn't noticed, I am kinda into plates. Dave (14:26.715) Awesome. Daniel (14:31.874) And I was like, flight radar open. was like, there's one coming. There's one coming. So we land in Amsterdam. And while we are waiting for our suitcases, which we just had carry-ons, but they usually make you check those as well these days. And actually, it's more convenient. So I kind of dislike the whole dance that they do with it, but whatever. Dave (14:50.606) Yeah. Daniel (14:56.726) So while we wait for the suitcases, she's like, okay, you can now turn the next page. And the next page is we are taking a train to Leiden, which is a smaller town to the, I want to say West of Amsterdam. This is just along the coast basically. And I'm frantically thinking, what is there? What is there? And then it zooms into my head. What are my two topics, Like space and motor racing, basically. Dave (15:18.275) Mm-hmm. Dave (15:26.499) Yes. Daniel (15:27.686) And so about five kilometers from Leiden is Zandvoort Formula One circuit. So I'm like, ooh, is there, but like there's no event there. wouldn't, I would know like, right. So I'm like, what's, what's going on? So we take the train there and then we arrive in, in, in a incredibly cute and tiny Airbnb right on the coast. So beach and everything. It's very nice. And I'm like, okay, I think I need to know more. Like this is not doing it for me. Because she says like, okay, we have nothing to do for the rest of the day. I know that traveling is sometimes hard for you and like getting to know like new environments. So it's now 12 noon or so, and we have nothing to do for the rest of the day. And tonight I will tell you what we're doing tomorrow. And so I'm like, okay, this is pretty nice. Dave (16:20.867) Ha ha ha! Daniel (16:24.93) that you kind of plant my peculiarities into the plan, but I kind of need to know now. Like this is too much. Dave (16:34.859) Yeah, yeah, yeah, we've done the traveling. I've had the heads up. I've gone through three pages already. Yep. Daniel (16:40.63) Yeah. And so she tells me, drum roll, it's a space thing. Dave (16:47.767) Hey! Daniel (16:48.884) So, and I wonder, should I tell you this in the order of it happening? No. So she tells me what it is. It's a space thing. I'm going to tell what it is in a second, but I'm like, okay, this is really cool. I'm super excited to go there. But at the same time, I was like super into like visiting this racetrack that is now literally like 15 kilometers or so away from us. So I look up the racetrack on the, so I look up the racetrack on their website and they have like a small event there. So I'm like, Come on, let's go there. Let's just like, no pressure. Let's just go there. And that was just a delightful afternoon like that. The sun was slowly setting and there was like this small charity event where like rich-ish people with their own private cars were kind of like just driving laps around the track. So no race or anything, no competition, but they would take like kids as passengers. these kids could win these seats in raffles and you could kind of buy tickets for these raffles. Dave (17:22.041) Yeah, yeah. Dave (17:34.327) Okay, yeah. Yep. Daniel (17:48.488) money they raise would go to something about heart safety for or like something for heart sick children. Dave (17:55.517) Daniel (17:56.61) My Dutch is a bit rusty. But yeah, that was like really nice to watch. There was really pretty cars there and you could get to areas where you usually can't go touring during a Formula One race because like there were like 50 people there total maybe like or maybe 100. So we could go to the top of the paddock building and around the track and it was a really, really cool and a very nice experience, very chill. So we go back home, have dinner and go to sleep early basically. And so the thing we went to on Sunday, was the following. So it turns out that there's this continent called Europe, right? And on this continent, there's a conglomeration of states called the European Union. wait, that has nothing to do with the European Union, various... Actually separate from the European Union, but various states on this continent have a space program together. It's called the European Space Agency, ESA. Dave (18:40.235) tell John Grubber. Dave (18:54.958) Mm-hmm. Daniel (18:55.032) And they have various locations within Europe. And what I didn't even know is that their technology center is in that little city that we're in, Katweig, or Nordweig. Nordweig. It's called S-TEC, European Space Technology Something-Something Center. that's kind of like, for NASA, it would be the Jet Propulsion Laboratory in California, basically. So they are having their open day. Once a year, you can apply for a ticket, but it's incredibly hard to get one. It's actually free entry, but like this, like very, very limited. And she got one. She got two actually. So we went there. We got up super early in the morning, took a short walk, a stroll through the dunes. Arrive there, lots and lots of nerds. Dave (19:36.675) Yeah. Yeah. Dave (19:54.627) You Daniel (19:54.706) And it was so incredibly cool. Like you go there and then like, you see, like they put up a stage outside and they had like a small speech from the director and from the ESA director. They had various astronauts on stage, which was very cool. And then you could kind of go into different buildings. had like, they have one recreation center kind of that is called ESCAPE, which stands for a I'm not going to even attempt, it was kind of fun because they had all these pin boards and they had like space rugby, space foosball, space chess. Like they had a choir that was looking for singers. They were called the Cosmic Background Noise. in this rec center, they built up a large auditorium. they had the... Dave (20:41.433) That's brilliant. Daniel (20:53.166) they had the actor who placed Holden in the expanse. Dave (20:59.007) OK, a show I've not seen, but. Daniel (21:00.248) So if you were watching the TV show, The Expanse, the captain, like the main protagonist, of like he was there. And also there were various people like cosplaying, like just visitors, cosplaying as characters from the show, which I really loved. And I took some pictures with them. They had the astronauts giving autographs. So I have with me, hang on, some background noise, I'm sorry. Because I didn't prepare this, but I have with me the actual, yeah, this is the actual. Dave (21:06.339) Okay. Dave (21:13.838) that's fun. Yep. Daniel (21:30.04) clipboard. Dave (21:31.329) Hey. Daniel (21:33.358) I'm going to have to turn off the background thingy. Dave (21:38.425) Yeah. the portrait mode. Daniel (21:41.577) I did turn off the background thingy, but nothing is happening. Yeah, it says it's turned off, but it is not. Dave (21:47.545) saying. Daniel (21:51.042) Huh. Never mind. Dave (21:51.747) Never, nevermind, Daniel, you can always post it on Mastodon and we'll link it. And if you can just give an audio descriptive, yeah. Daniel (21:56.206) Right. So I have signatures. I have signatures in there from Anna Fisher, who was the first mother in space. Like she's super old already, but she flew 1984 on the Space Shuttle Discovery, which is the one that I visited in April. I have. Dave (22:13.879) Wow, she was in books. She was in books when I was growing up. Right? Yeah. Daniel (22:18.36) Yeah, she was in space when I was born. she, they had, had Andrea Kuipers who's, the current, lead astronauts from the Netherlands. They had, John McFaul, who is a future, who's an astronaut who has not yet been to space, but he was going to be taking part in a study soon about, physical disabilities in space because he's missing a leg been beneath below the knee, I think. And. They had a few more and like all of them are really awesome. They shook my hands. They were available for selfies. They signed my stuff and that was really cool. They had a main campus building where all the different departments, they all kind of had stands and you went there and like before you even were able to ask a question, like the people there. Dave (22:59.043) Yep. Daniel (23:16.426) on a Sunday in their free time, we're like, hey, do you want to hear something about my thing? Because I want to tell you about this and that. For example, I met this guy in the computer science and space part. And he was like, OK, let me tell you about these processors, how we shield them from radiation, and how we test them and everything. so this is one of them. It is shielded with depleted uranium or something like that. Dave (23:40.643) Yep. Daniel (23:46.894) And it is like Pentium class, but it has more cores, but it's very slow, actually. And we kind of didn't really know what to show because it's very hard to show anything with this. So we kind of just installed Linux on it and have this Tetris running on the 100,000 euros space CPU. Dave (24:07.878) that's brilliant. Yep. Daniel (24:08.78) And he was like super proud. He's like, as you can see, is the framework is bad because we don't have graphics acceleration. And I had an incredibly long talk with him about like just how software development processes work at ESA or its contributors. And that was like, basically it's waterfall just all the way down to the individual function and or line of code. Lots of testing. Dave (24:15.641) You Dave (24:35.085) Yeah, kind of has to be. Yeah. Daniel (24:37.742) Lots of review, lots of like just like four eyes principle. And he's like, yeah, that's pretty like that's just usually how it goes. Of course, development is very slow, but you want to be a hundred percent sure that just stuff works and no errors are happening. If people are on board with the thing, then you kind of do the whole thing twice or like you want to be 120 % sure that nothing is happening. One thing that I really liked. Dave (24:41.027) Yep. Yep. Dave (25:00.099) Yeah. So different type of software development to the worlds that we're typically working in. Yeah. Daniel (25:05.602) Yeah, right. Yeah, and I had a few questions about, because I have learned things about onboard computers, like for example, for the Mars Rover. And so I was asking one question that was like, what is safe mode on a spacecraft? So when a spacecraft encounters an error, the literature will often tell you, the error happened and so the spacecraft to save itself went into safe mode. which is a mode where the spacecraft is only doing the minimum thing to just keep itself alive and pointing it pointed in the right direction. in like my mental image was always like, this is something that like this is a separate little chip or computer or whatever that does these things. And that kind of like monitors the big computer. But it turns out that these days when you program a spacecraft, what happens is you're running kind of like real time Linux. where you have extremely detailed control over wall clock execution time, but also just which processes get how much processor. And also, they're using hypervisor to really incredibly detach each process from each other. And then, safe mode is just a process that runs there. there's lowest possible kernel level process that runs. Dave (26:20.408) Yes. Dave (26:30.755) Yes. Daniel (26:31.406) That just is there and that is just a watchdog on the other processes that are supposed to run. And so that was really interesting. He told me all the... We could go into this deeper, I'm afraid I don't... I'm unable to really recreate everything just from memory and I would probably tell you wrong stuff. there were many... Dave (26:38.201) That's cool. Dave (26:51.181) Mm-hmm. Yep. Daniel (26:58.579) of these things, and then they also had a spacecraft testing facility. And that was kind of like my favorite part, because it was on the map, but there were no events there. Like, the schedule had no event schedule there. It was just there. And I was like, I want to go there. This is going to be really cool. And it was like my favorite part of the whole thing. Like, imagine a building that's about, I don't know, I want to say six stories or eight stories high. And it needs to be that high because it has all these high bays for spacecraft, like a whole Dave (27:12.663) Yeah. Yeah. Daniel (27:26.606) a 6-faring that is about 12-15 meters high must fit in there for testing. And so they have one bay that is basically a huge vacuum chamber. You could just put this thing here and see if there's outgassing. You can cool the whole chamber down to minus ridiculous degrees or heat it up to plus ridiculous degrees. You could also... Dave (27:51.513) You Daniel (27:54.99) cool it down but then have these incredibly strong lights that heat up one side of the spacecraft to kind of simulate the sun hitting it from one side. They have another bay that has a test for vibration. They have these vibrating plates but they also have the biggest speakers in Europe. It's called LEAF, the large European acoustic facility. Dave (28:17.997) I'm a terrible person because I get this image in my head of this whole setup and I'm thinking, I wonder how quickly you could cook a chicken inside it. Daniel (28:26.446) Probably very quickly to be fair. I posted lots of images on the Macedons. So I'm going to later after this, I will totally share links to those. But I'm also just like for illustration purposes, I'm going to send you a few pictures here while we are talking. So they had the acoustic testing facility, the vacuum chamber, but they also had an anechoic chamber for antenna testing or antenna development. Dave (28:34.189) Mm-hmm. Daniel (28:55.608) And that was like super cool because that is exactly the pictures you see when Apple talks about their antenna development facility. It's kind of the same thing, right? You have a huge cavern filled and the walls are all filled with these spikes in the bluish kind of spikes and they are made of out of graphite. apparently that kind of absorbs 99 % Dave (29:13.765) Oof. Daniel (29:23.124) of all the radio frequency. you're going to go in there, you don't have any like phone reception at all. But also the spikes are there so that any like electromagnetic beam that hits the thing at an angle and does bounce off, just goes into the next spike kind of, just goes deeper into the troughs between the spikes, right? It is a very spikey room. Dave (29:28.547) Yep. Yep. Dave (29:41.401) It's a very spiky room, given the audio description. There's all these sort of small pyramid-shaped graphite pieces on the wall. And I'm subtly thinking about bouldering and what a torturous experience it would be to climb it. They're very sharp. Daniel (30:04.206) Yeah, you wouldn't be. They are very sharp, especially because they're graphite, so your fingers would like... They had some that you could touch that were not attached to the walls, but they're these graphite fibers they get under your skin, so it's very unpleasant. And also they're hollow, so they would probably break off. Dave (30:13.827) Mm-hmm. Dave (30:17.673) Yeah, nah, nah. Right, okay. Dang. But it looks very cool and I think you joked when you posted pictures before that you've made wallpapers out of them. But yeah. Daniel (30:34.2) That post got a thousand reposts or something like that. It's insane. It's bananas. Dave (30:39.127) Yeah, they were good pictures and yeah, I definitely could see myself using some as a wallpaper there. Awesome. Daniel (30:47.001) the spicy pencils, someone called them. Dave (30:49.293) Yes. Awesome. Daniel (30:51.894) I also spent a ridiculous amount of money in their shop. My new price, most price possession is a gym bag that is made of silver PVC. So it looks like a gym bag that an astronaut would use if an astronaut would use gym bags. And it has the ESA logo and then it says space is our middle name because it's the European Space Agency. It is incredibly nerdy. I love it. And I'm going to go to the gym with it tomorrow. Dave (31:13.337) Mm-hmm. Dave (31:18.437) Dave (31:26.211) Beautiful. Well, it sounds like you had such a lovely time. And I think that the whole story of the clipboard and the surprise of it is awesome too. So well done, your partner Alex for providing you with such a lovely experience there. Daniel (31:46.238) Yeah, we were so beat. We kind of just like dragged ourselves home. There was a pizza place on the way and it was like, yeah, we could just, we're not going to go have dinner somewhere. Like we're just going to get pizza to go. And that was exactly the right decision. We kind of went back to the Airbnb, like turned on the TV to the most like stupid game show and just like sat there quietly munching. Dave (32:06.775) Yep. no, that's fantastic. And I'd say I'm jealous, but I feel like I've had a good experience just hearing about it. I've some of your pictures, so. Daniel (32:22.638) Yeah, I didn't tell you about like the 12,000 other people that were there in facilities that were made for hundreds of people. So it was at times, it was kind of stressful. Every now and then I was like, okay, I'm leaving this right now. I'm going outside to have a breather. And also like it was not very COVID safe. So I kind of last few days I did test and everything is fine though. Dave (32:26.979) Mm-hmm. Dave (32:32.1) Oooooh, okay. Yeah, yeah. Dave (32:52.409) Yeah, that's it. Daniel (32:52.878) Like it's now four days and everything is good. I, that, that, the danger seems to have passed, hopefully. Dave (32:59.925) That volume of people and that sort of a setup, it would be almost impossible for it to be very, very safe on those terms. But it looks like it was well worth the experience. So that's that's awesome. Daniel (33:11.928) Right. Yeah, I did wear masks most of the time and I also had to have this antiviral nasal spray that is just so nice. It's horrible because it smells like chlorine and it just like etches into your nasal cavity. But I feel like that it needs to do that to work. Dave (33:19.993) Mm-hmm. Yeah, we do. You Dave (33:34.809) Yeah, you feel like you're getting your money's worth of proper medicine at that point. Nah. But that's used. Daniel (33:38.414) So yeah, then Monday, Monday, I just met a friend from Amsterdam because I was in Amsterdam. I'm just going to have like, just like meet up with a friend, have coffee. And then we flew back. Everything was really nice. So that was my weekend. Dave (33:56.481) Awesome. That's a time well spent. Well, I've not been away or anything like that in quite some time. But one thing I have been doing is, I think we talked about on a previous show, is I've been recording these little videos and posting to Instagram. And typically I'm taking a walk in my local environment, which includes a beautiful river. Daniel (34:18.104) Mm-hmm. Dave (34:25.881) and some of my rambles that I do on these little blog posts to Instagram are about what they're all about my app. They're all about what I'm doing with the app. And one of the things that I've been up to lately is getting the latest version ready to release. So we've spoken about a few times on this show, I updated the effect selection screen. that was the design that I commissioned, our friend. Daniel (34:25.901) Mm-hmm. Dave (34:55.445) Chris to design. Shout out to Chris for that again. And yeah, it's finally released Daniel. I've finally got 3.3 out the door. Yes, out in the wild. Daniel (35:07.372) It's out. Fantastic. Did you hear any feedback yet? Dave (35:15.001) a bit of feedback again, back on Instagram, people being quite pleased that they're now able to officially use it. think a bunch of people have been using it anyway through my test flights, which is another story. I realized I've been leaving test flight builds up for a while and I've probably cannibalized some sales by that year. But because at the moment, if you go to feed.lightbmaps.com Daniel (35:25.783) Mm-hmm. Daniel (35:33.832) yeah. Dave (35:43.735) You can see my Linktree style post that's there and the test flights is linked. So I think a lot of people may have been clicking through and going there. Daniel (35:55.598) Yeah. And with your volume of sales, that's like a real dent in there probably. Dave (36:00.825) Exactly. Yeah, it's an easy hit. So anyway, I've expired those builds. So hopefully people have been doing that or go to the store. And I'll just keep more of an eye on how I'm doing that in the future. But 3.3 is released. It was a release all the things kind of day as well. So when I release Govj now, I've got to release both the main app Daniel (36:23.81) Yeah. Dave (36:29.547) and then the paid upfront educational version. And I want to keep them in lockstep. They don't have to be, but I feel like, you know, it certainly with something that's a, changing feature like the effect selection screen, it needs to go out at the same time. So that means submitting two separate app store reviews. That means I hold them for manual release and then I wait until both are approved. Daniel (36:52.366) Mm-hmm. Daniel (36:58.798) yeah, that's a bit of process, right? Dave (37:00.386) Yeah. Yeah, it feels like I'm letting myself in for sort of double entropy where either one could get rejected separately from the other. And I also did an update to my NDI mixer focus that got rejected. I'm going to have to work through a couple of things with them there. And an update to my app Looper as well. And Daniel (37:28.59) Hmm. Dave (37:30.329) The reason for all these updates is sort of twofold. One, I want to make sure that they're looking fresh in the store. So even though there's no real changes to them, they've got a new update showing there as in the last week or whatever. The other bit was that I wanted to update my app store keywords for all of the apps. So I've been using a tool called Astro to go and... research keywords and try and make make that a bit better. And I've also started a process there where I'm using the localizations that are available to use localized keywords in different countries. So translating some of my keywords. Yeah. It's yet to bear fruit. And I've been told by others that have done similar things. You need to give it a week or two before you really can can tell. Daniel (38:15.426) Smart. Dave (38:28.953) But the hope is better keywords, better app store optimization and hopefully more sales. Daniel (38:36.952) Are you one of the people who like, do you like, do you set yourself a calendar entry or something to like, check this or will you just like, naturally check on it? Because for me, I always need to set myself a to do or something or just forget it. Dave (38:45.163) I will naturally check on it. Nah, I'm using an app called RCKits for revenue cats and it's got a widget that shows my daily sales on it. And I glance at that at least two or three times a day. I'm fairly, how can I put it? It's fairly responsive to what my sales are doing on any given day. There is a point though where even though I'm seeing stuff come as it comes through almost, I should probably do what you do. So that remind us check because sometimes the, the signals lost in the noise, right? You know, you, you don't get a bunch of sales in one day, nothing in the, in the next couple of days. And you sort of think, it's not really working. But then when you look at it over a week or two weeks or a month, you're like, actually this is fine. It's just stuff is clumping together. so I should, should definitely take a moment to review. Daniel (39:47.02) Yeah. Also, by the way, did you know that if you use Telemetry Deck in those apps, you can actually get your revenue cat data into Telemetry Deck now? Dave (39:47.747) But. Dave (39:56.343) I need to do it. I've been tardy on it. I did update my telemetry deck SDK though, because you were warning me that I was using an old version. Yeah. Daniel (40:04.192) then you're like 90 % there. Just go to that next time you make a release. Go to the docs page. I'm going to link it, And basically, you just have to copy the code there. Not too much thinking involved. Dave (40:12.025) Mm-hmm. Dave (40:18.681) Awesome. Yeah, I'll give that a go. It would be handy to have it all together for sure. And I mean, I've already got things set up, insights and everything set up in the dash in telemetry deck for conversions. yeah, again, I'm reasonably attuned to my stats and I will know in a couple of weeks if I look back as to whether my... ASO attempts with keywords have actually borne fruit. I also renamed my app, actually. it was Govj, I think, with a colon and then VJ Video Mixer. And instead now it is VJ Video Mixer first with a dash and then Govj. Daniel (40:54.744) Fantastic. No way. From... to... Daniel (41:15.864) Ooh, is that something that you've seen people do? Dave (41:17.417) the reason, yeah. And it's, to try and claim those specific words as being the most important thing and then to rank higher on those sorts of searches. So yes. And, whole load of other things as well. Like if you are trying to optimize this stuff, you don't need to repeat words that are in the app name in your keywords. for example, so you can use that space in the hundred characters that you've got for that for other things. So I took a bit of a review and there was definitely some optimizations I could make to what I had. So, yeah, that's been a bit of the process too. I've spread sheeted all of the keywords I've got before and after. And so again, say I look back in a couple of weeks time and I'm like, I've really screwed this up. And things are actually worse. I can just roll back on the next release. I can copy what I had do that. And yeah. Yeah. Daniel (42:19.298) Fantastic. And I mean, that's a learning tool, right? I mean, you're looking for a local maximum, basically. Dave (42:25.619) Exactly. Yeah. And, know, the translations and things I've done for other languages, some of them might not be exactly what people are really searching for as well. Like there's there's a point where I don't have local knowledge, for example, as to how video artists describe things in search of things in Mexico, for example. Daniel (42:49.615) If you're a Mexican video artist, write us in, please. Dave (42:53.145) Yes, exactly. So we'll see. We'll see. Some of it feels like increasing my support burden, because obviously if I update in one thing, I've got to make sure all my localizations sort of stack up. If I want to change how I name something or whatever, I've got to do that. I specifically didn't translate the description of the app for good reason. I don't want to give the customer the impression that the app is localized because it's not. And I think if your description is localized, but then the app is not, that feels like a bit of a bait and switch. So, and the keywords is a little bit more invisible. Obviously the translated name of the app will show when they're searching, but everything else is in English. So. Daniel (43:26.434) Yeah, I get that. Daniel (43:42.914) Yeah, that's smart. mean, once you do take the plunge on translations, then it makes total sense to also translate the App Store description. But yeah, before that, kind of feels like a bit of bait and switch. Dave (43:55.597) Yeah. Yeah. And, I'm not sure I really want to localize the app down to that degree right now anyway. I'm not sure there would be too much benefit. so, you know, I mean, like, obviously I don't disrespect people in other countries who would love it to be translated. I just feel like that can, that can wait right now beyond all the other many, many things that are on my list. Not Daniel (44:23.608) Have you considered doing the A-B testing that the App Store supposedly offers? I say supposedly because I've never even seen it really. I've never really looked at it. Dave (44:31.697) No, no, it's on my list of things I should look at. But again, it's it's it's one more thing in the middle of all of this. yeah, I might do that with screenshots in the next few months. That's that's something I've been considering. And yeah, one one other little bit of finessing, because I've got this the educational version of Govj, the paid upfront one. Daniel (44:39.971) Yeah. Daniel (44:52.792) Mm-hmm. Dave (45:00.311) I tweaked the description to be better suited for people using it for classroom settings, workshops, that sort of thing. So the description is different now for that app. Not majorly different, but just different enough. Daniel (45:15.672) You've been a copywriter basically for the last week. Dave (45:18.177) Yes, yes. So not glamorous, not the bit I enjoy, the bit I enjoy is the dev, but I feel like it's probably necessary nonetheless. Yeah, so that's that's been that's been Govj 3.3. Daniel (45:37.88) Fantastic. Congrats on the release. And yeah, I'm looking forward to in a few weeks, just go back to that and just have a quick look on how your numbers changed and if they improved or even if they went down, just tell, then you should maybe try to give us an update on what did you change? How did that change things? You know what I mean? Dave (45:51.491) Mm-hmm. Dave (46:04.055) Yeah. Yeah, I can do that for sure. think let's let's tee that up for probably two or three weeks time. And yeah, we'll do a bit of a maybe a deep dive on how the ASO stuff went and I can screen share the spreadsheet that I put together and that sort of thing as well. Daniel (46:24.206) Fantastic. I have a question for you though that is a bit different. Can you tell me a bit more about audio reactivity and rust? Because that's what the show notes said, see? Dave (46:31.513) Mm-hmm. Dave (46:39.095) Oof. Yeah, so, and I'm aware we're 45 minutes into the show and this could go on. So I'll try and be concise. Daniel (46:50.254) like, do you want to do you want to move it to next week? Dave (46:54.329) I think we can expand it a bit more next week, but maybe I'll give just a bit of an overview of where I'm at at the moment. as I've spoken about before, I'm looking at cross-platform stuff. I'm looking ahead and going, I would like my app to be not only on iOS, but on Android, potentially on Linux, on Windows, right? It could go on if I go the cross-platform route. Daniel (46:57.614) All right, cool. Dave (47:23.001) One of the technologies that I want to use for that is likely to be Rust. So I'm likely to be using Rust to manage my video pipeline and boxing it all up so that it can then be deployed to two different platforms. That's going to be a big endeavor and it's going to probably take the best part of next year to get something workable in that for me. So, and I know I don't know any Rust. I know enough Rust to sort of bodge something together. And I decided to take the plunge and do like a my first bit of Rust working with an iOS code base. And. I'm definitely a bit rusty. Yes, for sure. So the thing that I've done is that I've built a little Rust library that if you send it through an audio buffer, so like a big stream of bytes that represents. Daniel (48:01.73) Would you say you're kind of rusty right now? Dave (48:22.891) a current snapshot of audio coming through from the mic. It will apply a fast Fourier transform. Please don't ask me to explain exactly how they work. That's a whole other thing. But it will use that to calculate values that represent the level coming through at different frequencies in that buffer. And so what I've got is I've got some cutoffs at different different frequency boundaries. the output of this function is literally just a small rust function that is calling a library that does these transforms. But the output gives me values for low, mid and high frequencies scaled between 0 and 1. So like a float value that is normalized to that. Now, the beauty of that is that now that I can call that from iOS is that is what I will use to add audio reactivity to my app. can then go. Yeah. Daniel (49:27.884) I was just gonna say, like, that could give you like a pulsing beat or something on the lower frequencies. Dave (49:33.145) Exactly that. so, you know, ultimately the idea is, is to bring this in into the app and have a UI around it. And you can turn the mic on and you can say, okay, I want this thing to react to the, the low, middle, the high. And there'll be some relative controls for that as well. typically with this sort of thing, your audio is not normalized, right? You, you've got a microphone that's reading whatever in the room, or you've got a mic fed into a USB adapter into your iPad or whatever. or just a feed out of a console, maybe out of a DJ's mixer. And so I've got gain controls, like a control on the overall input coming in, and then I've got separate ones for the low, mid and high. So I'm going to wrap a UI around that to give the user the control to dial these into where they need them to be. Go on. Will it make a good stab at it? Daniel (50:26.215) Or it could do it automatically. Dave (50:31.233) for sure, but I think it will need some user control. the shorter version of all of this is I will link a Instagram video that I put up because I made this proof of concept app. I stuck a very simple Swift UI view on top. The Swift part is reading the microphone value out of AV audio engine and then shoving it through the Rust function. Daniel (50:32.238) Yeah Dave (51:01.045) and using these values and publishing them. And so I set some Swift charts up so you can see the low, the mid and the high is a nice graph. Every time it gets a new value, it chucks one on the array and slices one off the end. So eventually you get this flow of what the audio is doing. And the next stage for that was I bolted on MIDI very, very quickly. I hacked in some MIDI output. Yeah. And the beauty of that is, is that using Daniel (51:24.856) Fantastic. Dave (51:30.751) MIDI over Bluetooth, I was then able to connect it to the Video Mixer app because I've got the MIDI in on that. So I had my proof of concept app reading a microphone on the iPhone, sending those values over MIDI into the VJ app on my iPad. And boom, I had audio reactivity because I was then able to set it to control effects parameters. And it works. Yeah. Daniel (51:55.886) Cool. Very, very nice. Dave (52:00.313) You know, there's a whole load of aspects to all of it where there's a lot more for me to nerd out on and really dial in to make it fully what it needs to be. I could certainly use this to start doing something more predictive. When you've got values coming through like this, you could feed it into a model. You could start to do proper BPM detection and that sort of stuff as well. There's probably a function for it that I can use over in the Rust stack. actually on the library that I'm At the moment, the app doesn't have a concept of BPM. So that wouldn't really be useful right now. But there's, you know, I can see how this will all flesh out over time. So yeah, that's been, that's been a bit of a journey. If we talk back to this another time, I'll probably explain how I'm actually rolling it all up because I've now got it all automatically set up as a Swift package wrapping. Ross Library. That's been a bit of a journey. Daniel (53:02.936) So how does that work? Do you compile the Rust to a binary and then call that from Swift? Or does that compile in Xcode? No. Uh-huh. All right. Dave (53:10.661) Yeah, it compiles it to a static lib. I'm just using VS code and then calling the Rust compiler for that. In fact, I said I was going to talk about it another time, but very quickly. That's fine. Very quickly, I've got this in my Swift packages directory. I have a folder for the Rust library. I can open the whole thing inside of Visual Studio code instead of Xcode. Daniel (53:24.28) apologies. Dave (53:38.765) And I can develop in there with both the Swift stack and the Rust stack. And I've got a couple of scripts to compile both and a script to compile all of it together if I want to do an update. And I can just run those from the console as I'm developing. that's nice and easy. So yes, I'm becoming a full stack developer, Daniel. Daniel (53:50.435) Mm-hmm. Daniel (53:59.8) Fantastic. Awesome. Yeah. You are, you are like from the, from the topest of the frontest of the front to the backest of the backend, to the rustiest of the rustations. yeah, I think we should call it a show before I start trying to explain FFTs, because I would, just make a mess of it. think. Dave (54:11.605) Dave (54:15.257) you Dave (54:22.062) Yes. Dave (54:28.185) Okay. Would you make it, would you make less of a mess with a little more time? Could we actually talk about FFTs sometime? Daniel (54:35.732) If, yeah, if you could be like, I don't know, let's try in a week or two. Let's see if I can do some homework. And then I could take a step at explaining fast Fourier transports, I think. I mean, that bachelor in computer science has to be worth something, Dave (54:44.611) Thank you. Dave (54:48.44) Yeah. Awesome. Well, on that note. Dave (54:55.161) On that note, Daniel, please do school me on FFTs another time because I feel like I need it. I'm using it as an engineer, but not really understanding the algorithm underneath very deeply. But on that note, let's close out the show. So. Daniel (55:03.255) I will. Daniel (55:18.018) Let's do in the indeed. Thanks for listening. Please. Where does on iTunes like us on YouTube, send us emails and contact at waiting for review.com and also join our discord. The link is in the show notes. Where can people find you Dave? Dave (55:34.905) You can find me on Instagram with an account called lightbeamapps.com, spelled D-O-T com. You can find me on mastodon at Dave at social.lightbeamapps.com. And as I mentioned before, I've got a bit of a Linktree thing going on at feed.lightbeamapps.com as well. How about yourself, Daniel? Daniel (55:59.546) I want to plug today the threads account that I recently made for telemetry deck because I'm just like playing like because croissant exists I'm just like playing to all the all the accounts of telemetry deck telemetry underscore deck on threads and Instagram but of course we're on all the on all the platforms except really X like I don't know like every every half year I of post a blog post there I think Dave (56:16.653) Beautiful. Dave (56:25.901) Yeah, in terms of social media, Twitter is definitely my ex. Daniel (56:30.894) Twitter is my ex and there's our title maybe. Dave (56:32.121) you Dave (56:37.442) Alrighty, well, take care, Daniel, and speak to you soon. Daniel (56:42.146) You too. was awesome talking to you. Bye. Dave (56:46.893) Bye bye. Daniel (56:51.502) Quicktime has ended.