Daniel (00:09) Dave, how do you feel about cold opens? I don't care. I'm going to open coldly. So I have a thing. have a thing where I personally with my private money, I'm sponsoring a tiny podcast. I don't know if it's so tiny, but like I'm sponsoring a smallish podcast via Patreon because they will read the list of their gold sponsors at the top of every episode. So most of them, I will just... David Gary Wood (00:14) cold opens. Ooh, feeling that. Daniel (00:37) So they will just like read out this and this and this and also telemetrydeck.com. So I think it's kind of cool. The podcast is the Shift F1 podcast, if anyone is interested. I love that podcast. It's like such a fun, fun take on Formula One. And recently people have started changing their Patreon names every now and then in reaction to events in the Formula One world. David Gary Wood (00:47) Meow. Awesome. Daniel (01:00) Basically, they will have to make them read the new names, right? And that was kind of like a fun game. Every now and then, every episode, you're like, okay, what have people changed their names to? Now, the person that is just like two entries behind me, think, has changed their name to Cigarettes. So it's like, the Shift Everyone Podcast is now sponsored by Cigarettes. David Gary Wood (01:20) Cigarettes. Daniel (01:22) And telemetrydeck.com. ⁓ David Gary Wood (01:23) Oh my word. Oh Daniel (01:27) So yeah, I'm thinking I have to change my name to something, but I don't know what. David Gary Wood (01:32) You need to have like a sort of Boaty McBoatface kind of name. Like, I don't know enough about F1 to create one, but yeah, something like that. Maybe just for the lols. Daniel (01:44) Hans Hermann. But anyway, enough of Formula One or other podcasts, this is Waiting for Review, a show about a tiny, now about the majestic indie developer lifestyle. Join your scintillating hosts to hear about a tiny slice of their thrilling lives. I'm Daniel, the technical founder of telemetrydeck.com, and I'm here with Daddy of the Week, Dave. Join us while Waiting for Review. David Gary Wood (02:05) ⁓ Daddy of the week. Thank you. It's not even Father's Day. Daniel (02:10) Everyday is Father's Day somewhere. David Gary Wood (02:12) True, true. I think I'm turning into like the cat daddy these days. We've got two cats again now in our house and yeah, that's very nice. Our kitten is growing up well. But yes, she's not around. So I feel like I can't add her as a guest on the show, but maybe I'll do that so people can just see her picture. Daniel (02:18) Aww, well that's nice. David Gary Wood (02:35) If you go to the Waiting for Review website and you look at our show guests, you'll notice that all of our cats are in there because of the various times that they've crashed calls. So yeah, I think maybe I'll put our new cat Sylvie there just because. Daniel (02:46) Mm-hmm. yes, please, what's her name? David Gary Wood (02:53) Sylvie. Yeah, although she gets called all sorts as most cats do. she's Sylvie, Velcro kitten, because she attaches herself to a human and just sits there. Yeah. But yeah, she's really sweet. Another tabby cat. And her name is Sylvie and our other cat is called Stevie. So it kind of gets a bit confusing at times. And then they both Daniel (02:55) Sylvie. Of course, of course. That's adorable. David Gary Wood (03:20) look the same because they're tabbies. So yeah, we've set ourselves up for confusion, but they know who they are and they know where the food is. And yes, they're very sweet. Yes. Daniel (03:33) That's the most important thing. Speaking of pet nicknames, Mimi and Momo are sometimes called Dumpling and Sausage because one of them is like small and round and the other one is more longish. David Gary Wood (03:44) You or. Well, where are we with the show? Daniel (03:45) We actually got selfies. So last episode or over the last few episodes, think, we told people, if you are at this point in the show, send us a selfie. And we actually did get selfies. That was so cool. I loved it because it was like, yeah, people are actually listening to us while they were out and about. They were at home or on their desks. David Gary Wood (03:51) Yes! Mm-hmm. Yes. Daniel (04:10) And that was really cool. So shout out to, like, do we read the names of the people who send us that? All right. Cool. Cool. So one person, Joe Heck, with an exclamation mark, ⁓ sent us a selfie from a walk. As did Holger. He was also wearing a t-shirt with a podcast, Bits und So, which is German for bits and stuff. Also kind of fun podcast. David Gary Wood (04:14) Yeah, go for it. Yep. Yep. Mm-hmm. Mm-hmm. Daniel (04:34) Also Lisa, who you might know as the CEO of telemetrydeck.co. David Gary Wood (04:41) Mm-hmm. So yeah, some good selfies there. We should. Well. Daniel (04:43) So yeah, I like that. I like that. We should continue doing that, asking people to do stuff. But I wanna one up it, which is if you have a chore that needs to be doing, like right now, you can start doing that. You can just listen to us ramble about bullshit basically, and do the thing that you did. And then you can tell us or selfie us that you are proud of having like progressed your chore by David Gary Wood (05:01) He Daniel (05:09) 30 minutes or whatever. Like if you're not done, it's fine. But just like start, start. You can do it. We believe in you. David Gary Wood (05:14) Absolutely. I want to see the vacuuming or whatever it is you're doing right now. Like take a selfie in that moment or take a selfie of the job well done and tag us, email us, whatever way you feel most comfortable. Although I will say if you post on social media, we can link you in the show notes as well. So there's a motivator. Tag us on the mastodons and we'll do that. Daniel (05:40) Do not send homing pigeons though, they kinda mess up the balcony. David Gary Wood (05:41) It's fun to see. Yeah, yeah, they do. had to stop that. That just didn't work. Daniel (05:48) That's another chore for me even. David Gary Wood (05:51) Yes. And yeah, awesome. I definitely look forward to seeing people's selfies. It's always fun to see and you get a tiny slice of our scintillating lives. We would like a tiny slice of yours. Daniel (06:05) scintillating slice of your tiny life. That sounds wrong. the cats are very scintillating too. Did you hear that? They're just kind of like zooming, zooming through, like just there right next to me. I need to add like behind me. David Gary Wood (06:07) There we go. Yeah, that sounds wrong. I did not. Right, I'm gonna do it when I post. Yeah, you need a cat cat's shelf behind you. I'm gonna do a thing where on this show, if you go to the show notes, I will add all of the cats to the guests. And then you can see their little profile. Daniel (06:21) Catch y'all. Hahaha That's very important. Yeah, you're writing it down even. Cool. Do you want to hear about the thing that we didn't talk about last time because we were kind of time-constrained? Where I was like deep in the server minds and came back with lots of performance goals. David Gary Wood (06:37) I am, I am. ⁓ Sorry, no, absolutely, absolutely I do. Let's get into it. Daniel (06:52) You don't want to hear it? Okay, fine. So next up. Okay, so as you may know, I am by now probably one of the most prolific users of Apache Druid, at least on the European continent, which is kind of a strange thing to say. I even have open pull requests that are probably about to be accepted, hopefully, in the project. I ⁓ kind of could count myself as a... David Gary Wood (07:19) Ooh, you're a contributor. Daniel (07:22) contributor, but one of the tests is still failing. I've got to look at that. The reason behind this is because I want to have a good performance for our customers who want to see all their data. For a long time, everything was slowish and breaky. No one else in the druid world was talking about it. Everyone was like, oh yeah, we loaded like David Gary Wood (07:23) Yeah. Daniel (07:46) gigs of data, terabytes of data into this and just worked and was very fast. And, yeah, we use this feature and it just worked and like nothing ever worked for us. so I did lots of experiments, which take ages of time, found a few things, like a few like special characters that are kind of not allowed. I think I told you about this year, months ago. Other things that I like. I just had a few, had lots of experiments, experiments running. And basically the results are in the result is the width of our data source is the problem, which means that every line in our quote unquote database has just like infinitely many fields because it basically takes all the fields of all the customers. if like someone, if you send a telemetry deck signal or event that has a property that says like, I don't know, is Daniel recording a podcast and You set that to true. Then now we have a field that is called is Daniel recording a podcast. This is just how this data, this type of database works. And they say in the documentation, this is totally fine. Like we can, we can do as many fields as you want. the, don't care at all about it. It turns out they do care. Like at least the code cares or at least memory cares. Like I've been like upgrading servers with higher and higher RAM to just stay on top of that. And like you just reach a breaking point. David Gary Wood (08:35) Mm-hmm. Daniel (09:02) And so the solution finally was the following, splitting up the data sources. Like this might seem obvious, but it's actually not that easy, both from a standpoint where you want to like convert people from the old to the new, but also like if I have too many data sources, this will, this would be another performance problem. But I have like the main thing that I kind of found out is if I have two data sources, one is the big one where all the data lives in. And then the second one is exactly the same, but it only contains the fields that the telemetry SDK sends or can send. So that's about like 50 to 80, I think. ⁓ And that's it. Like all the data, but only the fields that we know about. And that thing is so much nicer to deal with. It fits into the RAM. It can be compacted, which is like... David Gary Wood (09:38) Mm-hmm. Yep. right. Daniel (09:54) Like we can be defragmented. can be distributed. The optimization techniques all work. A query on the big database, according to, I haven't looked today, but I have this dashboard basically that tells me how long queries do run. And a normal priority query on the big data source waits about five seconds for other queries to finish and then takes about two seconds to calculate. A query on the small data source waits about half a second and takes about 0.02 seconds to calculate. David Gary Wood (10:24) That's what you want. Yeah. Daniel (10:26) And so with that, I have now switched over all the default charts, all of them to the tiny data source and so much faster. And then I had a long conversation with my good friend, Konstantin, about caching. And he was like, yeah, yeah, but like most of the results are these like individual results per day, right? Like users per day or whatever. So. Why don't you, like, instead of caching the whole result, why don't you cache the individual days and kind of like, take, combine this stuff. And so I kind of dive deep into like, how do I, like take the results that the database gives me and then kind of like, pull them apart and have like cache and validation logic and stuff like that. How do I fit it, fit that in into my caching layer? And then while I was researching that I found out that there's, caching functionality built in. It is just A, very hidden and B, in a separate community package and C, I needed to add a pull request to make that work. But then the server just does it for me. that gave me another twofold increase in performance, even with the big data source. David Gary Wood (11:29) What? Yeah, yeah, that's awesome. Daniel (11:33) for the cost of just one single little tiny memcached server. So yeah, that's the second thing. Oh yeah, and the third thing is I moved servers again. That's just a thing I do every year. Now I kind of pick and choose a new host and just move all the servers there. No joke, I'm joking, but a lot of our... David Gary Wood (11:45) Right, as you do. Yep, yep. is the annual migration of the servers. Daniel (11:57) Like in the spring we bring them up the mountain and then in the fall we just like purred them down the mountain again to get their milk and stuff. Most of the calculation servers now live at Hetzner in Germany. And that is cool because they have bare metal servers and those have even better disk performance, especially if it's as these NVMe SSDs. Like of course, David Gary Wood (12:12) Mm-hmm. Yes. Yes. Daniel (12:24) On AWS we have designated SSD machines, still the performance is even more immediate. And you can also see that in the data. That's also just better for the performance. So yeah, that was eight weeks of my life, if even that. ⁓ David Gary Wood (12:30) Yes. That's a lot of work. Yeah. Yeah. So for listeners Daniel (12:45) finally some wins, you know? David Gary Wood (12:45) of the show that use telemetry deck, for listeners of the show that listen to telemetry deck, all of your charts, all of your queries are now very optimized from the sounds of that. Daniel (12:57) such optimization. Hang on, let me give you the dashboard.telemj.com. And I have like, where is this? Cray service dashboard calculation duration. ⁓ Hang on. ⁓ can show this, not this. Let me scroll in a way. Okay, I can tell you some numbers first that you can't see because there's like customer names in there. David Gary Wood (12:59) Nice. Is this something you can show Daniel? Is it okay to screen share? for the YouTubes. Mm-hmm. Daniel (13:25) because I kind of split it up by customers. So, but like the big data source currently takes around two-ish seconds to calculate and the small one 0.21 seconds. But I can show you this. Hang on. I will describe that any charts that I'm sharing as well for the audio listeners. So this is one of the more important dashboards that I've been looking at for a long time, which is... David Gary Wood (13:41) Yes. Daniel (13:50) ⁓ Just like how long do people wait until the calculation is already actually finished? Or like how long does the actual calculation, we have a queuing system. I've improved that as well. It has now round drop-in by ⁓ owner, which is your organization basically, which is better than first in first out, because if someone just clicks around randomly, they don't clog up the whole queue for everyone. ⁓ And basically what you see is like, if I just take the... the median calculation duration, then we have a chart that goes kinda between, let's say, ⁓ two seconds at max, and then, I don't know, maybe one second-ish at min, like before I kinda, like, that was kinda also when I was still already testing stuff out. But like, and then we have, like a few days ago, when I was finally like putting all these things together, we have a sharp drop off. And it goes down to 0.2. David Gary Wood (14:53) amazing. Yeah, seeing the visual there, you can you can literally see where you turn it on. That's great. Daniel (14:54) And that's course multiplied by the fact. Right. And that's also multiplied by the fact, of course, that now more calculations are using the quick data source. So if I just go way down past the stuff that I don't want to show because it has customer names in it, I have another chart. Calculation runs by data source. so there's a pink line that is the new small data source and a blue line that is the big data source. And it also shows that beginning of May, the two lines are crossing. David Gary Wood (15:11) Mm-hmm. Daniel (15:28) And the pink line is now on top, which is awesome because it means that now more calculations run through the small data source because most calculations are just the default charts, like the little widgets you have on top of your dashboard, the number of users charts, stuff like that. ⁓ So yeah, that is kind of cool. ⁓ David Gary Wood (15:31) Yeah. This is fantastic. And you've got Q duration there with the drop off again. yeah, count duration as a histogram. This is awesome. Yeah. Daniel (15:57) Mm-hmm. Oh yeah, I love histograms these days. We now have the ability to have histograms. And this is a logarithmic histogram of the calculation duration. And it shows you that, especially in the last few days, it skews heavily towards below 0.25 seconds for all calculations. And then there's a long tail that goes up to, I don't know, 128 seconds or so, with a few that take 2,048 seconds to calculate. David Gary Wood (16:12) Mm-hmm. Yeah. Daniel (16:32) which is mostly a bug. ⁓ But yeah, so this is what I've been working on. ⁓ having proper analytics on it has really helped me find out. Because I can change something and it feels faster for me. But if it doesn't move the needle for most people, then it's kind of useless. What else do we have? ⁓ we almost know calculation errors. And yeah, it is. David Gary Wood (16:53) I love it and I love the fact you're dog fooding. You know, this is dog fooding, Daniel. You're using your own product to analyze your products and making it better. That's wicked. Daniel (17:01) It is. Yes. This is, I had like, I made this chart. This is a chart that says like how many, well, what type of calculations are people actually using? Like we have like time series queries and like scan queries and whatever. And I wanted to know like how many people are using time series versus other types of queries because I like with, I wanted to like, I wanted to try the caching thing myself. David Gary Wood (17:17) Mm-hmm. Daniel (17:34) And that would have only worked on time series queries. And time series queries are actually the most popular query on TNMTD. But with like 20,000 per day, calculations per day-ish. But then top end is like 11,000 per day-ish. And I wouldn't have been able to cache those with the methods that I wanted to do. So I'm happy that I found a built-in ⁓ method. David Gary Wood (17:37) Right. Yes. Mm-hmm. Right, but you are now with... Yeah, that's awesome. Again, guiding your approach through taking a look at this data. Which of course you do, right? I wouldn't have expected anything less from you, but like, it's really cool to see it, Daniel. Yeah. Daniel (18:04) Yeah. Yeah things. But the thing is, I'm like, this is something I've spoken of spoken about a few times already. The more and more I'm kind of going into this mindset of like, I really want to have things that are that are tiny and modular in a way that I can reuse them. And it's hard to describe that because everyone always says that they always want things to be modular and decoupled and whatever. David Gary Wood (18:40) yeah. Yeah. Daniel (18:41) And what I mean is not individual classes or whatever. What I mean is like actual, like whole features that they should be reusable. for example, and like if I have a feature that like I plan, I'm trying to think, okay, how can I make this as small as possible, but also like not block any development in the future. And for example, like I've started like David Gary Wood (18:49) Mm-hmm. Daniel (19:09) months ago to work on a concept called namespaces where individual customers could have their own database like that's completely, completely separated. And that is now powering so much because it's powering the fact that we now have two data sources that are, those are just namespaces that you kind of like, that are kind of the default namespaces. And also we were, we were able to like extract individual, very large customers into their own data databases, into their own namespaces, which has also helped their performance. even with custom queries that go deep into their data because they can just do it. The other thing is also that I can allow individual customers to go as far back into the past as they want to because if it's just one customer, can load way more data of theirs into the server. Yeah, these are all features that are just available in the backend right now, but I also want to have them as things you can pay for basically at some point. David Gary Wood (19:58) makes sense. Yeah. And then, you know, it's the sort of thing that you access when you need it and kind of helps pay its way in terms of the support, maintenance and everything else that goes into making it happen. I love that. That's a good way of doing it. Damn, you've been busy. Yeah. I had... Daniel (20:21) Darn, I have been busy. ⁓ yeah. Like so much server stuff, like all the modular stuff was really helpful. Also the moving servers was way easier than I thought it would be because Ansible, because we tried from the start to have the, when we did like when we like lots of, when we did lots of server work last year, we very consciously chose a technology that would be very platform agnostic and not just work on AWS or Azure or whatever. And so with Ansible, I can just buy a new server from Hetzner, which is an actual physical machine somewhere, and Nuremberg spins up. And then just point the Ansible at this and be like, you are historical four. David Gary Wood (21:02) and it just provisions and does what it needs to do. And I love that as well because that's payback for that investment, right? That overhead of going that way. Yeah, love it when a plan comes together. Daniel (21:06) Yes. David Gary Wood (21:17) Oh, so you've been busier than I, Daniel. Yeah, I'm trying to think back to the last show. I talked about my exploration of Qt, looking at cross-platform tooling. Yes, I'm Qt. Yeah, and I've done a little bit of that, but honestly, not as deeply. Daniel (21:19) ⁓ Yeah. We were talking about some cutie. David Gary Wood (21:42) as I might've liked, time just hasn't really worked out that way this week. I definitely have a bit of time blocked out this weekend to go deeper again. Still in the exploration phase, I mean, I'm excited about it and about the potential of what it can give me, but I don't know if it's gonna work out. So I do have to have a level of pragmatism here is that I give it some time. If it looks promising, keep going. if I hit big dead ends, then I need to reroute as it were and have another think. But I'm actually looking forward to just spending some proper time with it because it's fun. I'm learning something new and I like learning new things. So yeah, definitely want to have more to talk about to that on future shows. But what I did do, across this last week, well mainly last weekend, I actually managed to release some updates. Well, an update to Govj. So I looked at the store and I hadn't released an update since January. What? Sure, I must have had more than that. And of course, what happened is that I had an update that was ready to go just before I took my break. across April and took all the time I needed at that point for health. And the update had got ground down in App Store review. They rejected it for a reason that I couldn't duplicate. And in that moment, I was just like, yes, screw this. I need to not be doing this because actually it's too frustrating. So I picked everything back up. Daniel (23:06) Yeah. ⁓ Did you add payments that was also the App Store Dave? Again. David Gary Wood (23:14) Uh, no, no, not again. Um, but so that, that might be an epic fail if I did. no, mean, I'm tempted just given Apple's behavior. Um, but, uh, no, um, it was payment related. They couldn't close the paywall and I could not reproduce it. I tried, I spent a bit of time, different devices and things and you know, loading the app from cold. Daniel (23:20) No. David Gary Wood (23:44) as it were, absolutely brand new and just testing it through and couldn't repeat it. So I started preparing the update and there's a couple of minor things that it needed. I fixed landscape mode on the iPad because that's been broken for some time now. It came down to a one line piece of code, right, to just sort the UI out because it was scaling badly. was creating the preview I've got for the video was turning into a really small little rectangle at the top. And then the previews for either channel of video were expanding too big. That's all it was. They just needed a constraint putting in as it were. Daniel (24:24) You gotta show some constraint Dave. David Gary Wood (24:26) Exactly, exactly. So I did that, pulled that together, put the build through, it was approved. Didn't do anything to the paywall. ⁓ I don't know what they were experiencing there. But yeah, it's a little frustrating because I have two apps, right, for Govj. I have Govj and then I have Govjedu edition. Daniel (24:36) You David Gary Wood (24:51) And the EDU edition is exactly the same app, but without any of the subscriptions or in-app purchase options, it is a paid only app. And it costs exactly the same as my lifetime upgrade in-app purchase in the main app. But it's the EDU edition for education, and it enables people who are using the Apple School Manager or something like that. So when they're using MDM and they're managing a fleet of devices, they can buy the app from the app store and load it onto the devices. What they can't do in that scenario is use in-app purchases or subscriptions. So hence a separate app. A school contacted me about a year ago and yeah, yeah. And I've sold to other places since. Daniel (25:36) Yeah, I do remember that was a whole thing, right? David Gary Wood (25:41) Right, periodically I get a flurry of purchases because I have to buy one per device. And I offer the educational discount there as well, I think. So that's turned on. They can get a discount. Daniel (25:54) Dave Wood, school millionaire, like making his billions on the backs of school children. David Gary Wood (25:57) Yeah. Exactly. Selling apps to the kids. No. So yeah, I have two apps and the issue was that Apple rejected one of them and approved the other. So at the moment the landscape update isn't on the EDU version. I've just shipped the update on main. Daniel (26:14) Ha David Gary Wood (26:23) And then the EDU's got the previous build from before. And then I'm going to have to release another version and bring them both in line again. But it was better to just move on for me at that time. And then like I say, on the very next update, everybody will be together again. But if it happens again, I know I should think, you reject the build after it's been approved and start again? I don't think I've been through that before. So anyway, this is a thing and it's something I'm going to have to be more mindful of. think, just, just running the two cause they should be kept in lockstep. but it is frustrating and I kind of wish I could just tick a box to, you know, say that this is a edu version or something and have a toggle somewhere where the paywall doesn't show and everything's open and it's just the same app but it's another edge case of Apple's payment system and the way the app store's set up but I understand that it's an edge case and this is the way I've got to navigate it so hey ho yeah but I shipped an update right it was bug fixes and and tweaks but hey you know I'm back in the game yeah Daniel (27:36) nice. Congratulations. David Gary Wood (27:39) So I have an update that I need to do for one of my other apps, Focus. So that will definitely be a thing I pick up over this next week or two. And that's a small update as well. So. Daniel (27:51) Did you put bug fixes and improvements into the release notes? David Gary Wood (27:55) I think Bugfix has made it. I'm not sure I went with improvements after it. I think I mentioned the iPad bit, but yeah, yeah. And it's quite sweet because I have a Govj group on Instagram. So I was able to go back to my little group and say, Hey, there's a new update. And you know, people have checked it out. Obviously not that much different to before really. But yeah. back in the back in the groove and it feels nice. That's good. Good to be shipping updates again. So. ⁓ what they want, I do not have time for, But yeah, slice by slice. And yeah, that's that's kind of my my little world at the moment. Daniel (28:31) Make the people happy. Give them what they want. You Yeah, fair. David Gary Wood (28:48) Focus, the other app. It's going to be fun for somebody who needs it. That's my video switcher. And it sends video out from the device over the network using a protocol called NDI. Somebody reported that it's locked to 30 FPS on the output and they wanted 60. ⁓ Daniel (29:10) Only 6 years. David Gary Wood (29:12) Yeah, there's no point going any higher. Everything else doesn't go that high on the subsystem. no, so that's like one line of code to make that configurable. But then a few more bits because I need to actually put in a settings screen so the users can actually say, hey, this is what I want. I'm going to go with just toggling between 30 or 60 FPS because yeah. People tell me if they need anything else. So yeah. Daniel (29:39) Why would they ever 130 though if 60 is available? I'm not, oh, okay, yeah, okay. I get that. David Gary Wood (29:44) Low bandwidth, low bandwidth. Yeah. Yeah. So it should, it should be a configurable thing. But you spoke about modular modules and decoupling and that side of things earlier. And one of the beauties of the approach I've still got in my apps is if I make that configurable, then I can actually bring that into GoVJ as well. So yeah. Daniel (30:09) Yeah, that's good. That's very good plan. David Gary Wood (30:11) still have my Lego bricks, all my Swift packages that have everything in. Daniel (30:14) Oh yeah, the Lego bricks. I remember. That's really sweet. Oh, I have another module example actually, or modular example, which is I want to have three features in the near future. One of them is we have these surveys, right? Where we have a page on our website that shows you like what is the current market share of iOS 16.3, for example. David Gary Wood (30:19) Yeah. Mm-hmm. Daniel (30:44) among all iPhones and iPads. These are not interactive right now, but I kind of would like to make them interactive. Second is I would like people to be able to share their insights and charts, like get something out of telemetry deck, share that to the world, like as in a link. David Gary Wood (30:58) Mm-hmm. Daniel (31:03) and third, I bought a thing I ordered in January. I everyone, all the podcasters were talking about a thing called the terminal, the terminal like TRM and L I think, and I have one now. hang on. Like, me get it for you. David Gary Wood (31:19) See? Daniel (31:21) This is great podcasting. This is fantastic podcasting. So this is a tiny E Ink screen. I thought it would be like a 14 inch monitor or something, but it's more like a book page or something. It is a tiny E Ink screen. David Gary Wood (31:23) It is. It is. Okay. Cute. Bring it to the middle so I can just see the more of it. Yeah, there we go. Daniel (31:40) And it has Wi-Fi and you go to a website and you configure different integrations. And then it will update every hour or so with one of those integrations. And I kind of bought it because I want to see if it's easy to make a telemetry deck ⁓ plugin for it. And it seems like it should be very easy. Yeah, it's like use trmnl.com. David Gary Wood (31:46) Okay. Yeah. What's it called again? It's the terminal. TRMNL. Daniel (32:03) And like to just be able to like every now and then it switches to a chart of the newest users you have or whatever. And to do that, I need to be able to run queries, to run a specific query without direct like cookie-based authentication. And also to share charts on the internet, I kind of need to be able to run a query without direct cookie-based authentication, just that query, of course. And also to have interactive surveys, need to be able to run a query without direct authentication. also, on all three settings, need to very closely set exactly what I want people to be able to do and also cache it very heavily so that they don't play havoc with my fun new performance optimized service. And so that's what I mean, because I kind of waited until I had all these use cases together. And now I can hopefully, I can build a very slim implementation that still like where you can just like, just do some sharing at the beginning, but it leaves the door open for, okay, do I have like, I'm not closing the door towards, I don't know, users can send additional filters that will be layered on top of the existing filter, but they can't take a filter away because I want... David Gary Wood (33:23) Yes. Daniel (33:23) I don't want to expose them to any data or I don't know. And so another example of here modularizing stuff and whatever. David Gary Wood (33:32) nuts I'm just reading back the thing as well the device itself charges every three months that's that's very cool if you get all of this pulled together I would definitely want my charts on there like I'm looking at that and going ⁓ that's a Christmas present maybe later this year or something Daniel (33:38) Yep, pretty much. Because it is so... Yeah. Yeah. Yeah. I mean, it's a nice, it's a fantastic idea because all the rendering happens on their servers. So the thing just like pulls down a new image every few hours and displays that and it doesn't do anything else and it's E Ink so it doesn't need any like power to display stuff. So it's very genius. The only thing that I'm very aware of is as soon as this company goes out of business, David Gary Wood (34:01) Mm-hmm. Daniel (34:15) as most new startups do, like this thing is completely useless. Unless they, there's a developer mode and I think I paid the extra 10 bucks or so to be in the developer mode. So maybe that will enable me to do more. But yeah, that's just the way it is. But I think it's still very nice. You probably can build such a thing yourself, but I'm just not a big hardware builder. I like the fact that this is just a thing. David Gary Wood (34:16) Mm-hmm. Yeah. Yeah, that's. Daniel (34:39) an item. And you can either stand it up or hang it on the wall. David Gary Wood (34:40) Yeah, I have to really want to build us something. For hardware, I have to really want to build it to get into it. Otherwise, I'm the same as you. I just want a thing to work. Daniel (34:50) Yeah. I have this buddy who has for some reason hundreds of these little E displays that are used as price tags by supermarkets and IKEA and stuff. every now and then he's like, hey, do you want a few of those little E Ink displays that are used as price tags in IKEA and stuff? And I'm always like, no, what would I do with them? I don't want another project. I have projects. I have way too many projects. David Gary Wood (34:59) You Hehehehehe Yes. ⁓ mate, yeah, cause you, it's like the, the Star Wars Admiral Ackbar meme, right? It's a trap. Daniel (35:25) Yeah, pretty much. David Gary Wood (35:26) But I think you have nerds knight me slightly with that. I'm looking at that and I'm like, I'd love one of those. Daniel (35:33) And that's how it goes. Like you hear about it in a podcast and then you buy one and now you have to have another podcast so it can tell people about it. Because you heard about it, like you Dave heard about it in this podcast. David Gary Wood (35:42) We need, we need, Yeah, and they're not sponsoring us. Maybe that's something that we should figure out. Daniel (35:48) They are, that is like incredibly rude of them that they are not sponsoring us right now. They should like, they should totally send each of us, just another one, like one to New Zealand, another one to Germany. I waited like months for this thing because they were kind of back ordered. David Gary Wood (36:03) Yeah. Well, if anybody knows anybody over there, then definitely hook me up because I'd be interested to see. But yeah, we were looking for sponsors at one point for the show, but I think it's fair to say we do it for the love of doing the show. you know, ⁓ that's it for the passion. ⁓ But on the. No, we're not. Daniel (36:19) For the love of God, Dave, let's just do the show. For the passion. And we're also not sponsored by cigarettes, by the way. David Gary Wood (36:32) We're absolutely not. However, Daniel, I need to get on with some chores. I have to go and take my car to be tested for road safety. So wish me luck. It's going to be busy. Daniel (36:44) Fantastic. That's a good chore. Right. Everyone else has probably finished their chores. If you haven't finished your chore, you can totally stop it right there because you don't need to finish all the chores. You can just like, I don't know, like make progress on them. Good for you. Like if you want, send us a selfie on our Mastodon account and we will be super happy for you and proud. David Gary Wood (37:09) Absolutely. And maybe I'll take a selfie when I'm doing my tour, Daniel, and kick the whole thing off. ⁓ Daniel (37:10) Right. Fantastic. I cleaned my bike today, but I forgot I didn't take a selfie. I will do that next time. David Gary Wood (37:19) Excellent. Daniel (37:21) All right, fantastic. So everyone, thanks for listening. Please rate us on iTunes and the YouTube. Send us emails at contactedwaitingforeview.com. Send your chores and selfies to our Mastodon account, which Dave will tell you what that name is because I forgot the server. David Gary Wood (37:39) So I think we're on iOS dev.space and I do believe that it is. Let me find it. Right. Daniel (37:40) Right. Okay. Then I will just while you look it up, I will continue the outro, is join also also join our discord. The link is in the show notes and also send us email at contact at waiting for review.com. People can find me. David Gary Wood (37:56) So we are just waiting for review. Sorry, Daniel. I literally just found it. I'll interject. we are waiting for review at iosdev.space. And the reason I forgot is because we had an account elsewhere at one point and it was WFR podcast something, but forget that. It's just waiting for review at iosdev.space. Daniel (38:00) Yeah, do say. Fantastic. Fantastic. You can also mention us on the mastodons and we'll also see it. So you can find me at daniel at social.telemetrydeck.com, which is still growing strong and I'm really happy about it. And Dave, where can people find you? Just a tiny bit of verhaspeling here. David Gary Wood (38:22) Exactly. Yeah, the best place to check me out to be honest to see what I'm up to is definitely Instagram. So that is lightbeamapps.com on Instagram. And for everything else, you'll have to check the show notes. I keep mentioning show notes. Go check them. They're good. I write them. Daniel (38:51) Go check the show notes. Like your podcast. Like we are one of those podcasts that still have show notes, which is pretty cool. David Gary Wood (38:59) Mm-hmm and transcripts and yeah all the things but Daniel (39:03) and audio descriptions. David Gary Wood (39:06) pretty much. ⁓ Daniel (39:07) which I do myself while I share charts. David Gary Wood (39:10) Exactly, you're very good at it. But on that note, Daniel, I will see you again soon. Daniel (39:18) You will, it has been a pleasure my friend. David Gary Wood (39:20) Yeah, lovely to be back on the air. So have a good day, mate. Daniel (39:26) you soon. Bye!