Daniel: "Hey, welcome to Waiting for Review, a show about the majestic indie developer lifestyle. Join our scintillating hosts Dave and Daniel and let's hear about a tiny slice of their thrilling lives. Join us while waiting for review. Hey Dave!" Dave: "Hey Daniel, a lot of restraint on my side not to launch into a mockney, a mockney accent mate." Daniel: "No. The restraint has failed. We talked just now about things that sound like a Guy Ritchie movie. And it turns out Dave does speak proper Cockney. Or what I assume proper Cockney sounds like, because I only know Cockney from Guy Ritchie movies. And parodies thereof." Dave: "Yeah. Mm hmm. In the pre-shock. Yep. Uh, it's one of those things where anybody actually with that, with anything like that accent, cause I'm not sure that accent as in those movies really exists in real life. It's exaggerated to a big degree. Um, but anybody from Landon with that accent will criticize my impression because I'm not from there. But I guess comparatively, I, my accent probably gets closer than yours, Daniel, I'm afraid. So." Daniel: "Ha ha ha, fair." Dave: "There is that." Daniel: "I'm pretty sure it does. Like at one time in my life, I had this buddy from Carlisle, which is in the very North of England, just at the Scottish border. And so I kept, I kept going there and having like, and visiting him over, like, like I was back in school back then. And my English was very Carlisle tinted after a while. And what they do is their A's are just R's. I remember we went to the." Dave: "Yeah. Mm-hmm. Yep. Yeah." Daniel: "to the cinema and one of his friends was like, oh, let's watch Couch Me if you can. And that was just fantastic." Dave: "Ha ha Well it is car-lyle and not ca-lyle. So... How are you Daniel? How are things going?" Daniel: "Car- Carna. I'm good. I have a half full glass of wine. The other half is on my desk. But it turns out, like I just knocked it over basically. Turns out my desk looks still pretty good. Like it's not horribly stained. It just like, it just soaked everything up and looks the same." Dave: "Excellent. Wine infused desk." Daniel: "Yeah, I was saying like, I probably need to infuse the rest of the new desk. Yeah, I just think we could match, but yeah, gonna get myself like a really expensive bottle of Bordeaux or something." Dave: "Just make it match. Yeah. Pour wine all over it. Let's start a new trend. Weinstein desks." Daniel: "This is Italian though. Huh. Okay. Good. I gotta launch the Italian job." Dave: "I think the Italian job might in it." Daniel: "I have a new desk. I don't know if the waiting for review verse is up to date on my desk. I think not. Yeah. I have a new desk. I have a desk that is smaller, and I built it myself. I used to have this height adjustable desk, and it kind of broke. And it was very wide. It was like two meters. And." Dave: "Yes. Probably not." Daniel: "30 centimeters, I think. And it just took a lot of space in my office. And I have replaced it with one that is about a meter less wide and less deep. And I just went to the hardware store and bought a huge ass piece of wood, like a plank of wood. It's beach, I believe." Dave: "That's pretty wide. Yep. Mm-hmm." Daniel: "And I bought like four table legs, adjustable ones, and then I kind of screwed them in. And it turns out adjustable table legs are very unstable. So my desk wobbles. So I added even more screws, adjusted the table legs to exactly the height that I wanted them to be, and then taped them. Because otherwise I would have to disassemble everything and I don't want to do that Yeah" Dave: "Mm-hmm. It's working well." Daniel: "Yeah, it's pretty good. Okay, so it wobbles a bit, but it doesn't make a sound while wobbling, which is half the, half done. I might actually affix it to the wall because that's the other thing. It is now in a nice niche that has a lot of windows in my office, and I can affix it to the wall and also get a lot of sunlight because in the Northern Hemisphere, we have winter time and sunlight is hard to come by." Dave: "Yep. quite useful for a podcast. Yep. You too. Mm-hmm." Daniel: "And so I have lots of natural sunlight, but I also bought a huge, huge daylight lamp that is just right next to my screen now, and that will just like blast me with all the radiation that my body needs. And so yeah, that's my new setup. It is pretty nice. I routed all the cables. I routed all the cables, and there are not very many cables. I bought all the adapters so that" Dave: "Nice, nice. So you're battling the... Oh?" Daniel: "There's only one cable to plug into my laptop once I connect it, because I have a laptop computer. It's just like completely hidden behind the... Just completely hidden behind the screen now, and behind the huge ass lamp. But yeah, the desk is nice. I'm going to..." Dave: "twice. Nice. Oh, you'll have to... Have you posted a death photo? You should do, and then we can just link to your post in the show notes." Daniel: "Yeah, yeah, I'm gonna post one now and then we can link to it and people can look at it. Hang on." Dave: "While you do that, I can tell you a little bit about my side. My desk setup has changed a little bit since we last spoke because I've been spending money, Daniel. Yeah, I have a M2 Mac Studio sat on my desk now and it is lovely. I did. There was a" Daniel: "Mm-hmm. Ooh. Ha ha ha, you always wanted one. And now you have one." Dave: "A good deal on the Apple refurb store. There was a, basically the base model. So it's the M2 Max with 32 gig of RAM, but it's been updated to a terabyte of storage space instead of 512. Yeah, and that will do me quite tidily for everything I do. I've been working on a MacBook Air M1 for the last two and a bit years." Daniel: "Mm-hmm. Not bad. Oh, so you went from the M1 to the M2 max. Oh." Dave: "That's right. And I've also gone from 16 gigs of RAM there to 32. And honestly, like I wasn't sure what to expect. Like I was like, okay, it's gonna be faster. The extra RAM is gonna be useful. But that jump for me for Xcode build times has just been insane. It has been awesome. Yeah, yeah. So that's been really lovely. I've been able to..." Daniel: "Yeah. Oh, that's fantastic." Dave: "do a few things a bit faster actually because of the machine. Like I think, you know, the thing I want to call out is my MacBook Air was definitely still serviceable and was able to be worked on. But because of the speed of the new machine, I'm getting a much better flow state. Like I don't tend to use SwiftUI previews. I tend to just run stuff because honestly, previews fall over all the time for me in my projects it seems." Daniel: "Mm-hmm." Dave: "There seems to be a universal thing for a lot of people, but I'm sure there's somebody out there who uses them all the time and loves them. Yeah." Daniel: "Apparently those people are out there." Dave: "Yeah, but what I'm finding of course is because it can pass so quickly, I can just hit run, keep going, take a look, come back and that iteration is a lot quicker and I am just loving that. So yeah, that's been me. But yeah, I even bought a plexiglass acrylic stand for it so it's sort of elevated off the desk and it's pride of place next to my monitor here." Daniel: "Fantastic." Dave: "although I do have a very, very tiny little Christmas tree on top of us at the moment because, yes, we've gone all festive and stuff." Daniel: "Aw, tiny Christmas tree. But what does the stand do? Does it just elevate it, or is it at an angle, or how can I?" Dave: "Um, it's, uh, it's kind of got a curve on the base so that it doesn't, it sort of sits on the desk and is up a little bit. Um, and it's, it's got a lot of little holes underneath where the grill is. Um, and the air intake is under the Mac studio, but what it does is it elevates it up and provides an extra layer of a filter. Um, which means it should be less inclined to getting clogged up with dust and cat fur. So." Daniel: "Mm-hmm. Oh, smart." Dave: "Yeah, yeah, because that is a very real risk. Before I got this machine, my cat Stevie was sleeping quite regularly on this side of the desk. So" Daniel: "Yeah, they should make like a little lid there that you can just open and just like rip out all the cash for that they, that inevitably will get into the cooling system. Like I have one of those vacuum cleaning robots and basically exactly that you can like, open a little lid there, remove the thing, just clean it up, push it back in. Get on it, Apple." Dave: "Yeah. Mm-hmm. Oh yeah, but the other thing is the acrylic traps the light and it glows a little bit underneath it because of it and I like that. Again this is, yeah I will do it. Very much a bit of like dream fulfilment for me. I wanted a G4 cube back in the day. This is the closest modern analogue for that to me. Big brick." Daniel: "Oh, yeah, you gotta you gotta post a picture of that." Dave: "of aluminium, like an extruded Mac Mini sat here. Yeah, but the other thing that's done, Daniel, is it's put me back on a single display. Like before this, I had a laptop stand and the MacBook Air would be to the side of the monitor I've got. And of course, that's not the setup now. It's just this studio into the display. And honestly, I love it." Daniel: "Yeah. So cool." Dave: "Like I've actually found that I appreciate just having the single display and kind of the, uh, focus and minimalism that forces on me in terms of how I'm using the machine. Uh, cause often I would have, you know, Xcode is full screen on the display and then I've got, uh, master Dawn messages, Slack, everything else on the laptop screen. And I just sort of full screen those and sort of switch between them. And now I'm more like, now I'm in Xcode. I'll see you later." Daniel: "Yeah." Dave: "And that's actually quite refreshing. Yeah." Daniel: "Yeah, that's what make me go into the single monitor lifestyle as well." Dave: "Yeah. So, yeah, obviously I'm eyeing up a studio display next to just complete the setup, but we'll see. This monitor is nice. Yeah, yeah, yeah. Yeah. Complete the look. I'll post a picture on beautifulsetups.com. No." Daniel: "Complete the look! Oh, fantastic. Not on reddit.com slash r slash battle stations." Dave: "Oh I can't, nah, not at all. Yeah, the other thing is, is I've had a full size keyboard to replace my smaller, older Magic keyboard. And that means I've now got one with Touch ID on as well. Yep, yep. So that's actually been a bit of an adjustment as well, is actually finding the right spot on my desk for it. Yeah, yeah, yeah." Daniel: "Mm-hmm. Oh, those are so nice, right? Yeah. So you're about, yeah, OK, so you have the big one. Because I have the one without the numpad. And I'm always in my mind switching, or not even in my mind, I'm always switching between those two. Like whenever I buy a new keyboard, which is not super often, but once every three years or so, I have kind of bought new keyboards because they either break or they get the fingerprint center. And I really wanted to have that. And." Dave: "Mm-hmm. Yep. Yeah. Yeah." Daniel: "And I thought, ah, do I get the one with a numpad or not? And in the end, I kind of looked at my usage because the previous one was with a numpad. And I felt like I don't, I do use the full size arrow keys a lot. And I feel like those are a bit bad on the smaller one. But it turns out I don't use the numpad a lot, especially because I switch between entering German numbers and..." Dave: "Yes." Daniel: "English slash American numbers a lot of the time. And I don't know if you know this, but like the decimal separator in German is a comma, whereas in most English languages, the decimal separator is a dot, it's a point, or a full stop. Whereas the thousand separator in German is a full stop, English is a comma." Dave: "Yes. Mm-hmm. Yes. Yes mirrored. Wow. Okay, cool." Daniel: "is exactly mirrored. And so if I get a German keyboard, I would have a comma there, which allows me to enter German numbers, but I can't program on a German keyboard. So I've had American keyboards for years and years now. But then there's a full stop. There's a dot on the numpad, and that prevents me from entering German-style numbers. And my system is set to English slash" Dave: "Mm-hmm." Daniel: "US, I think. But my locale is set to German. So for example, if I want to enter a number, I need to enter a comma if it's a decimal. Anyway, long story short, numpad is very much useless for me. So I decided on cutting it off and have more space for the trackpad next to it because I'm a trackpad. I'm a magic trackpad user." Dave: "Okay. Yes. Me too, and that has been the dilemma, has been finding the perfect spot to put the trackpad in with the bigger keyboard, and honestly I probably should have just bought the smaller keyboard with the touch ID on it, but I got suckered in with the space grey colouring and the black keys, and was like oh that'll look lovely. Of course now I've got a white trackpad next to it and that doesn't really match, but so be it." Daniel: "Oh yeah. What I was so hoping for when they released the M1 iMacs was that they'd release the keyboards in the colors and the track pads in the colors, because I would have gone full orange." Dave: "Yes. I would have gone full purple with those colours. I went through a phase of actually trying to see if I could track them down as like spare parts or second hand where somebody's just selling those off. And you can do it, you can find it, but it's much more money than I want to spend just to have a purple coloured track band." Daniel: "Very nice. Mm-hmm. Yeah. I mean, even if you just buy a new trackpad and a new Apple keyboard, you're out, like, what, 250 euros? At least." Dave: "Yeah, at least. So yeah, nah. Anyway, yeah, this is the new setup. I've got the bigger keyboard. I'm getting used to it. We shall see. I did debate sending it back and trying to get the smaller one, but I kind of have adjusted now. So that's, yeah." Daniel: "Yeah, I get that. I mean, it's just very nice. It has also has its pros and cons, but I'm really happy for you to have all this, the computing power now. Like, it's nice." Dave: "Yeah. It's helping. It's helping what I'm doing. And okay, so we've, we've talked a lot about setups and life and but some Bob's Daniel, but I'm talking about my dev and what I've been up to. It's really kickstarted something new that I'm working on. Which, which I kind of predicted. So yeah, yeah. So I've, I've been making a thing, Daniel, over the last, last" Daniel: "Mm. Yeah, it's just fun working on new hardware." Dave: "or three weeks. Okay so um we talk a lot here. Don't click my thing. Um crikey yeah this could really descend quite badly so let's out of the gutter Daniel let's keep going. Um okay so my project that I am working on um" Daniel: "Tell me about your thing. Someone clip that. Hahaha Mm-hmm." Dave: "It is a node based video filter system." Daniel: "And by that, you don't mean the program language, not dot JS. You mean nodes as a user interface thing. Correct." Dave: "Yep. Yeah, yeah, yeah. Exactly. I'll just call me old school like that. Daniel nodes to me is connecting lots of stuff rather than the, the big JS platform that, um, is out there. But, uh, yeah. Um, so you can, you can put these, um, so you can put inputs on the screen. You can put filters on the screen as, as individual sort of, um, an individual" Daniel: "Cool. What's it do?" Dave: "uh, like things on a canvas. I don't know how to describe it. It's like having a lot of different post-it notes on the screen that you can then connect together. So you can connect the output of one thing to the inputs of another thing. Um, and it will visualize what that looks like. It shows you the, the produced image. Um," Daniel: "It kind of looks like that GIF of that guy who has the conspiracy theorist guy who has like lots of papers on his wall and then lots of red string connecting them. And so you're connecting the input, the output of one of those nodes basically to the input of another one." Dave: "Yep. Yeah, yeah, string everywhere, like, Bayesier curves are my friend. Um, I'm trying to, you know, make the, the connections look nice on the screen between each thing, so they're curved and all of that. But the point of it, the actual point of doing this thing, uh, is so that I can make my own combined filters out of, out of all of these parts. Uh, if you remember. Couple of years ago, maybe I was working on a pixel art app that sort of repurposed my video engine from the video mixing app that I have. And I got so far with it and then I put it down. And one of the big reasons that I put it down was because actually making these sort of combined chained filters to do what the app needed to do was quite hard. You know, you think about what my dev process was," Daniel: "Mm-hmm. Mm." Dave: "Add a connector filter to another filter and another filter to another filter, sort of linearly, if you like, in code. Set the attributes, compile, run, load an image, see if it looks how I want it to look. No, it doesn't. And each one of those is like, you know, a two or three minute loop, if you like, after you sort of go through stuff. And I did a couple of things where I could have, you know, sliders to control one thing or the other, but it was very, very tightly coupled to the code and not very flexible. And so I had to kind of predict, okay, well, maybe I want to have that filter go into that filter. Maybe this would then look a bit like that. And that works so far, but honestly, once you're beyond, you know, more than a couple of filters and blends, I can't really visualize in my head what the outcome's going to be. So this gives me a palette and a canvas that I can kind of play with, tweet these things, see them in real time and get things just as I want them to. And then I can export them out because everything is codable. I can export it as JSON even, and then get that loaded into one of my apps that's got this library and off it goes. I can use that as a effect pipeline. at that point. So yeah, that's it's going to power my video mixing app. Ultimately, I'm going to replace the engine with this node based library underneath." Daniel: "Yeah, that's really cool. get all the power. So like, I am an amateur Blender user, and Blender has lots of places where you can do node-based programming almost, like for the shaders and the materials and the post-processing and whatever. And it's so cool. Like this is one of my favorite things because it feels like less effective, I wanna say, or less productive than like real programming, but it's so much more fun. You immediately see the output." Dave: "Yes. Mm-hmm. Mm-hmm." Daniel: "You can visualize all the different steps and it's just so haptic and visual and whatever. So that's really nice. Hang on. T just sent me a message asking what, asked to send, they need to know more about the piggy on your desk. Hang on, I'm gonna show you the piggy. Gonna get it really quick. Give me a second, give me a second." Dave: "I... One second." Daniel: "This is live." Dave: "This is live and this needs a lot more context, Daniel. This needs a lot more context, Daniel." Daniel: "So this is, okay, so I posted on Mastodon a picture of my desk, and if you look closely, there's a tiny pink, very round piggy on my desk. And the story of this piggy is a friend of mine sent me a TikTok video where someone was doing, was like lifting weights basically, and to ensure that" Dave: "Yes. Yeah." Daniel: "they would go low enough with the bar, they would have this exact piggy on their chest and then make it press it. Because if you press it, it does this. makes a sound and it..." Dave: "So every time they lifted and brought the bar down..." Daniel: "It makes a sound also like just pushes out its tongue. And so we were just like super having fun about this, this TikTok. And then she basically sent like sends me a package with this exact thing. I guess she found it on Amazon or something. And I'm like, okay, this is very cool. I'm going to like this is like now with the assorted knickknacks that sometimes live on my desk and sometimes I just lay next to my desk." Dave: "Yes." Daniel: "Like I've got like a little table there that just has some Kerbals, some other stuff. And." Dave: "Well, the picture of your desk we mentioned earlier will be linked in the show notes and it will... Yep. And it features this pig. So you..." Daniel: "Yes, I already put it in the show notes. And so it features this pig and now this episode. So whenever we're releasing it, T can then listen to the episode and then know more about the piggy because that's what they wanted to know." Dave: "no worries. You have completely derailed my train of thought. You have introduced a new node to the canvas and split the train. Yes, that is how it works." Daniel: "Ha ha ha. Ha ha! A new node, yes. And now everything is piggy tinted, and that's how it works. I do have a question though about the note base. So what you said, like what you were kind of describing right now sounded very much like, okay, there's a separate app and that has the notes and then you can export the things and then like manually include them in the, in Govj for example. Like, does it have to be manually? Like, is there like a..." Dave: "Mm-hmm. Yep." Daniel: "I don't know, with short cuts or shared application folders or whatever. So that is just automatic." Dave: "Well, no, it's worth noting this is a dev tool right now. It's not really intended for other people to play with. Yeah, not least of which is unlikely to probably change the model at some point or have that, you know, I'm not really versioning the output that it gives right now and those sort of things that you would need to do if it was gonna be a real thing that other people could use easily." Daniel: "Mm-hmm. Oh, okay." Dave: "Never say never, but I think this is going to be just an in-house tool for some time before I try and find anything else for it. Yeah. Sorry. But I'll tell you something, it's a catalyst app when I use it on the Mac, so it's SwiftUI based with catalyst. That means of course I can use it on my iPad, and it is definitely fun to use with the pencil. So, yeah." Daniel: "Oh, I am disappointed. I understand though, but I'm disappointed. Fantastic. Cool." Dave: "Um, so I can sort of foresee a world where this is kind of my, my sketch pad for new video effect ideas literally on the iPad. Um, and yeah, maybe it evolves into its own app in time that I actually put out in the world." Daniel: "And then in spring, when the VR headset is released, then you can have a huge, incredibly large video screen. And then in front of you, a tiny note-based interface to live control it, to preview how it would look like in a concert where you are VJing." Dave: "Mm-hmm. Ha ha. Indeed, indeed there are lots of visual and OS things I could probably do with this in time in that way. So yeah, I really hope that becomes a going concern as a platform because yeah, that would be a lot of fun. But Daniel, the thing that this is for though, it's not so I can resurrect my pixel art app, although that might be a thing I do in time. But it is to provide a base that I can then kind of plug into my Lego app structure that we've talked about before, where I've got a lot of libraries and things that are preset, stand things up. And it's kind of being built so that I can stand those things up quicker in terms of the visual ideas and the filtering ideas that I've got. So I've got a laundry list of apps I could make." Daniel: "Mm-hmm." Dave: "which I think is typical of a lot of indie app developers. You come up with an idea. Most of mine center around messing around with images and video and things like that. So this is a bit of an enabler for that, but yeah." Daniel: "Hahaha Yeah, which is why I thought in the beginning, it would be cool to have that actually user facing because then like, you could of course, use the tool for you for the for the like, just like to have enough content to keep to get people going. But then like people could do so much, you know, but you'd probably spend so much time working on that thing that you wouldn't be able to work on Govj anymore. So I get it." Dave: "Mm-hmm. And that might be. That's my concern. I kind of want to use it as an enabler first and then think about whether it's got any other utility to other people. Because there is a world where it could be useful for that. I could see a version of this that is associated with the video mixing app where people can make their own combined filters." Daniel: "Mm-hmm." Dave: "potentially even then, because it could be all turned into JSON, send it up to a back end and then maybe I can have a whole section where people share their filters with each other in the app and things. So we'll see how it goes. But right now it's an in-house technology as it were. And I'm kind of getting to a thing I wanted to just talk about very briefly, which is that, yeah, I've got my site set on..." Daniel: "Mm-hmm." Dave: "a new app that is kind of the old app. So the simple way of putting this is that Govj as a mixing app has two channels of video. It does what it does very well. It's quite fun to use as a performance tool and you can use it to put on a video accompaniment to whatever audio is going on. But." Daniel: "Okay. Mm-hmm." Dave: "The professional software in this realm of the world, in this niche, if you like, tends to be desktop based, tends to be multiple channel. So like N layers of video that you mix together and tends to have a bit more going on than what I've got. And so, and I've gone round and round on this as an idea, or maybe I need to do like a pro version. Maybe the pro version is just this app with an extra unlock to use more layers or something. I've decided I'm going to build it as a separate app. I'm going to rebrand the pro upgrade inside of the existing app to just being called plus so that the names don't conflict and then there will be a Govj pro at some time next year. That is the current plan and that will" Daniel: "Hehehe Very nice." Dave: "Yeah, thank you. It should be cool. It should be multiple layers. And I'm going to pitch it as working on the iPad and the Mac. And I'm just not even going to consider trying to scale the UI down for the phone. And that, that thing sort of frees me to really get playing." Daniel: "Oh yeah, I can see that. That's really cool. So what are the steps to get there?" Dave: "Uh, one of the, so yeah, good question. First step, I am going to be kind of pragmatic with my time. I'm going to stand up a, uh, landing page and a mailing list signup. And I'm going to boost and post that all around the places where people in my target market congregate. So that'll be me stepping into Facebook groups and places I don't normally frequent, but, um, So be it, go where the users are, go where the customers are. Um, and I'm going to see if anybody's actually interested before I put any major effort into building this thing. And I think the answer will be yes. Uh, yes." Daniel: "Yeah, that's a fantastic idea. We talked about this offline the other day. And I think that is this so like everyone, like all the other stupid, like business entrepreneurial, um, like podcasters always talk about this. Um, and it's so incredibly frustrating that it works because it, it re in a, in a perfect world, it just shouldn't, but it does." Dave: "Yeah. Hehehehe Yep. Well, the problem is, as developers, you just want to build the thing, right? And it's like, I built the thing. It's beautiful." Daniel: "Yeah, like building the thing is way easier than like thinking about like how it could look like. I don't know how it looks like until I've built it." Dave: "Yeah. So there's a few steps before I can even put the websites up. I want to have a good idea of what the UI might look like. So I can at least make a mockup that's going to be semi accurate. I mean, obviously it will be subject to change as I build the thing, but you know, I want to have a good vision of what I'm selling because otherwise it's just, I'm thinking of making this please sign up. Um, so I'm going to have to have something strong in terms of, uh, the visual on that." Daniel: "Mm-hmm." Dave: "But yeah, I'll give that a go. And I think what I'm trying to do here really is just pre-validate the idea, right? So can I visualize what it's gonna look like to some degree? Can I stand a landing page up and communicate that to potential customers? Is anybody actually interested? And do you know what? If I only get a couple of signups, I'll probably move on to another idea. But if I end up with, I don't know. anything approaching triple digits, then I think that will be enough to motivate me to say, yeah, okay, there's at least a hundred people out here who've got some interest in me building the thing. And I'll use that as sort of my fuel, if you like, to sort of spur me into action. And there's a bunch of technical steps as well. I wanna replace the engine inside of the existing app with this node-based." Daniel: "Yeah, I think that's very smart." Dave: "pipeline first. And there's a whole bunch of stuff I want to do there to just simplify some of the Swift UI layers that I've got in the existing apps UI and that sort of thing. Largely because I'm thinking about, well, that then puts me in a place where I've got a base that I can start from for the new app. I'm literally going to take the old app and hack it together to do this and build it up from there." Daniel: "Hmm? Mm-hmm." Dave: "So I'm going to clean house first. And then that means the existing app gets the speed boost, if you like, of having the same engine pretty much as the other one. That means that when new effects are developed for one, I can drop them into the other one and vice versa. And so I can kind of spread my efforts a little bit there as well when I want to." Daniel: "And how does the engine look like? Is it more like a shader that's working on individual pixels or is it more high level where you're combining individual metal-based shaders?" Dave: "Uh, they're all shaders. Yeah. It's both. So the nodes are shaders that are then turned into core image filters. And then the higher level is connecting them all together and then having a structure I can play with that I can just load. And when I say just load, I mean, I can instantiate a pipeline, if you like, with all of these things connected together. And the pipeline has some parameters exposed that an app can control. And..." Daniel: "Mm-hmm. Mm-hmm." Dave: "you're then talking about loading images, videos inside of it and getting an output off the other end. So it's, yeah. Yeah. And I don't know, Daniel, I just find it fun. To be honest, I can't justify, I can't actually just say, you know, right, okay, this changes the world in some fashion or is like, you know, the best things in sliced bread. It's just that no, I got the bug 20 years ago of playing with video stuff." Daniel: "Very nice. Ha ha ha!" Dave: "and it keeps pulling me back in. And thankfully there are a few other video pixel incline people out there that like to use my software. So that sort of combines nicely." Daniel: "We at Govj, we've had a vision for thousands of years. We as humans have worked towards this vision. And finally, we can give you Govj Pro, changing the world one filter at a time." Dave: "I might use that." Daniel: "the You can!" Dave: "You wait, you wait, I'll put the landing page up. I'll get a little motion graphic video together of the UI and I'll use you as the intro from this show." Daniel: "I'll be, I'll be your intro. I can, I can very much do like visionary startup, dude." Dave: "Uh-huh. Brilliant. Well, that's how I will credit you on the credits of this video. You'll be visionary startup dude, Daniel Yilg." Daniel: "Hahaha Fantastic. Yeah, yeah, I'm in. I'm in. Yeah, let me know how you want the lighting to be. I have a blue goatee, so that kind of helps." Dave: "Yeah, yeah, that's fine. That's fine. Although, yeah, we might just use your audio, Daniel. No offense." Daniel: "Hahaha. Fair, fair. I have a face for radio." Dave: "Ah, me too, me too. Um, actually we can see each of the today cause we're using the video side of the, the podcast recording software that we use. And that's, that's kind of fun because you get just a little bit. Yeah." Daniel: "Mm-hmm. It's all about the content. We're producing multiple forms of content at the same time because content is everything. We're producing video content, long form audio content, long form video and audio content, and short form, I had something for this, short form swipeable portrait style content." Dave: "Oh dude. Yeah, no, no." Daniel: "And that's going on TikTok." Dave: "Uh, what you can't see listening to this is the look of sheer fear on my face. As Daniel said that, uh, definitely not got a face for tick tock. Oh yeah. Yeah. Absolutely. Well, Daniel, um, I feel like I've talked all about my video stuff, which I have. Um, I wanted to just check in very quickly with you before we close out the show. What's what's going on your side of things?" Daniel: "Gen Z is gonna rip us apart. Huh, okay. I have two things, huh? How do I phrase this? Or how do I combine those? Okay, so short term, I've been thinking a lot about how do I make telemetry easier for new users? And just easier for, hmm. Like right now, if you start using telemetry deck, you gather the data and then you get this." Dave: "Mm-hmm." Daniel: "this one screen that gives you like number of users and which devices they use. I know which operating systems they use and their retention, which is very nice and very helpful. But there's so much more. There's so many more insights that people will, every single or almost every single person that uses Telemetry Deck will inevitably create. Like for example, what devices are people using? Stuff like that. And so I've decided I want to have more default insights. So I've been working on those. Today I started on the devices that people are using. I have actually built a new chart type for that because I've been very much inspired by what Plausible is doing and what Google Analytics are doing in regards to like" Dave: "Yep. No." Daniel: "They don't have pie charts usually, because pie charts are visually kind of hard to read, but they usually have horizontal bar charts that are underneath each other, and then they put the labels on top. And they built those not using Canvas or some other charting library, they just built them using just HTML basically. So I thought, I'm gonna try that too. I paused for that as well, I'm gonna link it." Dave: "Right. Yeah, definitely. Yeah." Daniel: "And so I have a prototype of that running and that will actually display the type of devices that people are using. And also the models, so like, oh, this is an iPad 14 pro or whatever. But also device types, like so there's a tablet and this is a desktop computer, for example, and to do that, I finally documented a feature that" Dave: "Yeah. Got it." Daniel: "the telemetry query language has had for a while, which is lookups, which is basically a lookup table of, if this value is here, then transform it into this value. So I have one lookup table that has every single Mac, every single iPad, every single iPhone, every single Apple watch, every single Apple TV and whatever, all those like, you know, you've seen those like iPhone 13, comma four or whatever, these model numbers and it will translate those into human readable numbers." Dave: "Mm-hmm." Daniel: "Um, human need readable descriptions. And I have one, one that also takes the same input and then returns. Is this a desktop? Is this a laptop? Is this a phone? Is this a tablet? Or is this a set top box? And, uh, of course I also need to add the Android devices and whatever, uh, the web SDK also spits out regarding, um, regarding is this, what kind of kind of device is this and, um," Dave: "Hehehe" Daniel: "This way I can give more information to the customers. And I can also, like, people have been asking me this for a while, actually. Like, hey, can we translate those model device names into human readable names? And this way we can easily do that. And people can actually use it. Huh?" Dave: "Yeah, yeah, because they get pretty atomic otherwise because there are quite, they get pretty atomic otherwise you end up with like your stats for all the iPads sort of split between the variety of iPads that your users are using. So" Daniel: "Yeah, that's the other thing. And also people can use that lookup in their own queries, which is kind of nice, but also I just want people to have a larger default set of just like insights, so that they don't have to make queries for everything. And that kind of gels with the idea that I want to have more things that are smart by default. And so that's like kind of the first step into that direction." Dave: "nice" Daniel: "Um, let's see, let's, let's see where it goes. Um, yeah, I have, I have long-term plans too. Um, and like they're in that stage where your Govj pros basically. So the long-term plan is I've recently learned from, uh, actually friend of the show, I don't know, from one of the, one of the customers, and I think I know I'm one and on, um, Macedon too." Dave: "Hmm Awesome. Ooh. Ha ha." Daniel: "Matt Massicott, I learned a huge amount of stuff about metric kit and about crash logging. And so now I'm kind of thinking, huh, maybe Telemeshik does need crash logging because now I know where to start. So yeah, I'm still thinking how do I start with this and how do I gauge interest? So I might actually also make a sign up page or something." Dave: "Thanks for watching! Yeah, yeah, yeah. Yeah. You totally should. Like." Daniel: "And also, my first instinct was to add a very rudimentary version of this to the telemetry SDK and just start collecting the data so that there's a certain amount of data just there to test all this out, even though customers wouldn't see too much of it yet. Problem with this is I've looked at it, and the whole data structures are so very different from what we use right now." Dave: "Mm-hmm. Okay." Daniel: "So it's not like I can just push those into telemetry data signals. They look very different. They would lose, I mean, I could get it in there somehow, but they would lose a lot of semanticness. And so it would be hard to actually reason about them and actually let an algorithm run through those and identify the problem and stuff like that." Dave: "Yeah" Daniel: "So I haven't really started programming on it yet. I'm still in the learning phase." Dave: "You need to Learning phase is good. I think the validating phase is probably vital because I can see like, this could be a huge time sunk, huge time suck even. That's getting time sync time suck confused. Um, but it could be a rabbit hole for you that you fall down and get nothing else done for if you're not careful. So I think, yeah, if you could, could do the landing page thing to sort of validate it and, uh," Daniel: "Yeah." Dave: "you get a bit of feedback there. But then otherwise it sounds like if you're going to do any dev, it needs to be a separate thing for a little while, like a proof of concept or some sort of microservice within your larger stack that you can turn on or switch off independently of anything else that you've got going on. Yeah, I could imagine your first version of this." Daniel: "Yeah, pretty much." Dave: "it's not gonna, you're not gonna land perfectly in terms of that data structure, everything else, and how you would then link that back into everything else inside of the telemetry deck stack. You're better off, yeah, having a play, seeing what it does, and then, you know, thinking about the integration after you've learned that bit, in a sense, I guess." Daniel: "Probably, yeah. But I also don't want to build up a whole secondary stack. I want to reuse existing structures as much as possible because that's also one of the principles where if it's possible, then it's usually a good idea to reuse something existing because you don't have to reinvent the wheel twice or something." Dave: "Yep. Yeah, no, I get that. I get that. It's just you also need to contain it so that it doesn't distort the rest of your structure too far as well. Like, certainly not before you know that it's definitely going to be an ongoing concern that you are selling and building and doing. That would be my worry is you, you know, you wire it in, you make it work, but actually it dictates a whole load of changes that are then..." Daniel: "Yeah." Dave: "you know, if it's not the direction you go, ultimately would be irritating at least to reverse out of. But the idea is exciting, Daniel. I like the idea and concepts of you having it, and I love the idea of you know, that being another string to telemetry deck's bow, as it were. Yeah, like I currently don't have any proper grass reporting in my apps other than what Apple gives us." Daniel: "Mm-hmm." Dave: "you know, and that is" Daniel: "Yeah. And the problem is what you see in Xcode Navigator is not very good because, um, how do I put this? Like you get the crash reports and the crash reports has like a stack trace with various frames. And there's like a very simple heuristic that actually tries to combine the frames into like, when something happens, like when, when multiple crashes happen to combine them into like one single crash report and then" Dave: "Mm-hmm." Daniel: "just like pointing to one line and being like, okay, this is the line. And I think you could do way more with crash reports, even if you just have a slightly better heuristic. And yeah, that would help so much. And also like Apple will only update you on these, will only update you on these every, I wanna say 24 hours or so. So I mean, you can't get them real time from Metricit, but you can get them every 24 hours from each device. So if you deploy something, you'd get crashes almost or crash reporting almost immediately if you have a decent set of users. You know?" Dave: "Mm-hmm. which is what you really need, right? You want to be able to respond quickly. So." Daniel: "Yeah, you want to be able to deploy and maybe have a slow rollout. And if you see, if you see crashes, you just pause the rollout, you know, because you see the crashes immediately. And then you can be like, okay, we get like a hundred or 50 crashes or whatever. Let's fix that and then try again tomorrow." Dave: "Yeah. Yep. Yeah, I see it. I see it. And I also see the benefit of you, of it being an integrated thing in the end is that you don't necessarily, you can't assist. How am I thinking about this? You've got your signals coming through for the events that the user is tracking and all the other metadata and information there. If you've then aligned that with crash reporting, I can see like, you know, the chain of events that then certain crashes a group by." Daniel: "Oh yeah, of course. What are the 10 signals before this crash?" Dave: "Yeah, it only happens when they access that screen, for example." Daniel: "which is a really good argument for having the signals and the crashes in the same database or at least on the same database server." Dave: "Yeah. Yep. Well, I'm very" Daniel: "All right, if you want crashes, if you want crashes, if you want to see crashes in Telemetry Deck, write me an email and or write me on Macedon. I am Daniel at social.telemetrydeck.com. Dave, where can people find you on the internet?" Dave: "Or you can find me on Mastodon at Dave at social.lightbeamapps.com. You can also find out about my apps just at lightbeamapps.com in your browser." Daniel: "Fantastic. All right, Dave, have a fantastic day. It has been awesome talking to you again. And yeah, see you soon." Dave: "You too, Daniel. Take it easy, mate." Daniel: "Byeeeee!"