Jon (00:01.826) Hey everybody, welcome back to Gone Mobile. it's summer is winding down. Is it still summer up Allan (00:07.836) No, it's not. Yeah, no, not. It's just it's the middle of summer. Yeah. Jon (00:13.358) It's the middle, but that means it's more over the Allan (00:17.438) Are we, I feel like it stays warm until like October. I know all of our US crowd thinks we live in igloos and stuff, but it's actually still probably 20 degrees until October -ish, mid -October. Jon (00:29.312) Yeah, well it was hot here this week. Hot. Today's a bit nicer, bit rainier, but makes you kind of want to go unplug and read a book or try to use an app that doesn't have internet connectivity. Allan (00:38.715) Yeah. Allan (00:48.451) wow, your lead -ins are getting that much better, dude. Like, wow. Wow, wow. So our topic today is connectivity out in the wild. And John's lead -in was unplanned, believe it or not. I know it's hard to believe, but he wings these. And he's still typing notes in as we're reading this. So this is cool. I'm like, Jon (00:57.71) Out in the wild. Jon (01:04.664) Yeah, they just come to me. That's why they're so bad. Jon (01:12.234) I'm thinking of stuff. Yeah. Yeah. So like, yeah, I mean, how often anymore do you end up in a situation that you don't actually have connectivity? Like I'm talking as a user Allan (01:23.802) quite a bit. Actually, if you go, I want to say about two hours north of where I am. So up into the the boondocks of Ontario and quite well, you live like a long stretch from like there's a long stretch in Ontario on the 401 Highway where there's nothing right. It's like it's like Hamilton and then London. Jon (01:32.374) Okay, yeah. Yeah. Jon (01:50.338) Yep. There's Chatham. Well, Chatham, sorry, is kind of, you know, more west, Allan (01:50.498) And then somewhere down there is Sarnia and, but still it's close to you. It's slightly north, right? Yeah, so there's some dead areas in there still. So it happens, but camping. Jon (01:59.704) Yeah, yeah, that's a good city, somebody's. Jon (02:05.366) Yeah But the the highways are pretty well lined though Yeah, maybe camping and stuff like but I feel like even like cottage country up in the muscocas and stuff is pretty decently covered now because there's enough money Allan (02:16.57) Is that really camping though? It's like glamping? Yeah, okay. So if Jon (02:19.618) no, it's not. I hate camping and that's fine. Listen, I grew up on a farm, working on a farm. so like whenever we went and took time off, like nobody wanted to be outside in the hot heat of the summer. We wanted to be at like a nice hotel. Allan (02:35.576) You are one of the least farm people I know. You're the least farmer farmer that I know. Jon (02:38.562) Yeah Yeah, I mean people sometimes had asked me that like well, why didn't she like take over the the farm? You know do all that. It's like I grew up in that I wanted to go as far away from that as possible. That was the worst No, thank Allan (02:55.769) I bet you didn't have good cellular service back then on your farm. Jon (02:59.84) No, no, probably not. I didn't get a cell phone until I was in university, actually. Allan (03:06.671) I got it just before. It was like one of those Nokia's. Remember the Nokia's how cool they were? Little bricked. Jon (03:11.074) yeah. Well, I was kind of more weird than that. I went with, well, had a, I mean, I had a cheap, you know, nothing phone for the first phone. And then I went with a Sony Ericsson, I think. And it had like sync ML and stuff. I talked to him about offline. mean, sync up. Do you ever mess with that? It was like a way to sync, contacts and, calendar stuff and emails. Allan (03:24.795) Remember those, yeah. Jon (03:38.648) kind of before like active sync was a thing. Allan (03:41.979) We're going even back to like Palm Pilot era. Jon (03:44.462) yeah, like I stood up my own sync ML server and everything. And like I had my first data plan that I think had like 15 megabytes or something a month. And you know, I figured, okay, if I like sync twice a day, I can make this work. You know, it's going to be fine. Yeah. Allan (03:59.876) Wow, age is showing, age is showing. But again, you are not a farmer. You are very, yeah. Jon (04:03.47) So we, no, no, I'm not. And I'm not that old either. I'm, what am I? I'm gonna be 40 next year. So I'm getting Allan (04:11.862) Yeah, you're getting, I'm over that hill unfortunately, so my grades are showing. Jon (04:15.038) Yeah, yeah, well, at least we're not as old as David yet, so there's Allan (04:19.38) had to get that. I doubt he's listening, Jon (04:23.594) I don't I don't I'm assuming he's not even listening to these so but if he is he'll he'll get the joke. It's yeah, so it hasn't been that long since like that wasn't that many years ago and we'd I you know, I had some data at one point right but before that There was no Offline like everything was offline. You had texts, right? You could send texts Allan (04:28.003) He likes to hear our Canadian humor. Allan (04:43.663) Yeah. Remember that, did you ever see a GPS thing back in the day? Like how bad they were? Like they were like bigger than cell phones. Like some of them even had cranks on them. They had cranks. I'm like, you had to crank the hell out of those things to keep them, like to get them on if they were completely dead. And it was like, you could hear it like whine to start up and it had this humongous antenna. Like it made cell phone antennas at the time. Jon (04:50.935) yeah. Yeah, we had one. Yeah. Jon (05:04.598) Mm Jon (05:14.754) Yeah. yeah, I like the, Allan (05:14.97) Like we're talking like the 80 cell phones, like huge brick with like the four foot long intent on it. Like these things made them look small, but it was crazy. I mean, it worked in the map looked like absolute hell. Like I'm not even sure how you used it to find your way out to be perfectly honest. It was like, here's some, it was, it was more like looking at one of those old monochrome monitors and you'd be like, yeah, if I. Jon (05:29.032) Jon (05:41.078) I got the direction, I guess. Allan (05:41.644) I'm not even sure what to do with this man. I'm just going to get out the compass and walk in a direction. Great. Jon (05:46.646) Yeah, no, I didn't really ever use like I saw those around I never really used those my my first foray into gps stuff was more like once he had like the very early car units like you know a Garmin or whatever that you could Stick in the car and pay a million dollars every year. You wanted to update the map so you didn't do it So then you know you went somewhere you're like this isn't right. The maps aren't correct Yeah, they were they're good. I mean I remember still You know doing cart like road trips with my wife Allan (05:57.142) Yeah. Allan (06:02.476) Yep. Allan (06:06.969) They worked pretty well. Jon (06:15.406) when we were first married and stuff just using maps before we even had GPS units. Allan (06:21.463) yeah, that's almost far boyish. Well, nowadays definitely would be now. Jon (06:25.26) Yeah, yeah, yeah, yeah, I know. So every everything has GPS now. I think one of the interesting things I've not ever used it yet, or I don't even know if I technically can at this point, you know how like so now Apple and I think Google is getting on that bandwagon to there's you can do SMS like over satellite. Have you? Have you tried that? Have you used Allan (06:42.392) Yep, yep. I have not. I haven't been to a spot where I can really put it to the test, but I know it's coming. Is it already there? Technically it's already there, is it not? Jon (06:56.492) I think it is. don't know, like being in Canada, we don't always get, you know, new features and stuff right away. Like kind of same thing. Allan (07:04.151) I mean, I feel like a satellite thing we should get right away because like, dude, it's floating over top of us too. Jon (07:07.438) Right. right. And like Canada is huge, right? And like you said, as soon as you get a little bit away from, from where you are, like stuff starts dropping out. That was, I was surprised when we went a couple summers ago to Prince Edward Island. we ended up, I mean, just being out there like in, it's not a big Island. You'd think that that thing would have like full coverage of the whole Allan (07:30.666) No. Jon (07:32.074) No, not at all. Like, you know, we'd get to like the house where we're at. And I just remember I had to like make some calls for work stuff that was like urgent and like I'm on vacation. I'm not working, but I needed to call a couple of people and I'm like looking around the property that we had the rental on like for the, like the place that I got reliably, like one bar, you know, of, of three G even so that I could maybe plausibly make a voice call. And that was, that was the experience there. So It really wasn't a given that you had connectivity there. And then what was worse is we, ended up having to drive home, which is like a 20 hour drive. Cause we all got COVID and this was, you know, right in the middle. We're like, we could have done the thing where we don't say anything and we get on the airplane and we fly home and we're kind of jerks about it, but I couldn't do that in good conscience. So we, made the decision to drive home and then all the way driving home. It's like, between cities, there's just, there's nothing. Allan (08:12.752) I remember you telling me about that. Jon (08:29.12) even along the highway. Allan (08:31.831) I mean that's... that sucks. So you're sick, you have no signal, so you've got whiny kids that are sick that can't... well I mean tablets and movies offline maybe but... Jon (08:35.534) Yeah. Jon (08:41.42) Yeah, they still had, I mean, well, this is just it for apps, right? Like some, some of the stuff they use worked. and we, we always make sure to have them like download the offline movies and stuff before we go on a trip like that. but there's certain like games and stuff that they would want to play, right? That they're like, it doesn't work if I can't, it's like the game has nothing to do with online, but because there's no connection, couldn't, I don't do something. Allan (08:45.664) Drug him and knock him out. Yeah? Jon (09:10.456) contact an ad server couldn't phone home and so they're like, no, it doesn't work. Sorry. Allan (09:15.35) Well, that's most apps, right? Unfortunately, still today, a lot of the bigger apps, just... No internet, no app. Jon (09:21.838) I mean, my app's kind of like that. It works, but you can't save anything. Allan (09:28.446) Well, yeah, why not? That's pretty easy to save, no? Jon (09:33.45) Well, yeah, I just, haven't done it. It's, it's, mean, we talked about this in the past a bit with offline data, Allan (09:37.572) You won't put Shiny in and just do a job and let it send and receive. Jon (09:41.344) Yeah, it was more, I didn't want to deal with like the duplicate, you know, stuff and sorting out that part of the puzzle. Like I probably could do a pretty easy version of it, but I just haven't wanted Allan (09:53.856) Are you using a GUI? Jon (09:55.89) yeah. So yes. well, so what I do now is when a new, when, when you add a new record, it has to round trip to the server and then it comes, I send it back and then that is what your ID is. Like you don't assign it an ID locally. The server does. So I've had the thought of doing something silly. Like, could I make like a special Allan (09:59.296) There you go. Easy to do. Allan (10:15.378) No. There, okay, well. Jon (10:25.57) convention in my identifier that for locally saved things that haven't yet been gone through that, Like call it like local dash squid. then Allan (10:33.736) No, you just do the ID on your end, on the client end, and you put a date last synced and it's null if it's never synced, which means you gotta push it. I mean, I've done enough offline data now, I think it's kind of burned into my head and I've seen the crap that people do to try and solve this problem. Don't do Jon (10:39.264) Yeah, I could do that too, Jon (10:58.54) I mean, it's just short -cutting one column. So yeah, arguably it's the same thing, but fine. Allan (11:01.655) All right, all right. It's stupid easy. But you know, a lot of people ask, so this is something I'm working on now is like, does GPS work in the woods on my phone? Well, if you have some of those crappy Android phones, the answer is no. Some of them are Jon (11:18.776) So it's like assisted GPS, right? Is that the term? Allan (11:24.047) Well, iPhone is like it'll do a full GPS as far as I know. Like it's pretty darn skippy the way it I think it's still slightly based off of cellular to degree. So it still uses some like you can see analog towers. Right. So you still have no internet. Jon (11:34.584) Well, and why wouldn't they, right? It'll, it'll, yeah. Like if you have the data, use it, but does it work if you don't have any of that data is kind of the thing, Allan (11:44.036) And shockingly quite well. It does work quite well. So years ago, my trip, I went up to northern Quebec, like the tip of Quebec. And like you want to talk no internet there was none. And the funny part was is that so my truck had a built in GPS and the GPS was all offline. But that thing got so flippin lost up there. The place where my buddy got this cottage was like, I mean, it couldn't have been any more in the bush, literally. Like you had to drive down this dirt road for like 25 minutes and then all of a sudden you're here. But my GPS and the map was just like, it got up there and all of a sudden it would just freeze. And then all of a sudden I'd show up like three kilometers ahead. I'm like, where am I? Turns out it skipped me right past this dirt road. So I ended up going an hour north still going, you know, talking to my friend, like, dude, I keep losing internet. So I'm texting you from wherever the heck city I'm in now. And he's like, yeah, you're way too far. And I'm like, where is this dirt road and sign you're talking about? And there was a sign. Jon (12:57.782) Yeah, great. Allan (13:02.768) that was it had no lights on it and I'm driving up there at like 1am. It's 1am in the morning. Assigned with no lights. Thanks dude. Like that's that's great. And my GPS in that area? Nothing. Total gonzo show. My phone no internet. It was brutal. Jon (13:13.614) like some little sign like, you drive past the house with the red barn and the square roof and you know, that's where the road Allan (13:24.109) Right. And the funny part is, is that my phone, the GPS was working on it. So my truck had given up that I was about ready to like weld the whole system out and throw it. But suffice it. did not. But here's my phone. has internet or sorry, it has GPS, but no internet. So the maps are blank. And you're like, dude, how did we get here? Like Jon (13:31.159) Mm Jon (13:46.702) Yeah. Yeah. Yeah. You really take for granted that kind of thing. I mean, I, luckily, I think I've, I've hit enough of those situations that usually depending where I'm going, I kind of know if I should bother being prepared. Like when we went to Belize in February, you know, like I'm like, okay, I'll have an E, an E sim. You know, this, that's another kind of, I know this isn't really developer stuff, but at the same time, it is kind of interesting how it enables users more. Like it used to be, got to go find a SIM card at a store if you want data in another country. Right. So like good luck. And then like, they're going to want your passport. you know, who knows what the cost and plan is going to be all that stuff. And any more, like, I don't know if you've used this yet. I've done it a bunch, like using the e -sim cards. Like there's a few apps out there that'll sell like different. Allan (14:28.717) Yeah. Jon (14:43.725) temporary SIM cards for whatever country, right? So I knew that we were going to have data when we got there, but I didn't know how good of coverage was in that country. So I'm like, okay, go into my map apps, download offline maps for, you know, the whole country in both Apple and Google maps, because who knows? You never know. And then I hope that those still work reasonably well with GPS without, you know, internet. Allan (15:05.55) You never know. Allan (15:14.084) But you know, the funny part is though is that you can do that nowadays because our phones are like, I mean, I'm sure you still find a way to fill your phone. But my phone still, got tons of space, tons. Jon (15:14.179) And it did. Jon (15:25.69) And the maps aren't that big anymore, like I think because a lot of the maps are now like vector based stuff. So it's not, you know, it's not like it used to Allan (15:31.505) Yeah, they have come a long ways, but you know, if you download the map of Ontario, it's about five or 600 megs, think, somewhere in there. And if you include all the landmarks, it gets up to like a gig. And I mean, that's still not bad. We're talking about these humongous phones now, but back then, I mean, back even on a three GS, I had a three GS and like, I don't even remember how big those were, like 16 gig, are they 16 gig? Jon (15:38.422) Yeah. Yeah. Jon (15:48.802) Yeah, that used to be a thing. Jon (15:57.548) Yeah, something like that, Allan (15:58.961) I think maybe even that was like the top one. So I don't even say they were like eight gigs. So you were like, man, that, no, I need room for my games. Why do I want a map that's offline? Well, you know, fast forward and it was like, I wish I had that map offline. So a lot of map providers are out there nowadays. I mean, back then you had Google Maps. and there was no such thing as Apple Maps and when Apple Maps did come in it was awful. I think it's a lot better now. I've actually had to get rid of Google Maps because there's been lot of issues with it lately but if you're using Google Maps I know a lot of people say my god it's expensive because it is. They're like mega moola. I think they sell themselves as like the this is the premier service if you're complaining about it we're not for you. I think that's kind of their Jon (16:29.784) Be a Jon (16:50.06) Right, yeah, it's kind of like if you want everything and you don't want to have to think about it, then this is your answer and you just have to pay us for it. If you want a subpar version of that, well, go for Allan (16:59.186) Well, it's and I mean, they're like, like I want to say 10 times the cost of everybody else. Like it's that bad. So I see a lot of other things out there like I'm using Mapbox right now. It's OK. API is a little funky, but it does do offline. Obviously, there's the big ones like Esri ArcGIS. I think that's like for our ecosystem like Maui and Dotnet in general, they're like the kind of gold standard. Jon (17:27.532) Is there like, they, I always kind of viewed them more as like a commercial provider, right? Like it's, not so much like, yeah, I get we're talking about building apps. like it, it presumably they they're just, you know, as good in terms of if you want to put an app, a map in your app as Google or Apple in terms of features and Allan (17:33.785) Yep. Well, Allan (17:46.777) Yep. Yep. They're they're obviously pricey as well. But if you compare apples to apples with Google, they're quite a bit cheaper. The other thing is, is that I don't and maybe somebody else knows this, but Google was always a pain in the arse to get offline. Like in your app, there's a lot of times where you're like, I want to put my own map data in, which is obviously fairly easy to store offline. But there's no APIs, at least that I'm aware of still to date. where I can go what off I, know, in my app, I want to tell it to download Ontario download. Yeah. Yeah, just just download it. So let me see the option and tell the user this is how much space we're about to take. And do the thing, but there is no API as far as I know, and Apple Maps is the same same deal. I have never seen anything that I can do in my app to say we need the data because. Jon (18:21.934) like tile data and point of interest data too. Right, yeah, Jon (18:37.765) Now, do they? Jon (18:45.218) Yeah. I mean, I've never tried to build something like that really. but I'm one thought that comes to mind that I'm curious about it. I would assume that, you know, let's say I've got, let's use Apple as the example, cause it's like baked into the, O S right. If I, if I'm on Apple maps and I go into the app and I download an offline area, does an app using maps have access to that data too? wonder. Okay. So like you, you Allan (19:00.154) Fair. Allan (19:11.736) Yes, it's all built in. Jon (19:15.298) This is not at all a reasonable workaround, but of course you could tell that, you know, user, you plan to use this offline, like go download, you know, the cash there. Yeah, no, it's terrible. Yeah. Allan (19:23.256) Yeah, you tell me one product manager that will live with that answer going, no, this is a horrible user experience. And it's like, well, it's not really that awful because it's going into the phone settings, but it would be nice if we could do it on their behalf and say, look, you're planning to go to this area. So a lot of apps have like a point of interest anyways. That's why they want maps in their app. So they might be like, okay, well you're going from here to here, we're gonna capture all that data for you because we know that your internet is going to suck. Or we wanna make sure if your internet does suck that you have that data so you can't yell at us that we didn't do the thing. Jon (20:00.994) Right. And especially like in certain industries, right? Like I, you know, there's like, I know there's like trail map kind of apps and that stuff too. I would think that generally, you know, those types of apps, the use case is going to often be, yeah, we don't know about connectivity on these areas that you want the map Allan (20:17.995) Right. I mean, I think Matthew Robbins out in Australia, they're doing that that cool Maui app with Unity and climbing. It's got like a climbing app and I'm pretty sure it's got maps. I haven't seen it yet, but a lot of people are talking about it. Dude makes gold, right? Everything he does seems to turn to gold. So I know this app has been getting a lot of attention. Jon (20:31.171) Okay. Allan (20:44.129) And I have to guess that the middle of Australia, I mean, if you're from Australia, feel free to tell me. I mean, I'm an ignorant idiot, but I'm going to guess not a lot of internet coverage here. Just to guess. Jon (20:51.67) Yeah Jon (20:56.438) Yeah, I mean the the bigger the country the more sparse the population like of course, there's just not going to be that's just how it Allan (21:02.784) Right, so I got to imagine he's doing stuff like that and he's got obviously got point of interest data in there. So you're going to want that offline. So they got to do the things. I'm trying to think what other maps so we got we got ArcGIS, Google and Apple Maps kind of. They're there, but they're not really feature rich either. Jon (21:22.754) Now does Mapbox, do they have different tile providers or like you can plug different things in, right? Like in your own custom thing, but do they also offer their own data source of maps or like, is it just open street maps? Allan (21:29.069) Yeah. Yes. Allan (21:35.95) Yep. No, they have some map boxes, their own kind of tiles. There's open. What is it? Open maps or open open street maps, which is interesting because a lot of people abuse poor open street maps because they're kind of free. They're kind of free. But, you know, people cash their images or their tiles. Kind of a jerk thing to do. But so be it. I guess that's what they do. Jon (21:44.279) stream apps. Jon (21:51.01) Yeah. Yeah. Allan (22:04.063) but that works relatively well. know Open Street Maps is really up to date. Like it's all off volunteers and yeah it's it's crazy. It's crazy how how up to date those maps are. Just in my area I was looking the other day and I was like wow you guys have done you know this is this is good. This is top notch. Jon (22:10.06) Yeah, it's like Wikipedia for maps, Jon (22:22.19) I need to look again at it. So I think, and I don't know exactly the blend, but so my car, Tesla uses some amount of OpenStreetMap data. I think they combine, they're not clear about it, right? But I think they combine like speed limits and stuff with vision based, you know, seeing a speed limit sign. So we have this one street by our house. Allan (22:46.242) Okay. Jon (22:52.27) if we're going up to the 401, it always like, it's a, it, it, there's a point at which it turns speed limit of 80 kilometers an hour, but it always, always, always thinks that it's 50. And so like, if you try and set autopilot on, especially not like the full whatever thing that you have to pay a bunch of money for that arguably, arguably sucks anyway. it'll only let you go to 10 over the speed posted speed limit because reasons. and so when you hit that zone, if you don't think about it and you have autopilot on, it just starts breaking, right? Cause it's like, it's 50. I got to slow it. Like I was going 90. I got to slow down to 60, you know, hold on, hold on. Right. And, it's, it's not usually that bad. but in that one spot it is. And I did a while back go into open street map. I'm like, I'm going to submit a fix and like, see if this ever bubbles up. And I don't. Allan (23:31.362) Yeah. So all the people behind you are like, my goodness, how old is this guy driving? Get him off the road. Jon (23:51.17) I haven't driven that road in a while that I've used autopilot. So don't know if it's, it's kind of come down, but like that's the, you know, there's a bunch of people using it. The data. Yeah. You can go in and fix it up yourself, which is kind of Allan (24:03.854) So the question here is, that obviously that data is online. If it's using a combination or they must be getting that data through some cell signal at some point. Jon (24:14.16) yeah, yeah, the cars always got, you know, a cell signal going. They also do like live traffic data. think that's all sourced from Google. Allan (24:22.337) Well, I guess Tesla can technically piggyback on the what's Musk's satellite internet. I mean, it should. Yeah, he's doing something wrong. We'll put the two together. Connect the dots, man. Jon (24:30.063) It doesn't, but yeah, I mean, in theory, maybe that's one day. Yeah. I Yeah, well, I can't can't charge enough money for that to you know be trolling the internet then how is he gonna do that? Yeah Allan (24:39.868) I guess. Fair so we've got GPS. We got a maps lots of maps You know Esri is out there. It's got dotnet Maui support. It's fantastic again gold standard Google Apple not kind of just crap for general features and overall offline support, so they're just kind of there There's map box, which I know there's a several several big companies that have bindings for it, but it's not Jon (25:04.046) Mm -hmm. Allan (25:12.296) Trivial binding. I know there's a person in the community that's maintaining a binding, but I think he's got just a small subset of the important features because they're big. Jon (25:13.705) No. Jon (25:23.534) And maybe it's like there was a couple years, cause I always used Mapbox as like my sample, right? Like, cause it was always a nasty one to have to bind. Cause there's a huge dependency tree and all that kind of stuff. Big API surface, just, it's just, it's not a trivial thing. And for, yeah, well, and for a while there, they kept like making fairly big breaking changes between versions. And so it was like, okay, Allan (25:30.611) your prototype thing. Allan (25:37.879) Yep. Yep. Allan (25:43.245) still isn't. Jon (25:51.746) you'd get like, you know, one binding done to the whatever version four or something. And then version five comes out and you're like, they changed everything. And it is basically a rewrite. So hopefully it's calmed down a little bit. Allan (26:04.334) A little bit now we're in version 11 and they've gone they're ripping through version 11 I think they're at point six and I think they just started version 11 Beginning just at the end of last year. So Lots of changes, but that's good. You know, you got to evolve but the binding is difficult Jon (26:22.764) Yeah. Yeah. I mean, maybe one day we'll, we'll actually get lucky and some of these vendors will, you know, have enough customers that are like, Hey, we, want Maui stuff and they'll think about doing it themselves. Allan (26:33.867) You know, it's funny because they have some using sync fusion for a couple of things and they have like a maps. It's almost like a tile reader, right? So it's like a wet. It just knows how to read the tiles of like Mapbox because you give it like a URL template and that it like basically the map servers end up becoming tile servers like what's your zoom distance? What's the GPS coordinates like your X, Y and Z? Basically. Here's the tile. So it's stupid simple how these things end up working. Now, there's also one called Maps UI. People call it Mapsui. I think that's David Ortenau's fault. I'm like, dude, it's Maps UI. It's Maps UI. What are you smoking? I want some of it. So they're out there and they're kind of like a tile provider as well, but no offline because obviously, the data becomes a little bit weird at that point, right? The shape systems don't work the same, right? So if I want to take in a huge vector database, obviously it's usually custom formats. I think it's really only Esri that does like a standard, the kind of SQLite databases, which is great for offline. Again, that's probably why they're the gold standard to us. Jon (27:50.882) Yeah, No, I, yeah. Map, map UI is an, it was that one free. that, does that one work Allan (27:57.269) So it's open source. There's several people maintaining it as far as I know, and it supports like everything. But really what it is is it's a very smart way of just reading tiles and sucking them in. So it'll do open street maps, it'll do Mapbox, it'll do, I don't know, you name it. I'm pretty sure it does pretty much all of them, right? Because it's like, here's the tiles, get the tiles. But again, you have to go and register with the service because that's really what you're paying for at the end of it is yes, you've been given an API and maybe some sort of nice SDK, but it's really the massive amounts of hits you're about to place on their server, right? Because I mean, if you think about it, it's downloading like a trillion images all the time. I think even just from, you know, my overview of Toronto, just to kind of take that top level view is usually about, you know, four tiles across, four tiles down, so 16 tiles from a certain view, 16 images. Get their server, pull it in. Jon (28:57.206) Yeah, so they're not vector doing vector stuff at all or? Allan (29:01.684) I think they are, it doesn't quite like you can't really do tiles like that, right? Like it's, it's, it's weird. Well, I don't know what you tell me, but you can see the grid. You can see the grid of images. It's downloading. Jon (29:08.75) I don't know why Jon (29:15.089) yeah, yeah, I get, yeah, but like why can't, you know, the, those particular square of that grid be a vector form to speed things up? don't Allan (29:23.475) Well, slow to render SVG. know a lot of people are using it, you have a lot of SVG on a website and they tend to start. What are doing? Jon (29:31.532) Yeah, well SVG, mean, don't get me started. Like I say it, you why aren't they vectors? And then in the same breath, I'll say like SVGs are terrible. They are. Right. And that's even hard. Like SVG, the problem with SVGs, if we're gonna, you know, just I need to get this off my chest. Yeah. Is that the spec Allan (29:40.799) Yeah, you know better. You know better. They're very harsh to render. That's why you've got resize the tizer in Maui so that we don't have to go. Allan (29:55.465) do it. know, vent, vent. Let's hear your rage, Jon (30:00.482) basically a web browser. To implement them properly, there's like, know, styling, I think you can even technically have JavaScript in some of the newer SVG specs and stuff. Like it's a web browser. And you're asking to shove like potentially a hundred of those on a page. A hundred web views essentially. Like it's not quite the same, but it's in there, Allan (30:02.964) Yeah. Allan (30:20.863) Yeah. Yeah. Yeah. Do the SVG. Jon (30:28.482) Which is why Google with Android had their Android vector drawables, which is a subset of it, which is basically like, OK, let's cut out all the heavy stuff. And you can have paths and shapes and stuff like that, which is not unreasonable. The problem is it was a really bad implementation. Allan (30:34.719) Of course. Allan (30:47.157) custom format. Yes, Android does. Stop doing, stop trying to reinvent the wheel. Just do the thing. Jon (30:53.166) So even with resizotizer, you're going to run into cases where you have a vector that it just doesn't know how to properly parse out because it does crazy things. And same with any kind of area, right? Specs are how you should implement things. The reality of how people actually implement those specs is a different thing in practice. I do. Yeah. Yeah. Thanks for listening. Allan (31:13.27) Do feel better, John? Do you feel vented? Okay, that's good, that's good. SVGs, yeah, so that's why they don't do vectors. You answered your own question. Now, I am pretty sure if you're doing offline formats, because if you watch how, and again, I don't know, I've never seen the source code, so I am ignorant to it, but if you watch kind of some of them, like the main SDKs with their own shapefiles, so like an ArcGIS, if you watch it render, Jon (31:20.386) Mm -hmm, fair. Okay, well, we got Allan (31:40.475) it does look like it's taking vector data and rendering it real time. Again, not the implementer. I'm sure I could ask the implementer, but right. Jon (31:48.064) And yeah, and they could do their own version of that too, right? Like it wouldn't be that crazy to like, even if you think of just like the shapes API that we have in Maui, like you could probably do something like that, define your own kind of subset of what a vector looks like. Yeah. Allan (32:03.051) drawing some lines on the screen, man. I'm doing it fast. it exists, maps are great, offline is hard for them, and every vendor seems to have it slightly different. Yeah. What else? Just use ArcGIS if you need a gold standard. Jon (32:23.874) Yeah, yeah, no, there's some good options out there. And like, if you're not a Maps, you know, first kind of heavy app, probably a lot of those are more than enough. Allan (32:26.889) So. Allan (32:33.693) So I was out several years ago. We flew on a plane and obviously flying has become a gong show of WTF, what's going on here? Where are we sitting? you're not sitting beside the person that you booked the tickets with eight months ago. They're gonna sit way up there and the other party you're traveling with, they're gonna sit way back there. And the worst was is that you still wanna talk to them or send funny jokes, but Jon (32:54.125) Mm -hmm. Allan (33:00.173) You know, usually you get put on a plane. If it was that screwed up, usually get put on a plane without internet. And I mean, you know, us, both of us are getting internet the second we step on that plane. If it's there. Because. Because, you know, non farmer John and definitely high maintenance me, I want my internet on a plane because I need something to do. Jon (33:11.148) yeah, I don't remember the last time that I've flown that I didn't have internet. Jon (33:21.966) Well, and truthfully, like the last time I tried, so a couple of flights ago, maybe it was to Belize, we had internet or like you could buy it and I did, but you know, the beginning of it was like, what if I set up my machine so that I'm pretty confident I can do this all offline, right? Just out of curiosity. And actually from a Maui perspective, there there's always a little bit of a push to like, you know, these kind of air gap scenarios, like how if I install Visual Studio, you know, do I have all the things I need to actually like build a Hello World Maui app? And the short answer is, I don't know where that sits these days. I know there was like, you know, originally some kind of pushes to make that, make sure it made sense. But at the end of the day, it's like... with a computer, it's worse. And as a developer, it's worse because the minute you need something, you're like, that package isn't cached locally and my project's trying to restore. Now I can't do anything. Or, you know, I had it where I was testing with my app. And usually when I'm developing my app, I have a, I mean, I have a test server. I'll tell you, that's what I use. even locally developing, you know, just to kind of not make it complicated and try and host stuff locally. just, I test against the server and it's like, okay, I tried to do that on the one flight a few years ago that we didn't have the option to buy internet. I had everything great except for that piece of the puzzle that I just hadn't thought of. like, yeah, of course. There's no server here. So I ended up like, well yeah, but you got to download that ahead of time Allan (35:04.206) and adjust on your machine, living and breathing. Jon (35:06.36) Well, because I don't have like a cosmic goods go back to Cosmos, right? So this thing's Cosmos base. So I didn't it's all that. So. Allan (35:10.984) yeah, there's no docker. Well, there's like some sort of strange ass emulator that they were high as a kite when they made. Jon (35:16.534) Yeah, what I ended up doing was I had my database or data layer as a service. So I ended up just making a fake one to plug in so I could throw it against. But that took up half the flight instead of working on the thing I wanted to work Allan (35:28.966) There you Allan (35:33.672) Did you engineer it to the max though? Yeah, okay. So on this flight, I had no internet because they had already obviously already screwed up everything else. And it's like you still want to message somebody and be like, my God, I got this annoying person sitting beside me. Or like, what are we going to do when we get there? Or you know, whatever stupid thing it was, because there's no texting, right? And this was a huge flight we were on. So I didn't even know where Jon (35:36.706) Yeah, probably. Allan (36:02.16) you know, all the people I was flying with, because of course I was like, I'll go sit by myself. And then of course, I don't pay any attention because now I'm, you know, you know how when I get angry, I'm just like nuclear, right? So I'm like, I'm just going to go sit and pay any attention to anything going on because I was like, stupid flight. So we got there and I was mad because we didn't know anything. And like what we're going to do, we didn't have a good plan. We got off the plane. We didn't have a good plan to find each other. And it was like It was just a mess. So going back, apparently we got the same kind of flight situation. So when we were on vacation, of course, I bring my laptop. I am a nerd. Sorry. Sometimes I get ideas. I want to start coding something and it'll be like one of those times where I'm like I'm vacation burned. been in the sun for six days. I'm just going to take a take a chill. So I ended up building a little BLE chat app. Jon (36:45.71) Yeah, absolutely. Allan (36:58.204) Because a lot of people go, well, if I want to trade data and there's no internet, like if you're out in the bush and I want to send you this photo, you know, why do I need internet? So you can do it through Bluetooth. And it's actually quite fast. I mean, a lot of people think, it's BLE, it's slow. Well, you know, for a chat message, even if you've got to do multiple packets, you can still send that in the blink of an eye. Jon (37:05.186) Yeah, how do you do Jon (37:13.718) yeah, for sure. if you want to do an image and you're not going to send the full 20 meg thing over probably, Allan (37:22.196) I mean you can and it's not horrid but it's not instantaneous. Jon (37:23.608) Sure. Jon (37:27.822) Yeah. So you scale it down for your chat app and you know, it's like 500 kilobytes or not even instead. Nice little Allan (37:31.88) Yeah. So that's what I did. I scaled it down so you could still take a photo going, am here, figure it out, right? And we were all chatting through this. It was a 747. So not the biggest jet anymore, but we were chatting through this and sending pictures going, look at this, look at this weirdo in front of me. Jon (37:54.776) How did you make that? What was the architecture like? It was just peer to peer the whole way. You send something to broadcast it out and you either got it you Allan (38:03.578) Yep. Yep. Yeah, wasn't doing, well, I could see who got it, right? If there was people in the chat, right? So, I mean, I didn't put any authentication, so if somebody wanted to come in, I mean, sure, if you know the protocol, go ahead. Like I just had a host running on each one and a client running on each one and it was just a constant exchange. And you could see if they had, I put so you could see if the message, they have read the message, if they had seen it. Jon (38:10.7) Okay, right, you could hack it. Jon (38:17.334) sure. Allan (38:33.926) So was pretty cool and it got the job done. could message people. Sometimes it would take a second if they were moving or whatever. And the app had to be hot, right? Because that's the thing. You can't run a BLE client like a host in the background. That's where iOS is no dice. Of course, I had one friend that was on Android. He was like, well, mine can do it. OK, OK. But you're still on Android. Jon (38:51.373) Mm -hmm. Jon (38:59.022) Yeah, well, look at your battery at the end of the flight, okay? Allan (39:02.788) Yeah okay so he had an android but it worked it was a .NET maui. I mean I didn't make it look pretty but that's not my forte it doesn't have to look pretty but it was quite functional. You could send a jpeg photo we could all reply and laugh and no emojis because I hate it well surprisingly I do hate emojis they're they're quite annoying. We come from the ASCII era we invented those damn things they've they've been stolen from us. Jon (39:12.194) That's the word. Allan (39:30.876) So it was just send a photo and send text and a name. And it had my name on it. right, so that's. Jon (39:36.536) Yeah, no, that's a neat way to do it. mean, yeah, there's lots of, I remember Google used to have a library for this too, actually. I don't know whatever happened to it, if it's still a thing nearby or, yeah. Yeah. Allan (39:48.818) The nearby sync, yeah. I think they've still got something for it. I think it's more for detectionary stuff, almost like beacons, but not beacons. I don't know if it's still active. I know there's a binding for it. The Android team maintains one for it. Jon (40:03.606) Yeah, I'm, I think there, yeah, there, there probably is. I remember I did a, I don't even remember what the talk was on at one of the, the, Evolve conferences. think it was like on play services and stuff in general. And that was one of the new ones at the time. And I had made like a little app that everybody could go download in the audience and then, you know, turn it on. And then it was like using the nearby API to like communicate back and forth and and find people. So was a fun little thing. Yeah, yeah. Allan (40:33.521) Did it work? I tried I tried to make one for if you remember Dan Dan Siegel had what's it called Monkey Summit or he's probably gonna kill me Monkey Conf was in Texas and he was like, dude, can you make a beacon thing like he gave me like a week to do it. I'm like, you know, it's not going to be that great. It's relatively new. Jon (40:44.526) Allan (40:59.288) what I'm doing here, but I'll see what I can do. And then we ended up getting some of these, some cheap beacons from, that flew in from somewhere on Amazon. They didn't work too well. And suffice it to say, it didn't end up working. Sorry, Dan, tried. Next time we'll get the Rolls Royce, actually we did try and get the Rolls Royce of beacons at the time, which was Estimote. Remember seeing those for offline context location and they were these pretty little rubber rubberized beacons They're gone now. I think now they just do you know with all those IOT devices they eventually roll into their own service So now you can't buy the Rolls Royce of beacons anymore because they're all like offline IOT Buyer services and we'll check the temperature and the lighting and all that stuff. We don't need you Jon (41:24.054) Yeah. yeah, yeah. I had some of those. Yep. Jon (41:39.021) right? Allan (41:52.774) You don't need your apps. Jon (41:53.026) Yeah, no, exactly. That was a, you know, kind of a, just a moment in time playing all of those beacon, beacon stuff. Allan (42:00.968) Well, the funny part is that all these IOT devices, used to be you had to sync, like you had to go up to them, right? And you had to talk to them with Bluetooth when you were in the field. now everything, like almost all IOT devices now are LTE enabled, right? Because you have like LTE providers that it's like prepaid through. Like obviously your internet, you don't pay for it on your Tesla, but it's like, it's included somehow. Jon (42:23.244) Right. It's there. Yeah. Allan (42:27.496) You paid for it, you just don't know where and when. Probably when you got the car that was like, we will charge you $500 for this thing. And you're like, okay, right? Jon (42:36.386) What, and there's also, have you ever, I'm trying to remember the name of it. I think it's like a narrow band thing, but there's, yeah, there's another like pseudo, Laura Wan is the name of it that I was thinking of. Have you ever played with that? Allan (42:43.442) Yep. Allan (42:48.784) Yes. Yeah, it's starting. That one's I think it's ultra wideband or whatever. Maybe that's the new one where they're looking at like a like a much wider range of communication and location to write because with with beacons you couldn't actually figure out where the hell it was. It was just basically broadcasting and be like, I heard it. It's great. Where did you hear from? Point me in the direction. Jon (43:13.228) Right. Right. And it's like, maybe that way. It's probably. Allan (43:19.014) So ultra wideband and a lot of the technologies, again, Apple and Google aren't talking on this, but they do exist in both OSs now. There's like a, I think it's that nearby thing you're talking about and you can find directional. And it's funny because I'm working on that now. I'm working with a company right now where they're doing locations for their cameras. They're like these trail cameras. And it's like, how do you find the thing? Jon (43:27.181) Mm -hmm. Allan (43:44.444) Right? You basically, there's no direction. There's no ultra band radio in it. So you got to blink the light or alert a speaker and you got to hope that, well, I can probably see the light in the dark, but during the day, no dice. And how loud does it speak? I like, I'm deaf, right? So if I don't, if it's not loud and ear piercing, it'd be like, it sounded like a bird to me. So. Jon (44:07.01) Well, and with that kind of thing, like, so I'm assuming in that scenario, what you would want to do is like when the camera is installed, as long as like the user remembers like, yeah, let's, let's like sync, you know, I'm, my phone is right by the camera. So GPS wise, like remember that it was here, but that only gets you within whatever. Allan (44:20.775) Yep. Allan (44:26.6) Well, these, so the funny part is, is these LTE things will do that. Like a lot of them will have GPS, but it's non -specific. So it could be like 20 meters, right? And you're trying to find this thing in some trees. You're like, so you can still get a BLE signal out to it. Like it's listening. So you can broadcast a, hey, you know, make a loud sound so I can hear like, whoo, whoo. Yeah. So I can find Jon (44:37.271) Right. So you're Jon (44:43.863) Mm -hmm. Jon (44:48.28) Like a, yeah, like a wake up and tell me something. Allan (44:53.512) So that's kind of like the and that's a good like offline kind of scenario because maybe the battery is like almost dead so it can't do its LT signal. Maybe it doesn't have an LT signal for whatever reason, like it's dropped, you know, an owl came and stood on its antenna and broke it off. Who knows? The wild things happen to stuff in the bush. So these are kind of some of those cool scenarios and a lot of people don't write their apps like that. They just think it's no internet. Jon (45:03.394) Mm -hmm. Allan (45:23.1) No work, no work. Is it? You're dead. So, you know, if, then we're supposed to have a big solar storm, this like now, right? Yeah. Another one, a big one's coming. So, you know, get ready because what are we going to do if the internet's out Bluetooth your friend, you can still do data Bluetooth five. Actually. The funny thing is, is we were talking about that photo earlier sending if you're using Bluetooth five and you can get like the coded five range, you can. Jon (45:24.365) Yeah, Jon (45:32.96) Again, another one. Okay. Jon (45:42.51) Yeah. Yeah. Allan (45:53.384) I think it's up to two megabit at a range, like at a distance. So now we're talking, right? Like now I can push, you know, some serious data with that. It's hard to get again, if you're working in the Android world, some of those Android phones are like, you don't need that. We want to be cheaper, cheaper phone, cheaper Bluetooth chip. But anyhow, it is out there. So you can, yeah, two megabits, to clap at. Jon (46:00.216) Yeah, that's not bad. Jon (46:16.408) Yeah, that's not bad. Jon (46:21.262) I mean, yeah, that'll get images back and forth reasonably fast. That's 2 megabit. That would have been thrilled with 2 megabit when we had dial -up. That would have been great. Allan (46:30.662) Maybe the next thing I got to do for that app, because I still have that app. I was thinking about sharing it a while ago, maybe I could do like FaceTime. FaceTime connection. And be like, I am here. Look for the guy giving the middle finger at the back of the plane. See me? See me? I see you. Good. Thanks, man. Jon (46:49.112) going to be like super, super low res to get that going through Allan (46:52.774) Why? Two megabit, man, I can make it look pretty. That's not bad. Jon (46:55.118) If you get, yeah, if you're going to get two megabit with everybody and all the interference and all the rows in between you, no Allan (47:01.64) It's fair. It is peer to peer. I mean, I can't expect my, I could just say it's no, that's peer to one other peer. How about Jon (47:09.58) Yeah, you're not going to have a conference call on the plane with Allan (47:12.146) You know, well, even teams can't do that properly half the time. How many times do you look at it and somebody's been clipped off or kicked off the call and you're like, this is online, man. This is on my super internet. Why is this a thing? Jon (47:24.738) So with the whole offline thing, like another aspect that I don't know if you have dealt with much or needed to, because a lot of stuff is kind of like you have a connection and you do something with it when you can. But like, what about, you know, pause and resume and kind of like architecting things that way? Like if you've got a bigger thing to send around, is that something that you've done much with where you try and implement something like Allan (47:51.784) So I have a lot of things, again, Shiny has like a offline uploader, downloader type thing, so for big blobs, not like your text or even your offline data, it's more like an image, yeah, so it might be like a fully, like this is my 15 meg selfie that I want to go through. Jon (48:04.994) Like I'm uploading a big image and I want to get it Jon (48:13.55) Mm -hmm. Allan (48:15.598) and I want it to compress on the server so the server can see like here's your ultra quality, here's our compressed version, here's our analytics, you know, the whole nine yards, right? So often people aren't really, I guess you could say it's an offline scenario because your app, you can't just do HTTP client, the blob and then if the user backgrounds your app, hope that the image made it because usually it's just been canceled. Jon (48:28.078) Mm -hmm. Allan (48:43.014) And that image, when you do that, is just gone. Because it just trimmed, like the app just stopped and that's gone. So there is technologies in Android and iOS to queue up your downloads or uploads. And those are cool because they'll work with, know, you've got internet, send the thing. you don't want to send it over LTE, you want to wait for Wi -Fi. Jon (49:11.19) Right. But, but do they, do they do any like of the, just back and forth, like the, the, with, I dunno, like, I don't even know anymore if HTTP has, like, I know there's like range requests and stuff like that. Like, is there a spec where it's like, you know, I, I negotiating at the HTTP protocol level and upload that didn't make it all the way through. And I know where it stopped and that kind of stuff and how to pick it back up. Like, does it do any of that for Allan (49:11.612) you know, those are kind of some of the conditions. Allan (49:37.64) So downloads, yes, that's the range requests are there. They kind of usually just work for uploads. There is a spec, Apple's kind of on it, but Apple's appling the protocol as they do. So I'm not really sure where we're at with uploads. And the problem is, is sometimes you don't know, did it get a good CRC? Like you gotta, you gotta get. I'm almost of the frame where you don't want to pause and resume based on connection because it's like, did those last few packets actually eat dirt? In which case you're to be like, here's my photo and in the middle of it, my face is all bleh, right? I mean, it's going to be anyways, but like extra pixely, like a Minecraft character, right? So I don't know. It's pick your poison, I guess. Jon (50:25.036) Yeah, what made me think of it was, when I mentioned dial up and thinking back to the days where, know, you, your connection would drop in the middle of a big download. Like, I don't, I don't know you ever got this, like you'd queue up something overnight and then it would like, you'd like pray in the morning. It would have gone through. and then eventually, you know, I got onto like the auto dialer thing and the download managers that knew how to resume Allan (50:35.196) Yeah. Allan (50:47.964) Yep, do you remember it? I remember the app too, cause it was fantastic back in the day. Get Right. Do you remember it? It had that cool little red, red and blue icon. that was the date. That thing was awesome in its day and it would go out and it would multi -part download like different parts of the stream. that thing was massively ahead of its time. Jon (50:52.406) Yeah. Yes, that's it. Jon (51:01.175) Yeah. Jon (51:10.392) There's, there's a library out there too. If you, mean, I haven't really bothered with it lately since I finally, you know, got reasonable internet here. but Aria two is like a library. That's kind of like that. It's a newer version and it'll like split up connections. And it just, if you ever, actually, if you, if you use this, probably is a good one to throw on like a tips and tricks and whatever episode. But, if you're downloading X code, if you use the code, the app X codes, I don't know if you have ever used Allan (51:38.736) Yep, I use it all the time. You gotta live by Jon (51:40.27) There's an option in there to tell it to use ARIA 2 to download and it's just like brrrr Allan (51:48.296) Really? I don't think I've ever paid attention to that option. I gotta go download the new Xcode 16 anyway, so, cause they released a new beta, so I'm gonna try it and see. Jon (51:51.882) so fast. Jon (51:56.076) Yeah, there you go. So try that out. and then I also made me think of another fun story from back in the day. with range requests and this isn't quite mobile, but it is in the sense that with, with Xamarin, when we used to have the bindings for the support libraries, I don't know if you remember at one point in the SDK manager, those came in like one massive zip file, all of the versions they ever shipped, they kept just making a bigger zip Allan (52:20.988) Yep. Yeah. Yeah. Yeah. Jon (52:26.39) And we couldn't redistribute those because the licensing on those at the time, you know, we were being careful, right? Like it was maybe okay, but it wasn't super clear that like it wasn't covered by the Android SDK license, which kind of said not to do that. So we didn't do it because we want to be careful. And so we had to figure out first of all, okay, when you use those NuGet packages, we need to get the native files from Google. as a build task, let's go download that zip file and unpack it for you and get that out. Well, the problem was that at one point those things are like three or 400 megs, right? They're big files. So. Allan (53:06.14) I remember too, if there was a problem downloading it though, you had like a corrupt zip file and I'd be like, what did you do to me? You have to go in and find that directory and delete it and try again. Jon (53:08.686) yeah, right. Exactly. And then you start it over And I remember too, at the time, know, enough, there were enough developers in like, you know, areas of the world that didn't have the best internet that just downloading like 500 megs was not great. You know, they might've had like bandwidth quotas and stuff. So we had this crazy idea. my, my old manager and I, and he had just kind of said like, I wonder if we could just download the parts we need. And I'm like, have an idea. And so, you know, I kind of knew range request was a thing with HTTP. And I'm like, if they implement this on the server, I know how we're going to do this. And sure enough, Google's HTTP server for those files did implement it, which was great. So what we ended up doing is whenever there was a new version that came out, the zip file itself was version named. So like you could always repeatably download the same zip if you wanted to, which is also necessary here. We would go download that zip file. Allan (53:59.228) Okay. Jon (54:14.54) we would run it through a little tool that would look at the zip and look at all of the archive entries and their offsets within that zip file in the central directory. And then we would just make a metadata file that said, okay, for this zip, we care about these specific ranges and we don't even have to download like the central directory from the zip file. can actually just go use the HTTP range request headers. say, give me this chunk of like one meg and I can decompress that myself, cause I know it's all zip compressed. And then we would just go grab like the 10 megs of the, like the three or 400 megabyte file that we needed, which was, which was one of my favorite things that I have gotten to like work on and like figure out and think through, right? Like just a fun challenge to code against. Yeah, it was cool. Allan (54:52.313) Very clever. Allan (54:56.697) Mmm, very clever. Allan (55:10.046) One, mean, that's, I would say that's out in the wild. You still gotta worry about those offline and partial downloads, well, I mean, on your computer because 500 megs, I mean, it's still nothing to laugh at for sure, but you know. Well, now Apple's finally fragmented them out and I'm not sure if we're better or worse, but we're here. Jon (55:15.074) Yeah, exactly. Exactly. Jon (55:27.0) Yeah, not even today it isn't, but you know, it's more reasonable. Yeah, I know. Well, like Xcode is still, the core of it is still pretty big, right? And then, yeah, then it's like, I got that installed and now I also have to go install the parts of, you know, emulators and stuff that I want to use. Allan (55:39.342) yeah, it's brutal. Allan (55:48.732) Emulators who use those Jon (55:50.37) keep waiting for them to figure out how to better patch versions or break it out more into components that are more static. Allan (56:00.22) That's never gonna happen. If you have an Apple, you have the best internet in the world, because it's the best of everything. Jon (56:04.694) Well, and that's, that's what it boils down to, right? Like you have to, and that was a pain for me before I got fiber here finally, which wasn't that long ago. It's like I would, my internet was decent, but it wasn't that decent. And so, you know, I would go, yeah, I would go download the X code and I would put it on like my NAS on my network so that I could get it on all my other machines and stuff. And now I just download it everywhere. It's Allan (56:18.086) I heard you frequently complain about it so is. Allan (56:29.444) It was like your only weak point in your armor where you could actually phase you because I'd be like, yeah, I just downloaded and you'd be like, damn it. I'm still waiting. It's still going. I'm like, yeah, mine's done. Be like, I hate it here. I gotta get, they gotta have a better internet. You've, you finally got it. Just for the record, John practically camped out in his lawn and I'm pretty sure those internet guys were like, it's him again. Here comes the, here comes that guy. Jon (56:52.034) Yeah, well, thought At one point, you know, basically somebody said, you know, in not so many words as like, yeah, the, reason that you're getting years hooked up now instead of in like six months from now, which was the original plan. cause we don't, we don't want to hear it from you anymore. It's like the great it worked. Allan (57:10.843) See, but before you may as well have been in the wild. Your internet sucked. So there you go. You had to deal with a lot of this junk. Not IOT levels, but were you an LTE connection basically? Jon (57:17.102) Yeah, it was. was. It wasn't great. That's right. No, no, no. We had like fixed wireless to a local provider. And I mean, I paid dearly for it. had at the end, think I had a hundred megabits down and 20 up, which was actually serviceable. Yeah, but it wasn't great. It wasn't great. Allan (57:42.211) You poor guy, that's miserable. You were in the wild. Now you're non -farmer, John. You don't have to download all your maps offline overnight so that you can have GPS. Jon (57:48.586) I was now I've joined civilization and have adequate resources. Jon (57:57.966) That's right. Don't have to use get right anymore. Allan (58:02.235) yeah, it's a good app though. It's a good app. That was back in the Windows 98 era. And you had to have that too, because Windows was going to crash, right? So then it would reboot and start getting right. Yeah, it was amazing. Jon (58:04.226) Yeah, was. great. Jon (58:11.04) yeah, something was going to go wrong. Windows is going to crash. Someone was going to call or like try faxing on the second line that, you know, the dial -up was on and anything, any, any number of Allan (58:23.286) So our packages of the week I figured was probably I don't know there was one we were talking about we talked about all the maps so they don't get they don't get the title because they had their own spot but I wanted to call out I'm gonna call out my own shiny BLE hosting because that was good for my chat app but there's another one out there Jon (58:32.515) Mm -hmm. Allan (58:44.41) that seems to do like everything. I think he covers way more platforms than I do. I apologize if I don't say it right because it's a different name. It's called In The Hand. That's the organization. But the library's the library branding is 32 feet and they do a BLE client and a BLE server. And I think they do a lot more platforms than I do. He cares about Windows and Jon (59:02.968) Does there? Jon (59:12.108) Yeah. Allan (59:12.587) I think that the person that programs this is actually one of those Windows lovers. So I think he deals with Windows first. It's good for you. If you like Windows. Jon (59:20.574) Do you think there's a metric version of it too? Allan (59:24.085) a metric version of it. Jon (59:26.062) Yeah, 32 feet, maybe 32 meters or 10 meters or something. Allan (59:28.976) my god, That's... You know, we're done when John starts making those jokes. I was like, what in the hell are you talking about? Jon (59:34.743) Yeah, The other one I have is, you think, does this one pull in reactive into Allan (59:44.597) No it does not John. Mine has reactive. It is but it works fantastic. I can deal with all of the Bluetooth errors in one stream and trust me if you've done enough support you want that. You want Jon (59:46.102) OK, good, good. Yeah, I know yours does. Jon (59:55.352) So what's, Jon (01:00:00.076) What's the difference between like, you you mentioned platforms and stuff. Like, do you have you use this one much? I'm just curious, like what, what, what it might have that yours does and or vice Allan (01:00:05.739) I have not, obviously, because I have my own. I have not used this one personally. think he kind of took by the looks of the source code, he kind of took the same route that you guys did originally with Xamarin Essentials with your kind of weird static partial stuff. so it's I call it weird because it was weird. He just really took a took a kind of coolish approach. Annoying for us, the eye lovers, but still it worked. Jon (01:00:22.613) Mm, yeah. Jon (01:00:27.054) Yeah, it was. Allan (01:00:35.274) So it looks like he's got that kind of approach. But again, a wide range of support, async tasks all the way. I didn't check if there was like async enumerables, which by the way, I know you hate RX. I have considered using async enumerables and getting rid of RX. Just, I don't know. Bluetooth is the one place where I feel RX shines. Shines. Jon (01:00:52.6) Hmm? Jon (01:01:00.844) Well, our RX probably can wrap those too easily, right? Allan (01:01:04.397) Well, because there's so many things you have to do with RX anyways. You have to transform the bytes. You have to prepare for errors anywhere in the stream. There's usually multiple connections to multiple characters. This is crazy. Just the one place you want RX in my opinion is Bluetooth. I could take it out of the rest of shiny. I grown about it, but I could take it to the rest of shiny and shiny would be fine. Bluetooth is where it excelled. It really should be there. timeouts, all that stuff. If you haven't worked with Bluetooth, you don't really know how much you want the thing until it's not there. Jon (01:01:42.584) Yeah, yeah, that's fair. Bluetooth is one of those ones. I still have never really done anything with it, but it's always one of those areas that I'm like, that would be fun to use. just haven't really stumbled upon the right use case for it, I guess. Yeah, I was thinking with the Meadow stuff that, because Meadow can do Bluetooth. I was contemplating trying to do that to like do the wifi setup, right? So like if you ever wanted to actually Allan (01:01:58.521) here now. Jon (01:02:12.888) kind of quote unquote ship a product and IOT device with that. The one kind of thing that it falls down on right now is like there's the way you configure the wifi and stuff is like in a text file, right? So I had always had the thought it'd be neat to kind of make a generic Bluetooth based configuration thing library, like client and server for the device itself. Allan (01:02:21.102) Yeah. Allan (01:02:36.329) Let's almost to the mark now. Like if you configure like an ecobee or a, you know, it connects through it through Bluetooth and because it's like, I don't know how to talk to wifi right now. Teach me. So it connects through Bluetooth. They talk. You end up asking, can I, can I share wifi details with this thing that's asking for them? Yes, I can. Over it goes. You know, Bob's your uncle that things up and running on wifi. Jon (01:03:01.666) Yeah, exactly. that's almost like, I know a lot of devices also kind of got into the, they have a hotspot, like an access point, right? And you connect to that and then it does its thing through that. But that's, that's always been clunky to me and kind of weird. like the whole, like Bluetooth is just a really seemingly nicer way to do that whole thing. So yeah, that's, that's one area, but beyond that, Allan (01:03:15.143) yeah. Allan (01:03:23.35) And they're basically the chipsets are coming built with Wi -Fi and Bluetooth now, like as a solid chip. So it's like, why bother? But I have to do that with all my smart plugs right now. I have to go and connect to their Wi -Fi to configure them. it's like, why don't? Jon (01:03:38.422) And yeah, it's just a pain. then like you, if you, something doesn't work and like you're, you're in like your basement trying to do it, then you're like, I got to Google something. Now I got to flip back to my normal wifi and yeah, no, no good Bluetooth is the way. Well, that that's good. Yeah. I'll have to, I'll have to think of a use case that I actually want to do for it sometime. Cause it's, it's one those, like I said, one of those areas that I think is a lot of fun to kind of work with from a developer perspective. Allan (01:04:04.16) cool sensors, Jon (01:04:06.358) Yeah, yeah, I've thought about that too. I've, yeah, I know they're all, they're all wired in though already, although somebody did one and I think, I think it was using Bluetooth, which I've considered. So I have a pressure sensor. I know we're over time already, but here, this is the last thing. I have a pressure sensor that goes into the filter and I I'm using I2C to communicate, but the cable Allan (01:04:10.218) cool math your way into Bluetooth sensors. Jon (01:04:35.104) a touch long to do that reliably with. so sometimes the data kind of gets weird. and so, you know, in theory I could just put a little IOT chip on right on there, battery powered, or even plug it in, like run a cable with the USB power. That's fine. and then just Bluetooth the data back and forth to read the sensor instead of, like, instead of trying to hook everything up to the one module, like start breaking it out into individual pieces more. Allan (01:04:57.299) There you go. Allan (01:05:04.115) connectivity in the wild. Jon (01:05:05.868) Yeah, yeah, we'll see. All right. Well, I think, I think that'll do it since we're, we're over and starting to get into, you know, random, slightly related, but not quite topics. So, yeah, if you are going to do anything after the show, it should be to go and subscribe on YouTube because this stuff's on YouTube now for one. So go there, help those numbers out, give us a boost. did the, what did the young and say like, and subscribe smash that like something like Allan (01:05:07.869) There you Allan (01:05:35.389) I don't know man, I don't bother trying. My daughter says the word, you slayed it. And it's like, the hell did you just say? Jon (01:05:37.485) Yeah, I'm not. yeah. There was some other ones the other day that I was like, I've never heard that term before that kids are using. Yeah, we're old. Yeah. So go slay and smash that like button if that's what you're going to do. And then on the slightly older, more mature, well, not mature because that's not true, clearly, audience perspective. Allan (01:05:47.571) You slayed it dad, you slayed it. Okay. Jon (01:06:09.688) The podcasting side is still there too, right? So there's the five stars that you can leave us on Apple, Spotify, all the places. And we did, we'll have to see if we can incorporate this one in the next show. We got some listener feedback coming in now. And if you'd like to send us some as well, maybe we'll even do an episode at some point just based on that, because you know, starting to trickle in. Send us that feedback, gonemobile .io is the website and you can figure Allan (01:06:33.531) All right. Jon (01:06:39.608) from the many ways that you can send that feedback to us from that website. So do that. All right. Thanks all. See you next time. Allan (01:06:46.863) Yay. See you.