Jon (00:05.122) Welcome back once again to Gone Mobile. Alan, I made myself a lovely cup of coffee. Actually, a few cups of coffee before we started doing this. And I still haven't shared the video with you, but it's uploading to YouTube. that'll... Yeah. Well, just one. And it's pretty poorly done. I'm no cinematographer, that's for sure. Allan (00:15.532) have. Allan (00:19.887) that's right. You told me that you were working on these little bonus coffee videos that... well... Allan (00:30.599) You know, surprisingly, I'll be interested in watching it. You have converted me. I am going to do it. It's expensive as hell. But I'm getting well, you know this, I'm getting crusty in my old age, but I'm also getting pickier. And now it's like, I, you know, I go, walk down the street frequently to Starbucks so I can work from there and I get coffee there. like, this is, this is better. It's not great. Jon (00:48.942) Yeah, yeah. Jon (00:52.6) Well, if you want to talk about expensive, many coffees do you buy there a week? Yeah, yeah, just coffee or do you go for like a latte or something fancy? Allan (00:58.225) A few. Allan (01:04.17) Usually if I'm going to go there, I'm going to have like something fancier, like not just a coffee. Yep. Yep. Yep. But you know, it's Jon (01:07.138) Yeah, so then it's like eight bucks for You know a latte Yeah That's eight eight eight. It might even be eight us too. I don't know. don't know but eight canadian i'm sure at least by the time you get Allan (01:20.928) Yes, but you know what? They do a good job of it. You could say they're a lot smarter at making coffee. Jon (01:24.538) Sure, just gonna say though, you can buy your equipment for less than $8 a day. Allan (01:33.836) I don't go every day. Jon (01:35.45) Okay, then less than $3 a day? I don't know. I'm gonna say whatever number matches what you do. Allan (01:39.18) Yeah. Allan (01:43.15) Yeah, no you are. I mean that the scale you have measures at like the atomic weight. So that I need the group you called the bean pulverizer and the thing that drips on it that's like 500 bucks and it all it does is drip water on a filter. Jon (01:51.29) It doesn't, it doesn't. Jon (02:01.814) okay you don't need that I didn't I didn't end up buying that I actually brought back one of my coffee machines for like when I'm feeling lazy that kind of simulates a pour -over ish not as well as the one that I want but you know I have this one and it makes bigger batches if I have like family over or something Allan (02:19.596) I mean, the joke I make is that John has this kettle or this teapot or kettle, whatever. And it's got this big, long, huge spout. And my statement is the longer the spout, the bigger the snob. Those are my exact words, but read between the lines. So, so honestly, it'd be nice if a robot could just make my coffee. That's such a bad lead in that I'm taking your, your, your job this week. Jon (02:25.624) Yeah, it's a kettle. Jon (02:34.362) Yeah, it's probably accurate. Jon (02:45.412) think that's a thing. Jon (02:49.4) Yeah, well, that's good. I like it. Nice little, little rough of a segue there, but I I'm sure actually, you know what? huh. I hadn't, I'm just having an epiphany. We need to figure out how we can build a coffee product that uses AI and just because it'll be like the, maybe not the first, I'm sure there's something out there already, but we can be like, now all you coffee enthusiasts can make better coffee because there's AI in Allan (03:01.175) Okay. Jon (03:19.032) which is like kind of how everything is going, Allan (03:21.504) Well, yeah, you get money for it. Anyway, AI is doing everything. Clearly, we're talking about AI today, but we'll get there because I'm kind of liking this idea, this AI coffee machine. like, because that was the thing when I looked at these coffee things, John kept going, well, no, it's it's OK. I want to I want a coffee machine like John needs to do these multiple steps and end to end. Sure, he does the multi threaded. Jon (03:24.248) Yeah. I don't know how yet. Yeah. Allan (03:47.534) And it's a multi -threaded coffee process. end to end, if he had to wait sequentially, it'd be like a 15 minute run. But because he can multitask, he gets it done Jon (03:47.758) Yeah. Yeah. Jon (03:56.026) It depends on how much you're making too. If it's just like a couple cups, it's faster than like when I do the morning for like my wife and I, I've got like, we want each one to have like two cups and then it's like 40 ounces of water. And I don't know what that is in liters cause my coffee thing has the line 40 ounces and I've calculated it once and it's the right ratios. Anyway, yeah, it's not that bad. Allan (04:19.832) So I wanted a machine I could press a button that properly fluffed my beans or whatever it is that that John says, you know, you have to pulverize them properly, etc. Puts the water drips the water through sorry drips the water through the magical filter into my cup. That's all I want. I just want a button, dude. I want a button. No, I know. Jon (04:30.628) Yeah, the problem Yeah, well, that Jon (04:39.148) No, but you can do that, but it's gonna cost you way more than what you wanna spend, like thousands and thousands. Allan (04:46.036) No, no, no, no, no. I will spend for the automation and the quality. will not cheap, but you haven't told me that one of those things exists. You've had to Jon (04:50.69) Okay. Great. I can, I can find you those ones. I know they're out there. haven't, I know there's some that are okay that are out Allan (05:00.024) Okay, so now we know you've been holding back on me again. Jon (05:02.554) I didn't know what you were planning to budget like $5 ,000 for this, Allan (05:07.05) And I mean, it's got to have room. Like if it takes up like like robot size space on my counter. well, OK, it's a bit tougher. Jon (05:13.132) It will. You can't have it all. Maybe once we bring out the AI one, you can. Allan (05:18.806) Yes, I can. Then, okay, well, there's a customer here. Yeah, okay. So we're gonna be doing that. And that's a great topic for today. Let's talk some AI. Jon (05:28.408) Yeah, so what AI, well, what have you done with AI? Allan (05:34.582) Well, I've done all I'm doing a whole whack of stuff. I've done a whole whack of stuff. Problem with AI right now is it's like in JavaScript framework hell right now. It's like even Microsoft. You like I get to be like you guys like John. John's involved in it, but I like to just throw a match on and say you guys. There's like a new flipping framework out of Microsoft every week. You don't know what's coming. It's a semantic kernel. I understand these things are slightly different. Okay. So anybody complaining, but just hear me out. There's like different models. There's like five, three, there's open AI, there's Azure AI, which is just open AI with something with stuff on top. There's the semantic kernel, which is like a thing on top of everything. There's like, it's crazy. Even so in mobile, the thing, the stuff I've been doing is usually like image recognition. Jon (06:00.808) Yeah, yeah Jon (06:13.978) Mm -hmm. Allan (06:26.998) and stuff or document recognition. So that's that's what I've been constantly doing. And like what? Jon (06:32.62) It. Well, it's kind of funny, cause do you remember what was it called at? mean, I'm sure it's still there. Azure cognitive services like this. This was already kind of a thing, right? Like this has been around some of this. It's not the same. I understand that, but like in a capacity, some of these functions like functionalities have been around and maybe they're way better now because we have good models that are applied to them versus. Allan (06:43.03) Yeah, it's been renamed. Allan (06:47.508) Yeah, no. Jon (07:02.422) It kind of image recognition, you know, pre these models. Is that fair? Allan (07:07.48) Sure. Yeah, it's getting better. Let's put it that way, right? Like they just, they keep getting Jon (07:11.446) OK. So like what kind of image recognition if you're able to share? Allan (07:16.94) Well, if like the ones I commonly do is like a forms recognizer, which may include stuff like passports, driver's license. I mean, we'll talk about barcodes in a second. That's obviously up there. Credit card scanning, like anything that can help the user get data in faster. Because like I've got fat thumbs, right? So it's hard to type all this stuff in. I don't want to type it all in, man. Just figure it out for me. That's what AI is for. Jon (07:37.582) Yeah, well, that's a great application, that kind of thing, right? Because it's just, go for Allan (07:42.368) Right. Just point your camera at it, sample the credit card, lift the data, shove it in a form. Done! Magic. It's awesome. Jon (07:49.198) But then, and so again, like this, I guess, you know, I'm kind of thinking of this as a, we used to have some of this and like, even like, I think about, yeah, the credit card scanning, like that used to be a thing, like Stripe had a library for it, think long ago, but like, was probably not AI, you know, at all, right? They were doing something, you know, more, what was the, there, there was like an image, pretty popular open, open what? Open CV. Allan (08:18.178) Yep, yeah, that was a round. Jon (08:18.232) Like, yeah, image processing library, right? Like that kind of thing is that like kind of obsolete now because Allan (08:24.044) Yeah, I think it's come so far. Like some of this. So right now it was called Azure something forms recognizer. Now it's called Azure AI document intelligence, which by the way is still marked in preview, but it's like you use that one. So you use the preview library. That's that's great. So awesome. But it's so good at you can tell it like this is what I'm expecting to scan. You can build your own models. Which I think is great because a lot of companies are still paper based or they need to get a lot of their paper into a system. Could you imagine typing that out? mean, you can normally hire summer students. Jon (08:58.04) Yeah. Well, that's what people would have done. Or you'd do the whole document scanning thing and maybe you'd be able to then have a searchable thing. But if you're trying to extract the actual fields of information, then yeah, that's still somewhat manual. Or was. Allan (09:13.058) So I've been able to pull a big document, like a big kind of manifest thing that has to be signed. can lift the signature, shoves all of it in. It's frigging great. Jon (09:25.976) Now is this, is this stuff like there's the library or whatever you're using is tailored already for that scenario or you have to kind Allan (09:32.97) Not the one that I just specifically mentioned. You had to we had to train that one. It's not cheap. I this online. Like I think there's a way to pull it. To run it is expensive. Jon (09:37.261) Okay. Jon (09:42.387) Not cheap in terms of, okay, like to run the training or to run it just once you have the model. Allan (09:50.858) Anything, anything that goes into AI that's not like super optimized, it takes a tremendous amount of compute and therefore Microsoft's like bling Jon (09:55.842) Hey, weren't you trying to find a reason to upgrade some of your hardware? Wouldn't a nice new like, you know, 4090 be a good... Allan (10:06.41) nice. Look at, see I can't get dude to buy video games or anything and yet he's trying to, he knows that I'm looking at a new computer and you're right, yeah, he could train a model with a big. Jon (10:14.83) Yeah, mean, you could expense that, I'm sure, even if you're gonna use it for training models, right? There's all those cores in there that are doing AI stuff. Yeah. Yeah. Yeah. Allan (10:25.28) Yeah, no, it's true. Well, GPU, right? It's bigger on GPU. So you're right, I could. I like my video card though, it's still fast. Jon (10:31.684) just to save a bit of money. mean, it's just, you're really just looking at it from a cost savings perspective. Allan (10:35.859) I see what you're doing. see what you're It's not sold yet. Not sold yet. Jon (10:40.378) So you had to train a model. So what does that process for you look like for this kind of application? Allan (10:47.466) Well, it's a whole bunch of like, did they get it right? No, did I get this right? No, right. And they've got Jon (10:52.856) So you're basically feeding it in images and then kind of telling it what the extraction should match. Allan (10:58.222) Where to look at? Yeah, what to look at. Now it's pretty good. Like Azure already goes like, hey, this looks like a label and this looks like somebody's written in it. So it's pretty good at going, yeah, I think this is what you're looking at. But there's always like variations of forms and then people like the handwriting is different. Let's throw that out. It's got its own model for handwriting. does fantastic. Well, it has trouble with some of my handwriting, which tells you Jon (11:15.235) yeah. Jon (11:21.708) I was going to say, do you want to test it? Because I could give you some writing that would surely throw it. I never have been good. Allan (11:27.264) I'm my handwriting looks it looks like my I swear to God my son writes better and he's in grade three. like anyhow, it still is is able to extrapolate. OK, this somebody has chicken scratched here. So that's the label. Let's put this in. This is a like a tabular form. Right. So you might have like a like a bunch of checkboxes or right. It's able to figure that out and kind of put Jon (11:52.174) Okay. Allan (11:56.258) that data into like a dictionary or like a data table of some sort that you can, you know, extract and do your thing on. So it's, it's, it's super smart and it doesn't take a lot of work to train. It's more or less, you're kind of just saying, this is what to expect. This is some variations of it because you know, they upgrade those forms over time. So you have to give it kind of like, this is the old way. So it might be missing this, even though what you, what you end up getting out of intelligence, the document intelligence is more or less kind of a complex dictionary and you ask it does it contain this key? Okay it does let's use it right so it's not that's the funny thing once it lifts the field it's not a complex UI or complicated API that to consume it it just takes some cycles and it has to go online so Azure's like bling bling let's tune up the compute yep Jon (12:32.29) Yeah. Jon (12:44.408) Yeah. And then you're sending the images up. So is this like you're doing this on a mobile device or is this Allan (12:51.286) Yeah, so it's interesting how I've chosen to do that because a lot of the samples you'll see out there is like pointed at a blob store image, right? And let AI have its thing. But what I tend to do is you can still upload streams, but I have, you know, it's not hard to upload streams, but I noticed a lot of people don't do that. So I've got like a camera, but you know, I activate the camera. I lift that image every second dish. I think I got it down to about two seconds. Jon (13:17.314) OK, and you're uploading that image as quickly as you can. Allan (13:21.022) Right. And then I and then I stop scanning and run the AI through it. And if I find something, a piece of data, it gives you back binding like a binding box and everything or bounding box. Whatever you want to call. Yep. That's what I'm seeing. Right. Yep. Yeah. I feed it back if it's fast enough. Sometimes if there's a delay or I've seen a lapse in the photo, which isn't really hard to Jon (13:31.49) Yeah, so you can overlay like the box on the image and show them. That's cool. Are you doing that on like the live feed too or awesome? Allan (13:48.65) You don't need AI to see that the photo has changed on you quite a bit. Then I might say, OK, well, you've moved it. Good job, Or once I found it, sometimes I just stop the camera at that point. I see this is the data we found. Is it correct? Right. So you can really pick your poison for the credit card stuff. It's usually that's the only time where I'm trying to generate the the the bounding box over top of things because it's quick. Jon (13:56.068) Mm -hmm. Jon (14:10.874) Do you do any like, like what kind of resolution of image do have to send it to be accurate? Allan (14:18.882) Well, that was also a a learning scenario too, because obviously the iPhone can take some incredibly dense photos. Jon (14:26.586) Yeah, you're not sending like a 20 meg image up every second, probably. Allan (14:30.816) Well, at first I was like, let's see what this thing can do. I'm on wifi. Let's ship it. I mean, it's, also easy to compress images, right? But I sent it and Azure was like, dude, what do you, do you, this is huge. Get lost. So it error out right away. I was like, okay, that's fair. So I compressed it down. I compressed it down quite a ways and it can recognize like junk and do a really good job of it. Now the funny part is, that junk, I mean, even that Jon (14:54.392) Yeah. Allan (15:00.398) an image that's tiny resolution, it's not really junk. Like human eyes can read it very easily. AI is really good at doing it. So eventually I got the image down to like, I think like 8 % is where I found the sweet spot. 8 % of the quality of the original image gets me still a good result. So it was crazy. The difference is when I do the overlay, so when I freeze it, when we're doing testing to make sure it Jon (15:20.836) Wow, yeah, that's pretty amazing. Allan (15:29.354) it grabbed the right fields, would have, I would take the image. So the big, the big one, the big image, the big forms, I would, here's the image I sent. I'd obviously keep that in memory. I'd get back the data and I'd overlay it and then display that to the user and there to me doing testing and say, this is what I found. Okay, great. Yeah, good. So, doing that live on a live feed, that's, that was harder for, for a credit card piece of cake. Even though credit cards have lots of painful points, did you know that they do the weird numbers and the reflective surfaces to really screw cameras Jon (16:02.756) Well, Allan (16:09.462) I really put a lot of thought into it. I knew they did it for that reason, but I had never put a lot of thought into Jon (16:12.324) Well, it's like, this is the whole point though of applying AI to it, right? Cause it's more like just from a, this isn't going to be quite right, but like from a human perspective, right? Like you said, you throw a, image that's pretty low quality and like, we can kind of read that with our eyes. And I know it's not the same thing, but in a sense it's kind of like, that's the point, right? Is to try and develop these training, these models to kind of view it, you from almost a similar perspective, I guess. I don't know if that makes sense. Allan (16:45.452) Yeah, well here's the funny part too is I tried, I was like surely lifting a credit card is not hard. So I tried some optical character recognition, which turns out that has a pretty tough time with credit card numbers. So they got that weird font. Jon (16:58.468) Mm -hmm. Jon (17:03.126) Okay. Well, I thought the font was supposed to help, right? Because it's very specific. Allan (17:09.418) If you have OCR that understands that, right? So I'm doing just a simple OCR. Here's an image. What do you see? Jon (17:17.43) OK, yeah, like it's not trained or tailored for credit cards. It's just OCR. Allan (17:22.24) Right. you had to you had to get a good first of all, I have to deal with the reflective nature of the device, which AI is trained to do that somehow. Right. I didn't have to get good. Like I could have like a blur right over top of it that would give me a hard time reading it. And somehow it magically went screw it. I can see it. Yeah. This is why I don't know how I did it, but it was wild. Jon (17:41.242) That's really cool. Well, it's the purpose of it. It's built to see those patterns. with enough training and reinforcement, it's going to be able to do that because it's pixels. Allan (17:55.264) It'll be enough. It'll be able to do enough if statements to figure it out. So, you know, it was really good at it, but OCR was not good at it. So I was like, you know, I'm going to take this a different route. Who cares about the cost? Jon (17:59.204) Yeah, yeah. Jon (18:05.891) Yeah. Jon (18:11.514) And then, I guess like obviously from an Azure perspective, they're not in any position where they're trying to do this. But like, I wonder how far off we are with being able to have a model that's very purpose trained like that, that runs right on the device. Allan (18:29.932) Well, that's the interesting part. So there is a lot of on device versus all online only requirements. And I think it really depends on the size of your model. And yet they still find ways to collect money because it'd be like you're using the model it's licensed. So you pay for it, right? Fine. Fine. That's fine. I get it. But, there's certain models that it would be nice if you could do it in offline scenarios. So Azure AI, at least this document intelligence Jon (18:44.91) Yeah. Allan (18:58.732) the moment I have not yet figured out how to bring that these models locally. Apparently it is doable for with certain I don't know trade offs. I'm not sure what they are yet. That's that's still a work in progress. That's something to come back to you though. But you're right. It would be nice to be able to just you know run them online or run sorry run them on the device because you think well that saves you on bandwidth that saves you on time cost. The whole nine yards, right? Jon (19:29.688) Well, and so that's kind of, I don't have, we don't have this in the notes, but you just kind of, made me think about like one of the interesting things with AI is just all the energy that it is causing the world to use. And if, and if you think about the, that persp, that like on device versus online, like that transmitting of the data, the, know, having it somewhere in blob storage, doing like send it around, like that's gotta be at scale. reasonably significantly more energy use than saying like, here's a model that I run locally on an optimized chip on the device to do this. So that is kind of another aspect of it that obviously we're super early days still, but maybe that becomes kind of a thought eventually at some point. Probably not, but. Allan (20:07.116) Right. Allan (20:20.11) I would hope so. I mean, at least we're using power for better things than Bitcoin mining these days. still, like Bitcoin mining was destroying. I remember during the pandemic is just eating, eating the internet power. I couldn't buy a video card. You know how many games I wanted to play during the pandemic? And everyone's like, we're using the GPUs for Bitcoin mining. then a great thanks, guys. Whatever. Jon (20:26.106) Yes, absolutely. Jon (20:31.146) and NFCs and all that stuff too. Jon (20:40.602) yeah, that was... Allan (20:49.792) So talking, speaking of the on device stuff, I mean barcode scanning is built into Azure vision or who I said Azure Apple vision. That's like their AI image stuff. They have, but it was, I don't know Jon (20:59.874) Yeah, they've had stuff for a while, actually. But this is, I guess it's different now. It's probably a model that is on their device versus, okay. Allan (21:10.815) Apparently it's on device. I've been doing some testing offline and it just kind of works, which Jon (21:15.486) Cause even like way back in the day when I did the zebra crossing net mobile, which was the Xamarin forms one. did I ever, think at one point, I don't know if I ever put it in there. I think I did where you could opt and say like, no, no, no, I don't want to use the cross platform. Like zebra crossing implementation. I want to use the platform specific thing. And Apple had API APIs for doing some of that recognition. They had some where he could like detect faces and people, like there was a few different, Allan (21:21.624) Yep. Jon (21:45.37) parts of that, but I guess this is a different set of APIs Allan (21:49.748) I mean, it's still Apple vision. You still kind of instantiate the same stuff. Jon (21:52.346) And maybe they'll maybe they'll retrofit the the old API's to like use the new, you know, better stuff under the hood. Who knows? but yeah, that's on device for that kind of thing makes sense because that's been something that's been around forever is just barcode scanning. Allan (22:08.012) And it works. It works. Awesome. It was like just awesome. Most of the stuff that Apple does in that field just works. Awesome. And Google has one too. They have their Google Android X fire. Yeah. And Firebase, you're right. Firebase. Yeah, that's what it is. and that works great as well. That one I think needs online. It has a barcode specific thing, but it seemed to be jumping for data. I'm not, I'm not entirely Jon (22:16.462) Yep, there's a Firebase thing. There was Firebase ML stuff. Yeah. Jon (22:32.976) Interesting. Might just be sending it back, you know. Allan (22:36.588) It doesn't cost anything. So like great. Jon (22:38.744) No, I know, but it was probably just, you know, just track logging your data because, we want to see what you're doing. Yeah, yeah, you're the product. Yeah. Mm -hmm. Well, I mean, it's paid, but just paid by your information as opposed to dollars. Yeah. Allan (22:43.614) Yeah. Well, that's what Google does, right? They're they're massive. It's free. That's free. But we know everything about Yeah, we sold it. We sold it on you. That barcode is it's not your property anymore. So like zebra crossing, it had a good run. We've been using it for years. John's gonna be like, Jon (23:04.442) yeah. No. I'm so happy. So like, you know, I, I, I ported or I didn't, I wouldn't say it was a port. like re did a thing in Maui and, it's an abandoned project again. And like, sorry if, if you're using it and want it to not be, but there's a bunch of other options out there. There's, know, other options that like did what I was doing, but better with zebra crossing, like the cross platform code. There's other options now I think that are using like platform APIs as well, like go use those. don't, never did want to maintain this thing. I only ever built it because we had enough customers that were like, I can't migrate. What do I do? need, you know, zebra crossing. I'm like, okay, fine here is just start using it and somebody else will come along and do a better job. So what I should probably do is take that new get in that repo and pick a spiritual successor and like point it Allan (23:58.04) We have libraries of the week for that too, which we'll get to. Because this exists out there, scanning the barcodes, there's a couple of libraries that do it well. It's a nice API. Jon (24:01.636) Great, yeah, yeah. Jon (24:08.842) how, and obviously this is going back to the Azure document intelligence stuff, but like how well does their SDK work in a Maui app? Their C sharp SDK. I'm assuming it's just like .net code, right? They're not doing like special UI on the platforms. Allan (24:20.578) No. Yeah, it has appeared. No. Yeah, it's just the standard. There's a camera view. I tried the community toolkit one and I just have it snap every like I control the snap. Ship it off. It's just a dot net API for for. What was it? I was using document intelligence for that as well for the credit card scanning. And here you go. Here's your stream. Figure it out. Jon (24:46.968) Yeah, it doesn't look like they have any platform, like mobile platform specific stuff yet either, like not even at the native layer. Allan (24:53.428) No, but but you don't really well, I guess if. Jon (24:56.684) No, I just, it's one of those things like, you know, maybe eventually they're like, Hey, we could add value by giving you the API that does the camera view that shows the barcode over, know, like there's stuff like that, that I know in the past they did some of that with cognitive services. And then it was like, well, if you're using it on Xamarin, you know, somebody might do a bind into those. it's just like, I, I like the approach of like, just, no, let's just give me the APIs. And if somebody wants to build on top of that, great. But otherwise, like, just, just use Allan (25:02.318) Yeah Allan (25:23.266) Yeah. And it's great because like it's easy to switch like camera getting the camera image now in Maui and Xamarin forms. It was it was pretty easy. So you had written some streams and I don't know a whole bunch of people are doing it right now. You just do camera view and stuff and it's not hard to lift an image anyways and ship it. Jon (25:44.058) No, this came up again, even just like today, there was a customer that was doing something. think in forms they were using like the Windows camera app somehow. I don't know if they were shelling out to it or something they were using was shelling out to it. And then apparently something in Windows changed and there used to be like a button, a preview button, and then it doesn't work anymore. Like in Windows 11 and it's like, it's not the Maui thing. It's just the camera app did something different. So I'm like, well, but there's all these other options. Like you don't have to shell out to this. Then you can have a camera view right in your app. Like just use that Allan (26:17.101) Right People that sounds like for another Tales from the Crypt technology stuff that's just, yeah. I guess they had to do what they had to do. Why? I don't know. Jon (26:24.034) Yeah, Jon (26:32.74) So this intelligence thing, I hate to have this sound like it's almost like an ad for the Azure thing. That's not the intent here. I didn't even know this thing existed until you started talking about it now. And I've kind of been looking at the docs and stuff. I'm like, this is really cool. Allan (26:49.898) It is it for big businesses that can afford it and have the services because it does cost a pretty penny to run for a Jon (26:53.946) Yeah, So what would it cost like to scan a form? Allan (27:02.926) Well, I can't give exact the one company I did it for. But it's not cheap, but it's a cause like anything you do in business. It's Jon (27:06.266) That's always how it is, right? It's hard to always have the exact number. Jon (27:15.066) But it's a business. you're, do you want to pay a person like to spend 10 minutes to enter this form or do you want to, you know, pay 50 cents to have the thing do it for Allan (27:25.046) Well, and the other cool thing about it is that like we used to hire summer students back in the day. Did you ever do data entry stuff? Jon (27:31.642) I personally didn't, but I used to work at the school board here with the government, right? And there was people that they would hire to come in and do that. And I had to help set up stuff so that they could enter data. Allan (27:43.498) And it sucks. Like I've done it for the government at one point. And, you know, other exciting things always happen in government offices. But when you were doing that data entry, my God, I don't think I've ever been so like brain numbed in my life. Jon (27:59.258) And at the point that you're like five hours into it, you're not doing it without, you're not the best precision data enter at that point, I'm sure. Allan (28:05.42) Allan (28:10.158) At that point, John, I may as well have been taking the keyboard, picking it up and rolling my face across it. There was no data accuracy anymore. Jon (28:17.53) So I wonder too how, and I guess it's not like, I wonder if you could almost overlay like another model that's like, once you have the data captured, like it's no longer the image part. It's just like, as it's entering texts, it's like, like this word is almost correct, but like the thing didn't spell it quite right. we know, yeah, and start being like, look, know, pulling out the possible errors and having like someone confirm it or. Allan (28:37.367) and start pulling it out. Jon (28:44.622) you know, just having enough of a model that's like, no, obviously this word is, you know, this word and it's not the word that's spelled wrong, that isn't a word, that's one character got, you know, parsed incorrectly. I don't Allan (28:57.654) Well, if if did you ever do multilingual apps back in the Jon (29:02.938) I've attempted to start making pool math multilingual. Allan (29:07.832) Well, that's OK. Yeah, that's true. I do remember that. But so I've had a lot of multilingual big apps. They just they have they have to use it. Jon (29:16.92) Well, and a lot of things are probably like there's regulations and stuff too, right? actually I did do some of that cause when I was still at, at the school board, some of the laws came into effect that certain things had to be multilingual. Allan (29:20.96) Yeah, have you? Allan (29:30.828) must be Francophone. Must be. Yeah. So I had to do this company was behind. They had gotten big enough. The come of the government said you have to like, you have to do this or you're getting, don't know. I think back then, like we're talking very early 2000s. It was like, you got fined or something or whatever. So the goal was, is that first of all, we had to get all those strings out. Let me tell Jon (29:33.816) Yeah. Allan (29:59.126) Regular expressions could not help. did. So basically we had to get all those translations into like another app. So it was mind numbing. was like, man, this really, really. But then what I did was once we had it in a database, we had like keys, categories, pages, et cetera, took all those keys, shoved it through Google translate, which may very well have been the first semi AI ish type thing. Jon (30:01.234) Jon (30:17.103) Mm Allan (30:28.948) then you get translations back. Now, once I put them in front of actual Quebec French speaking people, they were like, dude, what is this? They're like, the context is is wrong. The order of words is wrong. I'm like, well, man, then quit being a cheap ass and hire somebody. Like, my French is like, it's several years removed. So like, I'm not going to be of help here. But it was a good attempt. But Jon (30:34.744) Yeah, they're like, this is absolutely terrible. Yeah. Jon (30:47.096) Yeah. Allan (30:57.646) we go fast forward now 20 almost 25 years. Apparently it's really stupid good now. Like to the point. Well, every all of it. All Jon (31:06.774) like google translate even or just like all of them well that's what i was just kind of looking i'm like surely there's you know also an azure thing to translate and there is Allan (31:16.118) Yep. Well, there's all the hype, I guess last year was you could talk into a phone and it would take it like text to speech and then or sorry, speech to text. And then that would take in the text in whatever language you're speaking. You go, you're English and go, OK, who are we talking to? And you'd say, well, I want this to come out in French and it would do its thing and it would speak it back out in French. You're like, damn, that's pretty sweet. So now I can go to Quebec because Do you ever go to Quebec? Jon (31:48.026) I have, I mean it's not like a regular thing I do. But you're closer. Allan (31:49.802) Okay, well, so I do tend to go to Montreal. Yeah, I'm only about five hours away from Montreal. So Montreal is good. They have a lot of English speaking people. So if you say you speak English, they'll be like, yeah, the smoke beat dude, smoke beat. Yeah. So if I go there, normally, they're not too upset about it. And they're like, he's a stupid, you know, Ontario guy. Great. And they'll speak English to me. Not a Jon (32:01.052) and bagels. Yeah, well, I know, Oof. I would go back for that. Allan (32:19.156) If you go to Quebec City, sorry if there's any Quebec City listeners, but you're not really friendly to English people. So now I have a freaking app, I can go, blah, blah, blah, blah. And at the other end, it can go poopity, popity. Here's here's some French, right? Jon (32:33.679) I'm guessing even the, have you used the chat GPT Allan (32:37.984) I have, I haven't done it for Jon (32:39.012) Have you, have you, have you used like the, the voice to text input feature of it? Like the conversation part of it. it's mind -blowingly good. And I'm not, I'm, I'm only using like the free tier models too. And I bet you, could use it for that too. Cause I, you just like press the record button and then it's like starts and then starts recording and it, and you just talk to it and it's always like perfect. It doesn't screw Allan (32:45.718) I have not. Jon (33:08.418) And I'll just, I do half of my, half the time now trying to use chat GBT for stuff or like any kind of AI, because I don't know about you, but I started and I still am a bit having a hard time kind of retraining my own muscle to use that more in my own work. Like we have this tool, right? Like use it, but, I see some people that are just everything that they do is going through this and maybe that's a bit extreme. but there's so many opportunities that I have to think about and kind of remember like, if I did this through like chat GPT for instance, it's gonna get me what I want. And obviously it's a tool, you have to still be careful. Sometimes it's often it's wrong, but if you know how to vet it, it can be a huge time saver. So it's kind of, I've been working to try and just develop the reflex to kind of say like, let's start by using And it's been when I do, when I remember it's just like, just Allan (34:12.568) Well, here speaking of that, I do a lot of documentation is coming out of AI for me nowadays that because I, you know, I suck at writing docs and it'll just be like, this is what I think you want to do. And it's, it'll get it wrong for a little while. And then it starts getting it right. And you're like, where have you been all my life? Right. Like, so some of the, the, the stuff I've been doing in open source, it just, would auto complete like the samples, which saves you so much time. Right. But it's still a tool. I still had to teach it know that what is this? What is this? Right? Like training a dog. so I got, I got through that and that, that was all great, but even something that's gonna sound bad. So I got my eighth MVP, Microsoft MVP the other day. It was very happy. Thank you. Thank you to everybody. That's awesome. so I went to put it online cause you know, I want a little bit of acknowledgement or whatever and I wanted to say thank you. so I went in LinkedIn. Jon (35:00.654) Yeah, congrats. Allan (35:11.246) because you know, that's the professional place to go. And I started typing and I was like, man, this is terrible. And I've been doing like the politics long enough in you still do your manager speak. I'm just over it at this point. You still have to be nice. I don't. So I'm a little bit raw in how I say things. What's that? Yeah. Very I'm intrinsically a jerk. So I know which I'm fine with, by the way, I've had, you know, it's just the way it is. So Jon (35:27.128) I'm just intrinsically nice. I'm just intrinsically nice. I guess I'm more Canadian than Allan (35:40.78) this thing I was like, okay, well, this is a little bit rough. It's not quite I don't know, it just doesn't sound right. So LinkedIn on your posts, it has like a do you want to AI this? Yeah, I do. Let's see what it tells me. my god. I was like, yeah, I'll use that that it made it sound so professional. I was like, my god, sound like a friggin genius with this is okay. But it also saves time because then I can just point form. So what I've been doing now is just point forming stuff and saying make this sound professional. Jon (35:55.13) It's like, that's great. Allan (36:11.623) And you're like, what do Jon (36:11.81) Yeah, make this sound like a professional pirate and then it's perfect. Yeah, exactly. Allan (36:16.684) Well, and you can do stuff like that. There is there's an AI out there. I remember where you can make it sound like a jerk. Jon (36:22.404) What's that's any AI, right? You just tell it the basically like chat GPT will do it if you just like, you know, give me this response. yeah. Make it, make it like a real jerk, you know, talking back. Allan (36:32.426) I didn't know that. There was a funny site that I found a while ago that you could say like professional, passive aggressive, fully aggressive. And I was like, this is this is amazing. Jon (36:41.402) I think all they're doing is adding, they've crafted whatever part of the prompt that they're just adding to, right? Which is kind of the funny part of a lot of this AI stuff. It's really like when you see things tweaked because you're getting the wrong result or something and then so somebody fixes it, they're really just adding more to the prompt or crafting how you're asking the prompt at that part of it, beyond just your own input. And then that's what helps kind of tailor Allan (36:48.504) Yeah. Jon (37:10.584) to get better, right? So same idea. Yeah. Allan (37:11.8) right. Well, actually, you know what I was jealous of you guys now in the dotnet Maui repo have like a like a bot that goes through and figures out first of all, have they signed anything that's existed in one form or another before? But it's it's optimized now. And it's like, yeah, I think you're talking about one of these issues and you're like, did you've been holding out on me, John? What is that? Where is that? Is that I want Jon (37:27.352) Yeah. Yeah. Jon (37:35.128) Yeah. It's a, yeah, it's a new thing that's, think eventually will get rolled out pretty broadly. I don't know, like I'm not, well, we had to ask somebody to get access to it, to put it on our repo is all I know. I wasn't the one who went and figured out who to ask and how to do it. So it's, it's so nice. you know, Allan (37:48.947) so you're holding out. are holding out. Do you know how helpful that would Allan (38:00.428) You have no idea how jealous I am of Jon (38:05.336) To be fair, like on GitHub, that's been one of the things that I've forever been like, why are they like, you look at Stack Overflow or something and it's like, are you sure that, or a lot of systems like, are these things related, right? And maybe they're not done well with AI yet or whatever. But I've always wondered like, why doesn't GitHub do something that would be such a helpful tool for repo maintainers to have when new issues get started, like head them off before their duplicates, right? Like give people, like I don't, I think. What I remember hearing again, this is not an official hat on knowing anything about what they're actually doing is that it might be initially kind of expensive to have it at the time where people are typing, right? So, but yeah, like right now it just, like you said, it replies and it's like, Hey, here's a similar issues. it's like similarity scar and you know, okay, so go click on those. And at the very least, even if you don't as the submitter, like when we go look at an issue, we can. Allan (38:45.282) general. Yeah. Jon (39:03.194) more easily see, cause we have like, you know, we have three over 3000 issues in the repo. So yeah, a lot of them are. Yeah. And, it's just like, no human can comb through those all and figure out, okay, well here's the 10 duplicates for this new issue that got opened. Right. Allan (39:10.306) And a lot of them are duplicates, right? And that's a fact. I mean, I won't go into why some of these. Allan (39:22.342) You mean you guys are working because people say you're not which is nonsense. But like the amount of issues you get now I tend to get them through email. I don't know why people can't just do the issue on freaking GitHub. at least I've got an autoresponder for that. Now if it comes I just I press a button. Leave me alone. Right. Jon (39:25.504) yeah. Jon (39:41.466) It's just like, don't, no, like go file it on GitHub. Allan (39:45.72) But having that, cause it's not just doing a keyword search, it's like intelligently trying to understand what some of these people say. And you're like, I don't even understand it. And it's like, yeah, I think you're talking about this. And I've gone through, cause I watched the .NET Maoi repo and sometimes the issues I'm like, what did you just ask for dude? Like that doesn't make any sense. And it's like, I think you're talking about these. And I was like, well, I'm glad it figured it out. I don't even know what dude's saying. Jon (40:08.888) Yeah Well, and it's only doing it off titles right now, too I think like eventually i'm sure they'll get the capacity to do it off the full issue body, too Well, the reply the reply it gives is like, you know, that I find similar issues based off the issue title Like it says it in its own like reply Allan (40:18.092) Are you sure? It didn't look like Allan (40:29.658) It just is pretty intelligent about it. Jon (40:31.414) and you can thumbs up and thumbs down reactions on its comment. And it's apparently using that to help get better. Are these similar? No. no, no, for sure. Even the one I'm looking at, somebody thumbs down, like, are you just doing that because you're annoyed at the bot doing this? Or are you doing it because you're actually trying to give good feedback, probably the annoyed thing. Allan (40:42.287) You do remember that that doesn't always work well, right? because Allan (40:53.356) Hehehehe Allan (40:58.528) I want it. I want it done faster. I want it done. If there's still open issues, then I want it done. Give me a vote. But like that is it's super helpful, right? It just it gets rid of. The amount of cruft sometimes answering these questions like even. Even this sounds bad, but I get this so frequently there's there's somebody bugging me right now and I'm like, dude, you have to give me a repro. If I could just have the AI say, dude, it's the requirements to submit an issue here. But people just check that or put in something stupid and you're like, this isn't even what I need to have a bot just go you're being stupid. This we're closing this or you've got three days to fix it or we're closing this like I don't mind if it's passive aggressive. Because I got better things to do in life than diagnose Jon (41:44.814) We had stuff like that. think we, changed the, the automations that were running. don't know if it's back again, but we had at one point like you'd add a label that's like needs info and you know, it comment and be like, Hey, give us some info. And if you don't, we're going to close it, you know, within this many days. Allan (41:59.66) Why? I still have that, it required sometimes reading these long posts and people sometimes put like that in the kitchen sink, but none of it is helpful. It's like we're doing this push notifications is the common one, right? We're doing this on the server. We don't know why this is happening. I'm like a key. You realize that I write client code for this. I specifically say that. So send me the client code. If I could just have AI going, yeah, it's a server code buzz off. You know how helpful Just save me being a bitter old jerk and just do it for me. That's all I want. Or people get smarter than filing their issues. That'd be much better, but I can live with the AI being passive aggressive. Let's put it that Jon (42:42.5) Yeah, yeah. So the other thing that I used talking about like, yeah, almost more consuming AI, I guess, I have you ever written a Roslyn analyzer? Allan (42:51.406) Okay. Allan (42:57.228) I have. Well, no source generators. More or less the same thing, but Jon (43:00.204) Yeah, similar, similar. It deals with the same kind of inputs and syntax and all the abstract tree and everything. It's not super intuitive how to do it. The APIs are fine. It's like, here's the code. Here's the syntax tree. Go figure out if it applies to your situation. And then you can write the code fixer equivalent for it to actually Allan (43:06.988) The fun. All the fun. Jon (43:29.472) suggests like, hey, if you wanna fix this, click the button and it'll do it. So I've in the past attempted it a while, quite a while ago. I'm like, just, don't, there's like how, source gen is kind of the same if you get into enough details, like how do I know the right thing that I wanna actually look for in the Roslin syntax tree? So in this case, it wasn't that bad. I probably could have figured it out manually. So I ended Allan (43:42.924) Yep. Allan (43:52.706) Yeah, no, it's tough. Jon (43:59.128) we writing a, an analyzer and code fixer to look for any of our different tests that were not categorized because so what we've started doing is trying to fan out a bunch of our UI tests so that they're running in parallel and we're splitting them up in categories. And we could have done it a different way, but one of the things that we wanted to achieve is like some categories are a little bit more inherently flaky. And so like, let's, let's kind of lump those together. And then, you know, if that test run fails, we can kind of start narrowing down like, okay, like, is this a real problem or is it just this, this one kind of group is always a little flaky. Anyway, want to make sure that we all have categories on them. And so I'm like, well, let's write an analyzer and it can give us a warning or an error if you try and build with the test with no category. So I just, I'm like, Hey, copilot, can you do this? And it's just like, yep, here you Allan (44:51.65) Yeah, Jon (44:59.48) And the code was Allan (44:59.714) Was it was it one to one basically like date? you able to copy and paste that and literally have it run? Jon (45:04.494) Basically, yes. It was so impressive. And I've used Copilot in VS and stuff before. And to varying degrees of success, really obviously depends on the problem space. But that I was super impressed with. then what I started with was like, it gave me the code to look for the attribute on a method that was marked as a test method. And I'm like, well, that's great. But you can also put a category on a class. and it applies to all the methods. So can you change that for me to also check if the class that the method is in has the category instead? Yep, here you go. And it's just like, and then can I have Allan (45:43.406) Look at that. Did it do it as the incremental? no, you're doing an analyzer. Was it the newer format? Wow. Jon (45:50.714) Yeah, because I think it, I think it, yeah, yeah. And then it's like, okay, that's great. Now can you write the code fixer for it? Because, you know, I want to be able to do, be able to have the code fixer too. Yep, here you go, right? Like it was, it's a pretty easy analyzer. So it's not that crazy, but you, I think it would do well in many cases if you give it a good prompt and tell it what you're actually trying to achieve. was kind of a mind blowing moment. I've been getting, like I said, I've been trying to get better at using it for more cases. I had another, what was the other one? It was a case where it's like, I just, was some complicated logic. Fine, I can do it, but it would have taken me a little bit of time. it was my font scaling stuff. So I wanted, I have the font scaling. I made this like markup extension that I can use in Maui. Allan (46:41.09) yes, Jon (46:48.986) that I can say the font size is like 16 and then I want to have that automatically scaled based on some like global font scale setting. But then that was easy, did that. And then I'm like, wanna also know, or I wanna add a kind of a modifier. Like sometimes if you have font in a certain area, you're like, if I let this blow up to like 200%, it's just gonna. destroy the layout. Like, and it doesn't need to be 200, like 200 % would be ridiculous here. So I wanted to add like a sort of, you know, how Excel, almost like how exponential or not, you know, the scaling is going to be applied in this specific case. So just basically a percentage, like I want it to be like 50 % of the font scale. And then it's like, but if it's small, I don't want it to scale down that much right out. only want it's all these conditions. I'm like, I can figure this out. But I'm like, hold on, you know, can you give me, it's like, yep, here you go. Math dot, you know, pow, you know, all this is just like, that was a really nice way to do it. And it, it just worked first time. And it's like these kinds of cases where they're not like you still have to know how to do it. Right. I think that's one of the pitfalls is like people that go, it's going to be able to do everything. Like, no, you still have Allan (47:50.174) Hehehehe Jon (48:09.528) review the code and know what it's doing and understand Allan (48:11.563) Don't take away. I'm about to say something spicy. Does that does that mean the product managers can replace us by writing code soon? No, you guys still got to write good stories. Come at me, bro. Jon (48:18.298) Yeah, right. Exactly. Right. Yes. So yeah, it's again, it's a tool, but it's one of those things that I, in that case, I could have spent probably, you know, 15 minutes just really thinking through the logic of it, or I could have, I spent 10 seconds and it gave me what I wanted. Yeah. Allan (48:39.724) Which is good because to to post qualify what John said, John is a perfectionist. So I remember him talking to me about this exact thing. He's like, have you done this before? And I was like, yeah, the good thing is, is that the UI people usually I work with like a UI team. I've had that, that just where I get in niche markets, that's where I've got people that do that. Thank God, because I suck at it. But they have like magic font sizes that they generally tend to pick and their UI can Usually grow to the blind people like if like my mom for example, I call her blind. She's not blind. My apologies if I've offended anybody, but she'll put the font size up huge and it'll break a whole ton of apps, which is what was happening to you, right? People running it in large font size. Jon (49:10.54) Yeah. Yeah. Jon (49:21.718) Yeah, well, yeah. And it was part of that and partly like people are users are the best, right? They're like, yeah, my phone is set to like my system wide setting is set to like a big number, which means like my, my layout on my app is a little bit reactive in the sense that like, if there's enough room, it'll show you these like little tiles I have on this, the home screen, it'll show like them in columns. And so usually on a phone, if your font's reasonable, you get two columns and stuff kind of fits nicely. Allan (49:30.07) It sucks. Jon (49:52.43) Well, if you crank up your font size, it's like, I can't fit that data in that width. So now I'm going to just put one column and you know, now you might have to scroll a bit too, cause the font's bigger. So people are like, yeah, I don't want to change my system settings cause I can't really see in apps, but I want that to all fit in the two columns on the main screen. It like, well, but if you couldn't see that the font and other apps, like the way to make it fit is to have the font smaller. Like that's it's it's physics at this point. Like it just doesn't work. So you're okay with like getting your magnifying glass out just for that app? Like, yeah, that's fine. I just don't want it to fit. So I wanted to introduce the thing in the app so you can say, okay, yes, in this app, I only want the font scale to be 80 % and that will bring it down from the system -wide scaling that gets applied as Allan (50:45.932) You could say you were delighting users. Microsoft's mantra. Yeah, it's actually a cool idea, I will admit. Jon (50:48.92) Yeah, yeah, yeah, so. It works quite well. The only thing that doesn't is. I haven't. I'm sure there's a good way to do it. It doesn't like adapt when you change the setting like you kind of have to kill the app and go back Allan (51:03.413) you Jon (51:05.196) Yeah, I know. It's not great, Allan (51:06.294) I don't actually think there's an event you can listen to for that personally. Jon (51:09.23) Well, might, I mean, it's a global app setting, right? if I just notified all, if on it, whatever the visible thing is, I notified all the properties that they're changed. Like in theory, all the bound font things I think should change. I don't know, I'd have to play with it. I didn't get that Allan (51:31.534) It's not perfect yet then, John. Jon (51:33.336) No, it's not. But I put a little note on there. That's like, you got to kill the app and open it again. If you're gonna, if you're gonna change Allan (51:40.172) Well, I mean, as long as it's document, I mean, nobody will read it, but it's a good start. You can say like, this is coming. It's coming. Chill out. So have you done anything else cool with AI? Jon (51:48.11) Yeah. Jon (51:52.41) What else? I started looking at, there's a new open AI library, client library from Microsoft finally that works with the Azure counterpart of it, Allan (52:04.231) Yeah, they're they're they're big massive wrapper of bringing together all the AIs. Yeah, it's great. It's great. Jon (52:12.13) It's well, it's not, not even, I don't know you're talking about semantic kernel. I'm just talking about the, like the Azure service. like, so for the pool app again, you know, one of the things that we've been kind of looking at is can we, can we create a, what's the assistant, I guess is the API I'm using. Can we create an assistant? Well, it's open AI stuff, right? So like there's open AI assistance. There's, there's a few different parts of their API. Allan (52:19.064) Yeah. Allan (52:31.054) copilot. Okay. Jon (52:41.378) And that's one of the things. And so we're like, can we create an assistant that we can give a prompt to that's basically like, here's the current snapshot of my pools test results. Like, what should I do? Right? So the app helps you do that. If you go look at all the levels, you're like, my pH level is this. And we're like, well, we think it should actually be in this range. Which of these chemicals do you have on hand or want to go buy? And then this is how much of it you should add to change the number, right? But that's all very much like going into the app, going clicking through and being like, okay, I want to adjust this and following, you know, that kind of calculator almost aspect of it. So we're like, well, what if we just. Just tell me what to do right? And like for all the things that which actually works pretty well. If again, you've given it the right prompt and set of information. So. Allan (53:27.458) Tell me what to Allan (53:33.922) Yeah. Jon (53:39.436) started experimenting with that. all it is is really, it's just a REST API wrapper basically, right? So I'm talking to my server through my own API, because you're not gonna do this directly on the client unless you want someone to steal your API key and use it for themselves. And all of why is it costing me this much money? So definitely don't do that. But from the server side, yeah, it's just like go, you formulate the prompt based on some template that we have, which, which then gets sent to the assistant that we have like already given the right documents and other contexts too. And then, yeah, it just spits it back. And I've started doing it in kind of like a chat, like API or AI or not. Yeah. AI in the brain UI. Yeah. So it's just like a conversational thing, but the challenge there is, and I think this is going to be something that's just generally a challenge and Allan (54:29.346) You want it? There you Jon (54:38.638) We've seen cases of it, right? Like, you see the whole Air Canada thing where somebody like asked their AI chat bot, like, can I get a refund for this scenario? And it's like, yep. And then they went to go like actually try and get that to happen. And the Air Canada is like, no, that's not our policy. And they're like, well, but the bot told me it was. And they took it all to court and the person won, which is fantastic. So like you are responsible for what your model tells your customers, right? So on one hand, like this is a cool idea, but on the other, what kind of liability do you have now that maybe it told them to do something that wasn't correct? Allan (55:25.034) Yeah. So you have to record all the stuff that it's that it's deciding on. Jon (55:29.092) So that's part of it. Yes, you have to record all the stuff because you need to know that. But then like, I don't know, it's just that whole space of like, I'm uncomfortable. I'm comfortable about doing more than like, I don't know if I want to allow a full fully interactive assistant at this point where you can, you know, reply, right? But maybe just to control and say like, here's the test results, you know, in a, if with very specific prompts, here's like the suggestion. And with huge disclaimers that are like, this is an AI thing. You know, we're do the whole legal thing where it's like, we're not responsible for anything that goes wrong kind of stuff, which isn't necessarily going to protect you, Allan (56:08.782) Do you basically string concatenate that onto the reply from the bot then? But this may be incorrect, so don't use it. Or we're not liable. Jon (56:16.322) Yeah, right. And then they're like, well, why am I even using it then? Right. Like, so how do I, yeah, I don't know. That's, that's a big part of the challenge I think at this point anyway. Allan (56:27.064) So I've been doing a couple things. did a, I wanted to do some motion detection for a bunch of things I'm working on. So I built a red light, green light prototype. So it's like the stream. It figures out movement and goes that guy moved, right? So it'll figure out two people. So my kids have been playing that's been fantastic. But I was working on that for other things, but I've been working with one of these things, which I am allowed to talk about. Nobody will get me sued if I can get the damn thing up. Jon (56:54.126) Maybe, put your disclaimer up. Ooh, fun. Allan (56:54.958) So this is a Moultree camera. It's by a company I do some work with. It's pretty cool looking right? Is this? Wow, John. Wow, dude. These things are pretty jiggy. They do some really cool things. Can't talk about everything they do, but they have some onboard AI. They're kind of like trail cameras. You put them out, sees a deer. Jon (57:00.834) I can barely see it, it's so camouflaged. Jon (57:19.167) to record only when it sees something interesting basically. Allan (57:22.794) Right. And then it ships at home to say, I saw something, right. And it sends a video. The eye analyzes it goes, that's a deer. It's too young. It's too old. Right. And then it'll start. We start sending out notifications. Our app gets involved. It's pretty cool. And these things will last like forever in the bush. They've got big, batteries where you can put solar power on them. They're awesome. Working with them is cool. They're doing some real cool things that are coming in the next few years. Jon (57:49.263) And you go and like sync up with it. Do they have models that are like cellular enabled too? Allan (57:54.7) Yep, they're doing some wicked stuff. There's some wicked stuff in the next few years. Can't talk about it. It sucks, but it's all AI based. It's going to be awesome. So this thing, this thing, like I said, right now it detects deers. It can tell you if they're too young, which, you know, I don't, I don't personally hunt. I've shot a turkey. That's about it. And I didn't shoot the turkey well. It kind of blew up when I hit it at a range, Anyhow, it'll detect all that stuff and say, this is too young, you're not allowed to kill it. Which, that's probably a good thing. And that's some... Jon (58:31.31) Yeah, Is there but the only kind on the other hand to like what if it gets that wrong? It's like, it's fine I guess you're still responsible right like you you're the one pulling the trigger Allan (58:44.694) Well, to be honest, I feel like the camera, the trail cameras are a bit cheating anyways, but everybody's doing it. So, you know, I don't think I'm not sure how the laws work. I know in Canada, if. Well, if nobody knows, does anybody care? They probably should, but I don't. I don't I don't know how it works, to be honest there. I only know about here's the thing that I'm programming and these things are awesome. am hopefully I get to talk more about it in the future. Stuff that's going on there, Jon (59:01.966) Yeah, mean, nah, I don't either. I'm not a hunter either. Yeah. Allan (59:14.242) Yeah. And they're doing it on board, which is the other, you know, cool part. Because again, any of that document intelligence stuff you're doing, if it has to go to the server, buckle up boys. This is going to cost you some pennies. Jon (59:18.446) Yeah. Jon (59:26.39) Yeah. Well, and for an application like that where there might not be even a service signal available, even if you had the capability, Allan (59:37.59) Well, and but these are meant to be like their cellular cameras, right? So they're they're meant to be connected. So they get the video there. But the thing is battery constraints. So there's always like little techniques. You don't want it to call home and start engaging its radio if there's if there's no. But if it's just going to murder the battery, so there's this whole whack of things. And just like when we talked about the offline with a phone, like if I would rather have the model locally. Jon (59:51.043) Yeah. Allan (01:00:05.634) like barcode scanning, right? I don't need to be online, just scan me a barcode. Probably chances are you need to go through some sort of database with that barcode, but you can save it for later. I still scanned it. Or a QR code that's going to open up a website, save me the typing, all that cool stuff. If it could do that online, that saves me money. It saves the business money, right? So that's the thing. Whenever we talk about AI, you want it to be great for people, but you also want it to be Jon (01:00:23.672) Mm -hmm. Right, yeah. Allan (01:00:33.76) save for the company to spend money on it. So that's the trick right now. I don't think people realize that they do a lot of AI. You got to be smart about Jon (01:00:42.766) Yeah, it's not, there's a reason they use it. It's not just because we need to put AI in Allan (01:00:48.46) just because, yeah, it's got to have AI. That's how we get investors. And then the investors are like, yeah, your AI is dumb now. Here's no more money. And you're like, well, we got to pull that feature real quick. Jon (01:00:50.392) Yeah. Yeah. Allan (01:01:00.834) So that's some of cool stuff. If anybody else is doing something cool with AI, us know. Give us a topic there. That'd be awesome. We can talk more about Jon (01:01:07.822) Yeah. Yeah. Yeah. and I'm sure we will. Right. Cause it's just like, again, we're kind of at the beginning of it. So it's, only going to see more and more of it and figure people figuring out better ways to apply it and that kind of thing. Allan (01:01:20.706) Like I said, the JavaScript hell of frameworks right now. it's brutal. It changes names every some of this Azure stuff has changed like monthly. I kid you not monthly. Jon (01:01:31.416) Yeah, yeah, it's hard to keep up and hopefully that settles out sooner than later, because yeah, it's Allan (01:01:39.628) doubts. I think we're still in for another year of this junk. Jon (01:01:41.658) Yeah, I mean sooner than later. mean, I'm in five years. Hopefully it's not still like it's been five more different things, but we'll see So so you mentioned there went going to the the plugins packages and products. There's some new barcode scanners on the block Allan (01:02:01.612) Yes, your zebra crossing is sadly just it's not the popular kid on the block anymore. But that's all right for Jon (01:02:04.991) that's great. I'm very happy to let that torch be passed on to somebody else. Allan (01:02:12.366) So there's two that I've used. There's one called barcode mobile dot Maui by an individual named Jimmy Punn. I I pronounced your name right. Wow dude. Okay. And well this one you can make fun of because I couldn't find his real name so it's his github handle which is probably part of his name but we're not going to do it justice but I'm going to let John pronounce it so he... a frisic. Jon (01:02:23.866) pun intended. Jon (01:02:37.858) A Allan (01:02:41.408) Anyhow, it's called barcode scanning dot native dot Maui. It also worked really well. And that one, I know for sure, was using a whole bunch of the Apple vision Android X stuff. Yeah. And it was working. They both worked pretty darn well. The unfortunately zebra crossing is done. See, John's happy about this. Jon (01:02:51.3) So using the new APIs already. Okay, that's cool. Jon (01:03:01.476) Yeah. great. Jon (01:03:05.22) Like, like zebra crossing is dead. Lon live barcode scanning, you know, like it's, it is a okay with me. I started that thing so many years ago. I did that before I joined Xamarin before Xamarin was Xamarin. I started working on that problem space. Allan (01:03:12.802) That's great. Allan (01:03:22.946) You know, I was thinking about this because somehow you and I still always seem to work together way back in the beginning because you did a whole bunch of like native packages. I'm like, this isn't cross platform dude. And I'd somehow reap your controls. So ACR dialogues on both sides of the equation, John had written, I'm not going to remember the libraries. It's so long ago for the Jon (01:03:43.702) the, the, well, one I inherited was BT progress HUD, which was Nick Wise's thing. And then I wrote and HUD. Allan (01:03:50.411) Yes, that's right. That's right. And I ended up using both of them in user dialogue. So there's still people using them like mad today. Wow. But you don't use these user dialogues. Jon (01:03:59.386) I still use those as my app today actually. I didn't, because you didn't make it work on Windows. Allan (01:04:07.692) No, sorry. Listen, I'm not allowed to make fun of Windows, so I won't go there, but there's reasons. But I also did it with the there was because your barcode scanner was very also kind of cross not cross platform. I ended up making a nice service for that. That thing went like nuts and both of our new get counts went up. John and I never talked back then. We didn't know each other, but he was we were driving downloads like mad in those days. Jon (01:04:13.9) That's fair, but I wanted something that did work. Jon (01:04:36.056) Yeah, no, that was, that was fun times. I remember trying to like port the Java stuff originally. I actually remember going and having, I went, it was that, monkey space conference in Boston, which is the first time I met like any of the Xamarin before Xamarin. was a thing people. And I remember going, and having lunch with Nat and Miguel and Joseph and others, probably Chris Hart. was there too. And just talking about like what I was trying to do in the space. That was, that was a fun Allan (01:04:36.844) Back in the early Xamarin. Allan (01:04:47.65) No. Jon (01:05:04.826) Talking with Nat about how to do it and he gave me some ideas for how to approach it and stuff. I was so Allan (01:05:11.574) And you go. now all those things have been outgrown but you know, zebra crossing gone, user dialogues and HUD and sorry, what was the other one? BT progress HUD. They live on. People still using it. So those haven't gone away. I don't know. I wish they would, but they haven't. And long live barcode scanning. Long live barcode Jon (01:05:16.27) Yeah. Jon (01:05:22.688) yeah. They're still around. Jon (01:05:33.944) Yeah. All right. Well, I think that'll do it for today. you already mentioned, you know, if you have ideas about, and especially AI stuff, cause it's such a cool space, let us know. maybe, maybe we have more show topics out of it. You can let us know by going to our website on mobile .io. You can catch us on things of when we remembered a post and Alan's maybe better at remembering to post about them than I am. We're also now on YouTube. Finally, I think I can say that I've been pushing those videos live. So another place to, you don't have to come and watch us, but it's another place to get the content, just to get it out there. More viewers, more listeners. Yeah. Allan (01:06:16.002) You can come see our resting bee faces on YouTube. Jon (01:06:18.778) That's right. You can, you can see my messy desk behind me on YouTube. You can also, um, like us there, like, and subscribe. That's the, how the cool kids do it. Right. So do that. And then after you like and subscribe, you can go to the Apple podcast app or whatever other podcast app and give us the, the five star review. Unless, unless that other podcast directory is out of 10 stars and then you're going to want to go to 10. or 11, you might want to turn it all the way to 11 if it goes Allan (01:06:51.35) I have no comment. I'm not helping you with this one. You're slaying it, John. That's the cool kid term. Jon (01:06:54.479) All right, let's end it now. Bye everyone, see you next time. Allan (01:07:00.974) Ciao.