Daniel (00:06) That's the weirdest intro we've ever done. Dave (00:09) Probably. I think we're going to have to see if we can out weird ourselves on the beginning to the show. Just before we hit record, we were doing warm up exercises to just kind of like be silly. Daniel (00:27) Bom- Dave (00:29) ha-pa-pa-pa-pa-pa, et cetera, and censored in on a meditating om, and I hit record. Here we are. Daniel (00:40) Fantastic. Hi, Dave. It's so nice to see you. Dave (00:45) It's good to see you too, Daniel. It's that time of the week again, we are recording. Daniel (00:47) It's just... Yeah. Like every time, every time that we record, I'm always like, um, Oh, I like so much to do today, but I hope I can make it and be fresh and interesting back when we, when I meet you in the evening. And then I cook dinner and usually it's like super time constrained. And I'm like, Oh, I usually have to text you like, Hey, only 10 more minutes. Um, so, uh, and then once I sit down and see you, and we just like, like goof off a little bit, I'm like, Oh yeah, this is actually fun. Dave (01:12) Hmm? Yep. Exactly. And, uh, nah, it's similar on my side because we are currently 12 hours apart. And so your time constrained for dinner and this and the other, I'm time constrained for work and people getting up and going out in my household. Uh, but we make it work. That's, it's fun. And, uh, I kind of quite like the fact that we are managing to tag team the show across the time zones. Like that sort of... yeah, it amuses me a bit. But, uh, in your face, Dateline! Daniel (01:51) Yeah, it's pretty cool actually. And it works too. I don't know. If I had to record in the morning, I think I would be worse. But you seem fresh and energetic and whatever. It's really nice. Dave (02:07) Yeah. a reason for that. I've had coffee and cake for breakfast. Yeah, yeah, yeah. So that, um, my wife makes cakes. So yeah, very good occasion. Um, that yeah, so I'm fully caffeinated, fully sugared up and ready to go. And honestly, Danielle, I probably, I've had two coffees this morning. I definitely needed it. Daniel (02:16) Ooh, cake. What's the occasion? Fantastic. Really good occasion. Cool. Hmm Dave (02:40) I've spent the last few days doing some fairly, for me at least, some fairly physically straining work, which I'm not going to talk about in much depth on the show other than I've had a very long weekend. I've had like a four-day weekend because of the way the holidays have worked here in New Zealand. Yeah, I took Monday off. Tuesday was a national holiday. And so what did I do with that time? I hired a skip. Daniel (02:59) Oh nice. Dave (03:08) and decided to go and sort out a load of things in our garden here in this house. And that has meant a lot of lifting, a lot of sawing, because I've been like chopping bits of trees down and things. All necessary stuff for me to get my garden exactly as I want it, which is very much not a show topic, but is a thing I've been doing a lot of. And so yeah, strenuous weekend and now I'm a bit achy. Daniel (03:37) Oh, I get that. A skip. A skip. That's like a huge bin you just like chuck stuff in and then it gets carried away, right? On a truck or something. Dave (03:38) Two coffees and cake, all's good. Yeah, it's like, yeah, yeah. Delivered by a huge truck with an arm on it that drops it down. I don't know what they're called anywhere else. A rubbish bin, yeah, that works. A dumpster with no lid on it, I have no idea. Daniel (03:51) Yeah. Oh. The Germans call them a container or a rubbish container. I don't know. Dave (04:01) Yeah. I don't even know where the word skip kind of comes from. Like what it's sort of in relation to is just, that's what we call them. Uh, yeah. English British thing really. Um, yeah. Daniel (04:10) Just a weird kiwi thing. Oh, okay. Dave (04:18) Yeah. Daniel (04:18) Anyway, speaking about weird British things, welcome to Waiting for Review, a show about the majestic indie developer lifestyle. Join our scintillating host, Dave and Daniel, and let's hear about a tiny slice of their thrilling lives. Join us while we're waiting for review. Are we waiting for your review? Both of us have not entered any Vision Pro apps into the App Store, right? At least I haven't. Dave (04:44) Yeah, that's true. No Vision Pro for me. No Vision Pro apps for me yet. Daniel (04:48) I've played with the SDK and like telemetry like SDK works for it, except that sometimes in on some vision pro simulators, it does log a weird warning message about transport security. But I haven't like, it's so as far as I can tell, it's not my problem. It's Apple's problem. Dave (05:08) Well, that's that. Yeah. Daniel (05:09) And it still works, so it's just like a bit, not as concerning. But yeah, are you, like, if you're wondering, I am just sitting in the middle of the room, the background is different, the camera is different, and I'm holding my microphone very loosey-goosey instead of like having it in an arm, because I kinda had to slightly remodel my wall. And so the place where normally my desk sits with my screen on top and everything, Dave (05:22) You are indeed. Daniel (05:38) There's a heating radiator underneath and that one is broken. And so I have now pulled out my desk and took everything down and I'm sitting in my half disassembled office. But yeah, I'm not sure if I like this or dislike it. I think I like it actually. It's just I can't move too much because I'm afraid of getting cable noise on this microphone. Dave (05:51) Yeah Yeah? Daniel (06:08) Yeah. We have listener email, I think. Do you want to tell me about it? Dave (06:12) We do, we do. And I'm not sure whether to read this email on the show or to, we should reply directly to be fair, Daniel, to this email. But I'm just pulling it up now just cause you've mentioned it and we should definitely hat tip and take a look. Unfortunately, my email's all over the place. So if you've got it in front of you, go for it. Daniel (06:25) Okay. I don't. But while you are, while you're still looking for it, I will just like tell the story of my rampaging heating, because this heating element out underneath my desk is not working at all. But yesterday evening, actually, all the other heating elements are the other heating radiators in the, in the whole apartment just suddenly went full Gradually over the day, they just all went to five out of five, basically. And it turns out we have Elgato Eves, or they're just Eves now, the EVE Thermo, which is a thing where you can replace the normal hand style dial on a radiator with an electronic thing that you just put in the target temperature. Dave (07:28) Hold up, Elgato as in the same company that does the capture cards that gamers use. Okay. Daniel (07:34) Yeah. So Elgato used to be like Elgato is now Elgato gaming and the about, I don't know, I want to say 10 years ago, but maybe five, let's say seven years ago, they split up the company between Elgato gaming and Eve. Both of those used to be one company. That's why I still call them Elgato Eve. And I used to work for that company before they split up. And then I had another stint at Elgato gaming after the split up. Dave (07:39) Mm-hmm. Right. Daniel (08:02) just they watched like shortly before the pandemic, I think. Anyway, they like they're all home could enabled and they're pretty cool, but they suddenly they were all they all at the same time decided that their batteries were almost empty. And to prevent me from freezing to death, they were like, okay, before we are dying, we're gonna open all the valves for like to maximum and then like just let the batteries go out. The problem is that Dave (08:16) Mm-hmm. Daniel (08:30) We replaced the non-rechargeable batteries in there with rechargeable batteries because like there's like these AA batteries, because we want to be more environmentally conscious and not throw away batteries all the time. Turns out that rechargeable batteries have a lower voltage or something, especially the cheap ones. And so the thing thinks it's running on empty, even though there's like still enough energy left. I guess I'm buying more expensive. Dave (08:38) You're here. Mm-hmm. Daniel (09:00) rechargeable batteries now. Dave (09:01) Hehehe Oh, well, at least you've diagnosed the issue. Daniel (09:08) Yeah, it was like almost midnight. I was ready to go to bed. Um, and then suddenly I'm like, okay, why is it like, like I was like just in, in sweatpants and a shirt. I was like, why is it still so hot? Like, it's not supposed to, like it's we, we're still in winter. Um, and like just over the course of the evening without kind of realizing I took off my sweater and I took off my socks and I was like, okay, ah, and I was about to pull off my sweatpants as well. And I'm like, no, wait, I'm going to try to like. Dave (09:23) Yeah. Daniel (09:38) to dial down the heat instead and that didn't help either because they didn't really react anymore. Well. Dave (09:47) So it sounds like you've been having the same sort of temperatures in winter as we've been having here in the summer. Daniel (09:52) I mean, I'm not opposed to these kinds of temperatures, but I don't want to be hit with a horrible energy pill. Dave (09:59) Yeah, yeah definitely. Oh it has been boiling here lately Daniel, it's been very warm again. But yeah, yeah that's the way it goes. We're in the middle of summer and that's something actually I have to be very careful in the New Zealand sun and I've definitely caught the sun from doing all that yard work this last weekend. Daniel (10:04) Okay. Yeah. Hmm, I can imagine. Dave (10:25) Yeah, you can't tell on my face on the show on the YouTube bit of the show, uh, cause I still just look pasty white as is normal for me. But, um, yeah, on, on the, my arms, which are not exposed, which were exposed, I've definitely caught the sun here and we get more UV. So that's the thing that I have to look out for. But, uh, ah, I have found. Daniel (10:53) Trust me on the sunscreen. Dave (10:55) Yeah, definitely trust me on the screen. But I found that email and Daniel, I don't want to read the email verbatim because Joe, who messaged us before Joseph Heck, sent us another, sent us an email after catching our follow up on the show to his YouTube comment. But he did have a question directly to you, Daniel, that could be good to talk about for half a second, which was that Daniel (11:01) Awesome. Alright. Dave (11:25) Now that Apache Druid isn't causing you daily nightmares, that's in reference to you fixing the thorny data problem, I'm curious as to how you ended up picking as a backend TSDB for your work. I've had personal experience with InfluxDB but not perhaps at the scale you're dealing with Telemetry Deck. So yeah, why that? Why that DB? Daniel (11:50) Why Druid? So in the beginning, I actually looked at Influx. I looked at another time series database where that I forgot the name of right now. And I looked at Apache Druid. And it just turns out that Druid was the easiest to set up and Druid was actually very, very easily usable. So I was like, okay, I'm gonna, just gonna trial this. And then after a, just like after a few weeks of playing around with it, Dave (12:12) Mm-hmm. Daniel (12:21) It turns out that the Druid query language was just very, very actually a very natural fit for telemetry deck because it is a JSON based language which just fits very well with how I think. And so the thing is that I can now build queries with this language. And the thing is also that a customer could send such a query directly to the... to the API and that is still safe, I hope at least. I mean, nothing is ever 100% safe, but it still feels safe, like compared to, let's say SQL or something, which is just text, which is notoriously hard to make sure that there's no escaped sequences or other leaks or anything. This language is JSON, so I can actually write Swift structs to represent every single item. Dave (12:54) Hehehe Mm-hmm. Daniel (13:20) And so what happens is you send a query to the database and then it just gets parsed as the Swift structures. And so only the features that I actively implement in those structs will actually be supported. Everything that can't be parsed will just result in an error. So Swift's type safety is actually saving me here. And then I can like wrap a huge outer filter around the thing that just makes sure that you only ever get data from your apps Dave (13:20) Mm-hmm. Daniel (13:50) just the ease of use and the query language were a huge plus. And now you could of course say, yeah, but like now you're having all these problems. And the thing is we have 9.5 million monthly active users. We have 3.6, 3.7 billion signals in the database, which you can query in real time. We have about... eightish very large machines just running the historicals for that thing. Like at that scale, you just like any of those databases, just managing them and babysitting them is becoming a job. It's not a full-time job. I think that's, that's a year or two away, but it's becoming a job. And I don't think the others would fare worse to be fair. Um, I am like. starting to talk to a few people, whether they could think about like, helping me out with just sysadminning the thing or devoping the thing. But yeah, that's why I chose to do it. Also, two data scientists, friends of mine kind of recommended it. And I was like, okay, this is good because then I have two people who I can ask questions about. And they don't have, they didn't have any. Dave (14:56) Mm-hmm. Heh-heh. Daniel (15:13) idea about like how to host and run it, but they had ideas about how to use it. And that was actually very helpful in the beginning. Dave (15:20) Brilliant. Oh, well, that answers that question pretty well. And I think I can probably distill that down to, yeah, like it worked very well with Swift and Codable for you, I guess, really is ultimately one of the biggest things there, as well as all the safety that we talked about a second ago with SQL options that are more difficult to lock down. Awesome. Daniel (15:35) Yeah. Dave (15:50) We should definitely reply back to Joseph directly, but I hope he enjoys hearing his question or part of the email at least read out on the show. It's often, honestly, it's really lovely to hear from people who are listening to the show and sometimes it's a bit like app store reviews, right? You don't really tend to hear too much unless somebody thinks something's particularly good or particularly bad. So. Daniel (16:00) I am. Dave (16:17) It's nice to just hear things from people and have questions directed at us. That's, that's always fun. Daniel (16:23) Yeah, totally. Continue writing us, please. Contact at wait Dave (16:28) Hey, nice plug. Daniel (16:32) Dave, what have you been doing? Dave (16:34) Well, yeah, I've been playing with AI in a sense, Daniel. I've been playing with Core ML at least. So I'm also still shaving that yak. And I do not want to talk about that on the show yet again. So what is happening is to be perfectly clear is that I've got that really relatively boring job of pulling through a lot of code and refreshing a bunch of things inside my main app. Daniel (16:40) Mm-hmm. No. Dave (17:04) And so now I've started slacking off, right? It's like that, that job's boring. It's actually nearly there, nearly, nearly there. Um, that job's boring me. So I took a bit of a detour and started playing with something that's been kind of like piquing my interest, I want to say for a while and so what, what's happened in your, is that I came across, uh, something where somebody who VJs posted about some of their artistic process. And part of their current artistic process was that they were, after dropping the background from a bunch of video and getting something interesting from that, they were then running this, this effectively like backgroundless performance of somebody doing like some martial arts. They ran it through, they ran it through an AI, which I'm guessing was probably stable diffusion, and they had it redrawn into sort of watercolors. And so you get this fluid movement of the martial arts and it's watercoloury. And I looked and said, as much as I've had unease about bits of AI, right? I've found a lot of what we're getting sold at the moment as AI, LLMs, I've took a look and kind of concluded, ah. Daniel (18:12) Ooh. Dave (18:32) Some of this is a gigantic plagiarism machine, right? So, and then I saw this, this artistic process, and I thought I should give it a go. So I at least understand a bit about how this stuff works. And a couple hours later, I had a pipeline running on my personal Mac, which is a bunch of bash scripts really, that will take a video, strip it to... its frames. So I turn it into an image sequence with a bunch of images in a folder and then pipe those images one by one into a core ML model that's running locally on my Mac. And it's set to do an image to image kind of redraw of things. So it's got the top, the original image of the video, which is then being filtered through a prompt. that I give it. So I'm like, yeah, watercolors with strong blacks, blah, all these sort of, you know, prompt based things. And it does this now through a bash script and I can just fire anything at it and it out, you know, 20 minutes later, half hour later or whatever. It's outputted a video that's been drawn in that style. And that's been a lot of fun. That's right. Yeah, unfortunately. Daniel (19:51) Alright, so it's not real time. That was my first question. Like, is it real time? Is it real time? Dave (19:57) Yeah, well, this is the thing, right? If it was real time, I would want to pull it straight into my video mixing app and then have it as an effect over there that anybody could use on any video in any live performance. This doesn't quite work like that, because it does still take a bit of time. And actually that time is largely due to the fact I'm running a M2 Max in my Mac Daniel (20:04) Hmm. Dave (20:26) There's no way it would have been done within 20 minutes to half hour with what I was doing. So it's another thing is I've kind of got to put this machine through its paces beyond Xcode a little bit. So that's been fun. So yeah, that's, that's what I've been up to. I've been playing with those and dreaming of a day, the computing power is strong enough that this sort of thing could just be done in real time, right? The Daniel (20:30) Mm-hmm. Yeah, I get that. I wonder if there's like video-based generative AI that doesn't have to work on each image individually or something like that. Probably not. Dave (20:58) Well, yeah, there's, there's bound to be something like that. But what I've discovered since Daniel is that within Xcode, within the core ML tools that we've got access to there, there is the ability to train a style transfer model, which I didn't really know about. I've kind of looked at core ML stuff and just gone, yeah, yeah. Whenever it matters to me, I'll have a look at that later. And, you know, the last two or three years of development has passed me by. Daniel (21:05) Mm-hmm. Cool. Dave (21:28) in that sense. But yeah, I found out that you can train your own model for style transfer. You can give it an input style. And if you're prepared to sit there and let it do its thing and iterating and coming out with a model at the end, you can get some quite good effects by just feeding it an initial image. And yeah, and those look like they can run in almost real time to some degree. Daniel (21:50) Amazing. Dave (21:59) I'll be playing with that soon, I think. Yeah. Daniel (22:02) Well, that's exciting. I mean, yeah, like CoreML, that stuff was announced a few years ago, right? But yeah, I haven't really played around with it either. So it's really cool. Dave (22:15) We'll see how I get on, like I've yet to train my own model. But that's part of the appeal for me, right? Is that maybe I can come up with a filter that's based on something that I've drawn and pulled together. I'm artistic enough to probably draw something good enough to generate a style, I think. So I'll have a play with that. And it may be cool, it may be rubbish. If it's any good, it'll end up in with. I'll code something up that uses the, um, the core ML side inside of a core image filter, I think is what I'll probably end up with. Daniel (22:54) Does it need like as much like training data as the big models? Like you said something about like, you can draw and then you can create a style from that, like would you have to draw 5,000 images or just a tiny amount? Dave (23:02) from. Mm-hmm. None. Not, not what I've seen going looks like you can just feed it the one image and then it runs it through the style transfer. I'm guessing it's a base model again. I don't know enough about this. Yeah. And so then it becomes a process. If you've got your, um, your style image that you've input to it, you will probably run it against with a reference image and then. Daniel (23:22) Yeah, they have like these pre-trained models and they can train on top of them, which is like very smart actually. Dave (23:39) you can look at the iterations that it produces and decide where, at what level of iteration on the model, does it look cooked effectively? Does it look good for what you want it to do? So I guess all of this is to say, I'll have a play. If anything good, as far as I'm concerned, comes out of it, then this might be a route for me to use some of this for, um, effects generation or at least a base. Daniel (23:49) Mm-hmm. Oh, that's really cool. Dave (24:09) for some effects in my apps. And without doing a load of plagiarization to some degree, like I'd need to dig deeper to understand how the style transfer model did what it did in the first place, but assuming that it is relatively ethically clean, then whatever I produce with my own input image to create a style is then a artisanal Dave Wood. Daniel (24:38) I do. Dave (24:40) model. Yeah, handcrafted here in New Zealand, rather than, like I say, at the moment what I played with when I was using the prompt-based stuff in that pipeline was actually using stable diffusion. And as I dug into what stable diffusion is and has under the hood, they scraped millions and millions of images off the internet. you know, from places like Pinterest and all the rest of it where they could access stuff that was tagged, pulled it together and it's then been worked over and various steps taken to turn it into the model of the stable diffusion today. And it's great, right? You know, like I say, I was able to, with a minimum of effort, come up with a pipeline that was doing this artistic sort of watercolour redrawing of videos. But there's that unease that I feel, which is like, yeah. The only reason it's doing that is because of however many artists artwork that was used to get there, you know, and I can't actually tell you who, what, where, when, and that leaves me feeling a bit, bit icky, to be honest, if I was to use that. I certainly wouldn't want to use it commercially, personally, myself, because of that. Daniel (25:49) Yeah, I get that. Yeah. I'm, I'm very much on board with that. Like there are like a huge amount of unsolved problems that we have to talk about before AI can really be or generative AI at least can really be used in a way that is like, like just that doesn't feel slightly icky, but I mean, yeah, we probably got to get there as a society somehow. Dave (26:14) Hmm. Yeah, I think so. And, you know, I'm sure if I dug deeper and had to look around, there'll be something out there. I know there are some open data sets, open models where things are a bit, uh, cleaner, if you like. I've no idea if I would like the results of them. That's something else, right? It's like, you know, I, I used that created this pipeline, looked at the output and was like, yeah, that actually looks quite nice. Um, I can see how I would use it. Um. Daniel (26:45) Mm-hmm. Dave (26:48) Yeah, but for me personally, the icky side out weighs a few things. I wouldn't want to build an app around something that was depending on that. Um, but if this, this other routes where I can kind of come up with my own styles, have a bit of a play that feels okay. And especially if I can achieve a performance where it can be used in real time, well then that's directly useful to the, the video mixing app that I've got. And the, um, and the filters that I've got over there. So it's like, I guess this marks for me a first look at these technologies, probably four or five years too late in some ways. Yeah. Daniel (27:25) Mm-hmm. Like everyone else is into spatial computing now. AI is just to the side and now Dave is like, oh, AI. Dave (27:38) Yeah. So three or four years time, everything will be spatial for me. Um, yeah. But honestly, Daniel, I don't mind like there's an advantage to waiting for stuff to mature, right? I had a search, I found a tutorial that shows me almost exactly the steps to what I want to do. I'm not sitting here trying to figure out things from first principles. That's well trodden ground now. Uh, Daniel (27:51) Hmm. Dave (28:04) that's also got its benefits, right? Is waiting until something is cooked, as it were, or useful, well-trodden, is not necessarily a bad thing. And I kind of feel the same about AR and the Vision Pro, to be fair. It's like, it doesn't hurt me to wait right now. Like, I don't think anybody has beaten down my door yet to say, why do your apps not support the Vision Pro nicely? Daniel (28:10) Hmm. Dave (28:32) sooner or later, maybe. But by the time that becomes a proper pressure for me, again, it'll be well trodden ground. A lot of what I'll need to do or want to do will have tutorials or other bits ready for me to look at. So I don't have too much FOMO, which is interesting, you know, in terms of the Vision Pro. I don't know if you feel similar. Daniel (28:54) Yeah, I get that. I am really happy that so many of my friends are enjoying it. And especially people like Christian Selig of Apollo fame who now made a really cool YouTube app for the Vision Pro and Michaela Karan who is a, almost one of us indie developers, I'll link to her. Dave (29:02) Mm-hmm. Mm-hmm. Daniel (29:19) link to her master or something. And she also had an app out with lots of particle effects and stuff like that. And both of those are, if not on track, either on track of having like just made back their investment into the Vision Pro already or are even like surpassed it. And I am just so happy for them. I'm like really, I think that's really, really cool. that people are playing around, are trying it out, and so on. For me, it doesn't make sense right now, but yeah, I'm not grumpy about it. I'm like, yeah, cool, awesome, go. And I'll come after a while if the, once I've, I don't know, put on my swim trunks or whatever. This is a swimming metaphor, suddenly, I don't know where it came from, but yeah. Dave (30:05) Yeah. Daniel (30:10) Dave (30:10) That's fine, but moving swiftly on. Uh, yeah, I'm, I'm wondering though, Daniel, like, I know recently you've been sort of like shifting your focus and telemetry deck and I'm wondering if you're now coming back into the programming groove after sort of being very much immersed in more of the, the non-programming bits of telemetry deck. And Daniel (30:13) Hahaha Yeah. Dave (30:39) If you're back in the programming mood and guessing you've not been making Vision Pro apps Daniel (30:47) No, not really. So, originally the plan that I told you about, like every, okay, let me start different. So one of our recurring topics is that even developers like us, especially indie developers, need to put a very decent amount of time into sales and marketing. Dave (30:48) Yeah. Daniel (31:13) Like there's just part of the life. If you want to have, like if you want to be in that part of, in that life, you can't just do the programming. Like it's sad because like the programming is what we love most, I think, or most of us, but you can't do one without the other, or you can't do it successfully at least. And so what I've done in the last few months is like just apart from the whole server stuff, of course, Dave (31:13) Mm-hmm. Daniel (31:41) I tried to do as much as possible for marketing side and sales side. I reached out to potential customers. I did a lot of reaching out to existing customers, just trying to improve their situation or talk to them. I had a lot of just networking calls and stuff like that. It sounds a bit dirty when I say networking, but what it just means is either local people or just people in our communities. Dave (32:03) Hehehehe Daniel (32:09) as in like developers and software development agencies, that kind of stuff. Like I don't try to sell to everyone and I just like try to like get to know everyone and just find out what their needs are and stuff like that. And it's getting more and more natural. Also we're exploring like different forms of marketing. As you may know, we sponsored the Swift Package Index for a while. Now we're probably ramping up to do some podcast ads in a few months. So we're trying out various things and it turns out a tiny, tiny bit I forgot about or I didn't program enough. So I went too far in the other direction because Telemetrydex MRR has Resonant. This feels really good, but at the same time, lots of little small tickets have accumulated on the front end side. The server just demands attention. I give it that because otherwise things will just grind to a halt. But also there's a few medium-sized to large features that just are sitting still because you can't push those forwards with just a few hours a week. You could be able to put in a day or two a week. Otherwise, just nothing is happening. So I've decided I'm going to I'm gonna try to rebalance again. And this time I'm gonna try to rebalance a little bit back towards development, which actually feels great. And I am beginning to get better at the whole outreach networking, but it also feels really great to be back in the code. Today I picked up a pull request basically, or a branch that I've been working on for a few... Dave (33:42) Okay. Daniel (34:04) weeks at least, like I think I started that back in the beginning of December or so, which is about access control and multiple users, multiple organizations per user, which is of course a huge rework. And so today I sat down, I just worked half a day on that alone, and it felt really great. And also, I actually made it pretty far along. Like I have on... a duplicate of the telemetry database, it was able to actually not only update the database to the new models, but also migrate all the existing users and organizations to the new format without losing any of them, which was really encouraging. So now it's looking at all the APIs. They are already surrounded by tests at this point. And then just like making sure all the tests are actually expecting the correct new behavior. And then also just... Dave (34:42) Nice. Daniel (34:59) on partially on part of parts of the actually implementing the new behavior. And then of course it's the front end, but yeah, it's a big feature, but I think it's going to be great because, uh, it updates our very old user, um, code that is like, I looked at some commits today and like the, like you look at these files and it just says like, oh yeah, this whole block of code was written in 2020. And I know even, I even know where it was written. I was, it was written. Dave (35:25) Right, yep. Daniel (35:30) Oh no, that like 2020 wasn't, but at some point during the pandemic, I had rented a little cottage in Southern Italy and spent six weeks for summer there, just hanging around basically on the terrace, on the veranda, just sitting on my laptop and looking out to the sea and writing this code. But that was 21-ish, I think. Yeah. Okay. Either way, it feels really great to be back in the code. Dave (35:48) Hehehe Daniel (35:57) I feel like this is always gonna be a balance that has to be struck and the pendulum will swing in either direction and return. And that's just the natural way. I also think I need to grow my number of minions again. So I have a few friends who are partially helping with telemetry deck for a little bit of cash or a little bit of virtual stock. Dave (36:05) Yes. Mm-hmm. Daniel (36:27) And yeah, I'm gonna ask around. Like I'm talking to a few people about helping with the DevOps, as I said already. I am, a buddy of mine is now also, had shout out to Jihad Gundus, who is a freelancer I've worked with before and an indie developer. He creates these amazing tool for internationalization in iOS apps. And yeah, he's now helping out a little bit and Yeah, I'm also looking for a data science student from the local university to just like, just rummage around in the data basically and whatever they find, they can, we can do something with, but like, so yeah. So to answer your questions, I haven't, like the last time I touched Vision Pro Code was about two months ago when I tried to create a prototype for the telemetry deck app. It looks pretty decent. but it needs about a week of full-time work to really be able to release. And just the telemetrics front end iOS, vision OS, Mac OS stuff is just gonna stay in open source slash abandonment hell, just because like, there's no way, there's no way I'm gonna be able to put in the work. And I don't have the money to pay someone to do it. So yeah, if you... Dave (37:54) No. Daniel (37:55) If you as a listener want to work on that, it's all open source on GitHub. Also, like I'm totally having a call with you explaining how the code works. It's just like right now, I'm very sorry to say I can't really work. Dave (38:09) That makes total sense, Daniel. And yeah, honestly, I've been attached to the repo with that project. So I still get updates when people are submitting things to it as well. When, when you have had sort of community participation with the, the old telemetry deck Swift UI app. Um, that's nice to see, and I'm glad people still get something out of it. But, uh, I, I totally understand that you wouldn't be working on that actively or even doing anything. Daniel (38:18) Yeah. Dave (38:38) related to the Vision Pro right now, that just wouldn't make sense. I have a very specific question though, Daniel. We've talked about the pendulum and we've talked about this pendulum effect, right? You know, you've got to kind of swing from one skill to the other in order to make things work, right? This is about making, you know, not only a technical solution, an app, a service in your case that does what it does. Daniel (38:41) Mm-hmm. Mm. Dave (39:08) But it's also about making sure that you're getting it out there and people are actually buying it and so that you've got that sort of, you know, cash flow and everything else, you can keep doing it. The question I've got is when did you realize the pendulum had swung too far this time around, what was the trigger specifically to pull you back to programming? Daniel (39:31) The trigger was stress, I think. Because I had this unease in my chest, basically, where I was like, okay, I am doing these seven things today that are all on my to-do list. And also I have like six or seven various calls or other calendar events. And I just felt very... Dave (39:34) Mm. Mm-hmm. Daniel (39:52) hunted basically just like to rush through all these and meanwhile I'm keeping an eye on my emails or my github notifications on my Mentions on social media and people are just like hey, I have this tiny neat niggling Thing or bug or paper cut on the UI here or hey have a question and it turns out I can't answer the question because Or I can answer the question with the question. The answer is I can't do that right now because we haven't implemented Dave (39:54) Heh! Daniel (40:21) one of the new druids like keywords in the existing Swift code or whatever. And it just became too much. Yesterday morning, I was like, okay, I need to do something different. Like I need to think about because right now I'm just stressed. I just feel like there's I feel stretched way too thin. And so I feel like I need to I need to rearrange things somehow. And so I talked to Lisa, I was like, and told her that, and she was like, okay, what do you want to do differently? And I was like, yeah, I think I want to declare bankruptcy on my reaching out to post potential customer tests because there's like 10 or 15 to-dos in there in that queue that is just like overdue in November or something like that. So I want to just declare bankruptcy on those. And then I also, I think I want to like just tackle one or two major features to really push the code base forward. This will also, of course, if I touch stuff, I will clean it up every now and then. And I told her this because also because like I wanted her opinion about like, is this a good idea? Because I tend to sometimes, sometimes I just follow where the dopamine is, you know, like sometimes I'm just like, I just really want to do this because it's cool. Dave (41:38) Ha ha. Daniel (41:42) Like the other day, I built, actually, over the weekend, actually, I worked on some code, actually. Already, I built a pretty cool prototype for sampling, like data sampling in Telemetry Deck. But I'm gonna tell you about that next episode, because by then I'll have more learnings, I think. But yeah, it turns out, Lisa thought that was a good idea, and also the feature that I decided to work on was a good idea. Dave (42:01) Yeah. Daniel (42:11) which is really helpful because like, yeah, sometimes I feel like, oh yeah, I just want to do this. And then it turns out it's maybe not the best use of my time. Um, and so I was like, okay, I'm just gonna, I'm gonna do like, try to skip a few of the responsibilities of the sales and marketing side and to do a few more responsibilities on the development. But also, you know, like if I code and then post about it, is that not Dave (42:42) Yes. Yeah. I mean, it all adds up. It's certainly all adds up. I thank you. I was curious about that one. Like where, what triggers that pendulum switch? And that's interesting. You're in a situation that's different to a lot of like indie app developers, I guess, in a sense of you've got a co-founder, you've got somebody you're working directly with. So it's not just Daniel (42:46) I'm going to go ahead and close the video. Dave (43:09) you. And obviously the product itself is being sold outside of the app store, right? This is, you are selling directly from your website, the service, it's software as a service, classical. Um, which is great, but the duties are quite specific around that, right? Your sort of sales activity or outreach, that sort of thing. It's, um, it's broader than a lot of solo app developers would have to engage with. Daniel (43:15) Hmm. Yeah. The other thing is also our, our like customers, our ideal customers is not as broad as many apps. Like if you sell an app for VJs, that's pretty, pretty slim, but like most apps are like maybe an app for note taking and almost everybody can at least envision themselves as someone who probably might take notes or whatever. So if you take ever have a note taking app in the app store, you have literally millions of potential Dave (43:40) Which would, yeah. Daniel (44:06) customers. Of course, you still need to reach them, but the methods are different. We have probably hundreds of thousands of potential customers, and they're not looking for us in the app store. So yeah, it's a bit different. And also, I think we're pretty well known with the indie developers now, but especially if you wanna reach small and medium-sized businesses, they are in different circles. So I guess I need to be in those circles. Dave (44:06) Mm-hmm. Mm-hmm. Yeah. Yeah. Yeah, that's fair. That's fair. And this could be a whole other show topic for another time. But I think there's a message here in terms of going where your customers are as well, right? That sort of activity needs to be that way. And in your case, you literally can't just rely on App Store optimization or anything like that to sort of get things through. There's no search ads for telemetry deck. It wouldn't make sense. Daniel (44:46) Hmm. Dave (44:58) In my case, I'm relying on the fact that I'm making a niche product and that niche is pretty active about finding things that it needs. So in a lot of ways, like I'm not doing marketing aside from making sure I'm key wording and, um, keeping the app updated to some degree I should be. There's a whole load of other stuff inside of that, that area of things that at some point this year, I'm going to have to lift the lid on it and go. Daniel (45:08) Mm-hmm. Dave (45:27) Okay, I've got this thing. How the hell am I marketing it beyond ASI? You know, at the moment I'm not, but it'll be interesting. I'm certainly gathering some thoughts around what I may do. Some thoughts around what could be productive, useful for me, but it doesn't feel very formed yet, but I'm aware that this pendulum is gonna need to shift for me at the moment. I'm in dev mode. Like I say, you know, I'm... Daniel (45:33) Yeah. So. Dave (45:55) shaving that yak on the old code base, trying to get it lined up with all of these, these Swift packages I've made. Once that work is done, then I will release an update with that in, and that will bring some new features, which is great. And then beyond that, I'll be getting into making this pro version of the VJ app. It's really there that I feel like I'm going to need to sort of refocus in on this, this marketing side of things, right? This I'll be making. It's a new app in the same niche. It's complimentary rather than a replacement for to some degree with the original app. It's not going to, I'm not going to withdraw the original app from the store. Um, and so, yeah, I'm going to have to think about how I'm engaging with, with my. Uh, community of people that are already using my app and the wider community of people who might use this pro app. And at the moment, Daniel, I've got no idea. I stood a landing page up a couple of months back. Um. Daniel (46:47) Hehe Dave (46:52) and collected some email addresses, which is great, but beyond like posting to that mailing list as I'm developing and those sort of activities, I feel really disorganized still with that end of things. Daniel (47:05) Yeah, I get that. I had a thought about this, about motivating yourself to do the marketing and the sales and stuff like that. Because if you're anything like me, doing the coding just feels natural, because it feels so nice and so good when you compile it and it runs and it's just pretty, and you just feel good, right? Whereas the marketing, for us, can feel alien. Dave (47:29) Yes. Daniel (47:30) And I think what motivates me to do the marketing is the realization. A, I want to do, I want to have that feeling of, Oh, so see it works and it's, it's nice and it's well organized. I want to have that feeling for my whole company, like for that as a thing that I'm building. So that's the one thing I want, like that's, that's one motivation that I have. And the other motivation is I've built something or we've built something really cool. I want people to use it. Dave (47:41) Mm-hmm. Yes. Hmm? Daniel (47:59) And so I need to learn how to reach my potential customers. And I need to learn how to present my product to them so that they actually get to try it out and hopefully enjoy it. Because that brings me joy seeing like, oh yeah, so many people are using telemetry deck that is really motivating. And so maybe that helps you too. Like you want the VJs of the world to be like, oh yeah, that Go VJ Pro thing, I'm going to try that out. And they don't get the chance to do that. If you can't, if you, if you're not, if you're just like sitting in your quiet little chamber, just like programming away and not really sharing, sharing what you're doing. So, so yeah, maybe that is also a good motivator to be like, okay, why should I do this thing that is, that doesn't feel good at the, especially in the beginning? Um, it's because I want to reach the place where, where Dave (48:31) Yes. Mm-hmm. Daniel (48:56) where it feels good because so many people love my app. Dave (49:00) That's a good thought. And I think there's something from that Daniel that I'm going to have to sort of, I guess, percolate over the next, next few months to a degree, right? That, that, that's in the pot. It's brewing. Um, and I think that's going to be, be a show topic in a few weeks is, is what is the output of that for me? Yeah. What does that look like? Because to be honest with you, if I don't do something in that regard, if I do just build it, put it in the store and hope. Daniel (49:19) Yeah, yeah, your vision. Dave (49:30) It will sell to some degree, right? I know the niche is viable. I will probably cannibalize go VJ sales to some degree, right? There'll be people who go, well, I just want one app to do that. And I don't think it will be the best shot I could have given it. So there is a point here to say, okay, I do need to think about this stuff. I do need to have some sort of plan. Daniel (49:32) Hmm. Mm-hmm. Dave (49:53) I honestly think that this is perhaps something in this where I will be delving back into bits of social media and online content that perhaps I've issued over the last couple of years, you know, not about to go running bets Twitter because none of the VJs are really there but they are on Instagram, they are on Facebook. There's a story inside of this and that, you know, we talked about before that they are on Reddit as well. If I'm not Daniel (50:10) Mm-hmm. Dave (50:21) showing up. where my potential customers are, then how can I expect them to really know about me? And I think that's going to mean, like I say, showing up in places that I perhaps would have avoided otherwise. And there's a bit in there about, well, how do I do that and still stay genuine, you know, as well? Like that's important to me. I don't just want to be like, hey, follow kids want to buy my app, you know, like Daniel (50:44) Hehehe Dave (50:46) Everybody knows in a forum, in a Facebook group, in a community, everybody knows when somebody's just arrived to sell that one thing, right? So there's an element of like, how do I do that and stay genuine? But these are all questions that we do not have time for today, that we will have to cover another time. But I think I'm putting it out there though, for anybody listening, in a similar position, how have you found the right approach? for your marketing, please contact at waitingforreview.com is a good place to reach us on email. And Daniel, I think if we're gonna wrap the show, I'm gonna segue neatly into asking where can people find you online, mate? Daniel (51:34) Awesome, people can find me online. Write to daniel at soci or just visit telemetrydeck.com to find all about the thing that I'm very passionate about. What about you, Dave? Dave (51:49) You can find me on Mastodon over at Dave at soci and of course you can find all about my apps on lightbeamapps.com as well. Daniel (52:01) Amazing. All right, Dave, it has been an absolute pleasure. I hope to see you again soon next week and yeah, have a great, have a great day. Dave (52:03) Oh. Awesome. Take it easy, Daniel. Daniel (52:16) Bye. We're Dave (52:17) Bye bye. Daniel (52:23) Woo. Dave (52:25) That's gonna