mergeconflict281 === [00:00:00] James: Frank, this is episode one of 2 81, something like that. It's not, it's not, it's not technically 2 84, a lightening topic brown, but you know, it was done at camp last week and dinette six and all the things we just wanted to do, we couldn't, we couldn't do it. I felt like we had to do that episode at that time. [00:00:26] Frank: Plus it's really, really classic for us to be off by one on these lightening topic episodes. I think we've made like this Mia Copa, like two times, three times in the history of the show. So I don't not feel bad at all being at episode, whatever 2 81 for a lightning talk. This is a lightening talk. I'm excited because I totally forgot until you started rattling off a bunch of topics. I was like, oh geez, it's one. I'm excited. [00:00:50] James: I'm a big fan because if you're a new listener to the podcast, cause you saw our podcast highlighted add on that comp one, we appreciate you being here. We're here every single Monday. It's talking about awesome things in tech and specifically every 10th episode, usually on the zero, we'd like to do lightening topics. These are things that you've asked us to talk about, but we've been too lazy to do a full episode on. So we do five minutes, six topic, total 30 minutes, breaking it down. Number one. App sales now sending Lena app sales, but in app upgrade update sales for everybody, because about how many episodes ago? 20 episodes ago, I did a, maybe it was the last lightening topic. No is episode 2 71, uh, literally 10 episodes ago. How not to monetize an app. We talked about how to. Beside a sort of productize and feature big major releases and updates in your app. And for my cadence, my bicycle Bluetooth application, I added a big, huge update to it, which was like history and starting in stop rides and, um, a bunch of other customizations. It was a big deal. I mean, I put a whole database on my app and I wanted to celebrate. So I released the app update. I really didn't do any work and I didn't really see any difference in sales at all. So I made this little screen that pops up and I basically copied apple that pops up when there's an update, nobody reads it just to continue, but I was like, no, no, no. Continue or buy the upgrade. Now they're talking about these new features and Frank it's been out for a month and I got sales updates. [00:02:28] Frank: Okay. Okay. I feel like we did a whole series, but no, that was more on the island tracker account system, but this feels like it's it's along those lines. I'm excited for this update. I do have to say I had to push you a little bit to get the, um, upgrade to pro plus deluxe version. Um, so I'm really excited to hear how that button has performed. Uh, so are you a billionaire James? Let's [00:02:51] James: start there. Well, at one I'm not a billionaire because, uh, you know, Yeah, the sales aren't like the most spectacular thing in the world. However, in, you know, it was definitely taco money. If you want to put it that way, it can be, it could, I could, I could eat a little bit off of the money, but it's not a lot. So, so in when the first app, the app first came out, pro did pretty well. So. On iOS. For example, I was around 30, 20 to 30 upgrades on like one a day, basically I was getting, but then in the summer months now it was a summer months really dropped down. Um, but, uh, you know, so, so like August and September were 16 and seven and at the end of September, that's when I put in the. So October jumped the sales back up to 20. So it actually I'm from seven to 20 and this month already, we are at 12 and we still have half to go. So I will say there's a boost there over on. Uh, Android. This was the biggest month. October was the biggest month that I've ever had. Um, normally I was ranging around like $40 a month. It dropped down to 20. So like the, the curves match on iOS and Android, by the way. So they kind of curved down bop, bop, bop, and then it went from about 35 to $40 up to $60. So that's a 50% increase in sales. Between the two of them, I would say. So. And on iOS specifically, it jumped nearly double a month over month, which is a pretty big deal. I would say now I can't contribute it to the button, but I think, I think a little bit has to do with. [00:04:29] Frank: I'm going to take full credit for your double sales. Yeah. That that's, what's going to happen here. It's okay. So super promising. I I'm always hesitant because one month is hard to judge for me. Like, uh, my apps are definitely seasonal. I do so much better in the fall and the winter than I do in the summer. And so there are just upticks like that, that happen naturally, but a two X. You know, or, um, whatever you wanna call that increase. Uh that's uh, that's substantial. We can't do the stats on it until we have multiple months, but I'm liking it. And if nothing else, uh, I do wish you had analytics on that button though, because I would like to know how many people are hitting it from the, uh, what's new screen. We both concluded. As good app developers, we have to be putting what's new screens into our apps. They are slightly annoying. But, um, how else can you expose these features that you spend so much time on, especially you were saying, like, you're not calling these apps sales, you're calling them an app things, but I mean, that's what app sales are these days. So yeah, let's roll with it. I'm proud of. [00:05:37] James: Yep. And the reason I can't track them in case anyone is curious is because this app, I made a firm stance that it was going to require zero permissions, and I was going to have zero check boxes everywhere. Specifically people were one or two people on the review cited that they were excited that, that, that finally a developer like stuck to the word of like, not actually putting anything in the app. So it requires zero permission does not even require internet permission at all to work. Um, so I did that, um, and an immediate problem. [00:06:08] Frank: Got I have a Bluetooth. I do have [00:06:09] James: Bluetooth Bluetooth to their mission, but you know, that's not one of the ones, you know, on iOS or you gotta, you gotta put in the things that you're using an ad tracking and all that stuff. So I thought about putting an app center analytics or something else, but you know, then I got internet, all this other stuff I probably should have, but I didn't. So. [00:06:26] Frank: No, it's it's great. It's great. Um, cool. So what are your plans? I, I hate to push you in the future because this was a big update and everything just going to let it ride so we can collect some statistics and all that stuff. Or do you already have like the next, uh, pro pro plus plus future planned [00:06:43] James: out? I do not. The one thing I really want to do is the latest version of Andrew. Finally got rid of the need to declare location, uh, for getting access to Bluetooth. So I would like to fix that up, uh, in, in a new release, just for the new, new, new versions of Android, because it's super annoying. Uh, and, uh, that would be it. So no holiday hacks for this application. I really feel like it's really almost feature complete at this point. I'm feeling pretty good. [00:07:12] Frank: You just had to say holiday hacks. I totally forgot about holiday hacks on now. Now I have to come up with some holiday hacks. We've still got a month left before we do that episode, everyone. So yeah, we'll get there of all right. Awesome. Uh, I don't know what else to ask about it because sales, you know, I'm not, I'm not a good salesperson. I'm just trying to live through you and find out what works and what doesn't [00:07:34] James: it's that time we're right at time. Anyways. So under the next topic, Frank, [00:07:38] Frank: all right, this is a fun one because it's a programming language. One favorite C-sharp 10 features. This is easy because C sharp just keeps getting better. Uh, people keep giving it the flack for it. Oh no. There's multiple ways to do one thing. Well, we're going to talk later in this episode, I've been dealing a lot with C plus plus lately. It's terrible. It's the worst programming language ever developed. And so coming back to C sharp and seeing the beautiful features at a dis-ease sharp just makes me happy. I love seeing the language get better. It's why I got a.net. I enough C sharp love James, do you have any C sharp 10 features that you like. Uh, [00:08:14] James: mainly it boils down to two and one, one of the tools that are actually two features in one, so kind of three features and Mads, and Dustin, describe this as shrinking your code vertically and horizontally. So the first one we'll talk about is horizontally and reclaiming Frank, those precious four spaces. Or one tab, if you will, in our source code, we all know it. Every single in every single app basically has that indentation for no good reason. And that reason is because the namespaces and now we have a file scoped. Namespaces they're the best you can just get rid of those curly braces and indent everything over and just put a semi-colon behind your namespace and you are good to go. Frank file scoped. Namespaces there. The thing of the few. [00:09:02] Frank: Okay. All right. That's a pretty good one. I like that. Um, it's going to make all my old code feel old. I'm nervous about that. This happens with C-sharp sometimes something big happens and then the old code that's old for me, it was the. Uh, the arrow operator on properties and methods and things like that code that doesn't use those just look so old. And I got a feeling the same thing going to apply to namespace block colon. Oh yeah. I'm just going to, yeah, I'm going to expect that colon everywhere. Then I hear someone did like a major refactoring of their code base to do this. And D did like a change on 5,000 files. Cause they just blanket said, I just prefer it. Therefore I'm writing. And just did their whole code base. Uh, [00:09:46] James: someone did it to asp.net core. They sent a PCR to asp.net core and they did all of it, which was fantastic because you're going to go all in, go all in, you know, do it. It's absolutely [00:09:56] Frank: insane. Now. Yeah. The, the one trick is I've noticed on the Mac you'd need, um, vs 2022 to get your seat sharp tent support. That's a blanket statement for all of us, but definitely the file scope namespace stuff. [00:10:09] James: Yes. And you can upgrade your older applications, right? You can do Lang version as long as you're compiling against the, you know, in visual studio, 20, 22 or whatever the things are there, it's a compiler feature. So it just, you know, it's not, uh, you know, you don't. You can put it in an old Xamarin at for, for, for, for all I care, you can put it anywhere. I just updated MVVM helpers, which is done at standard, you know, that already had a Langer of eight. So I upgraded it to 10. Uh, that's in there and the other one, Frank global and implicit usings. This is going to shrink down vertically the top space where we're shifting over and are shifting up. So I want my applications. I want my, my namespaces to be online. Which means I want all my usings to be in a file called global usings. And for all the system ones, I'm going to turn on implicit usings, which are different per project type. But basically those will bring all the system shenanigans that are there. Um, and I'm just gonna use global usings as much as I can everywhere. If I have to put a using statement in more than one or two files, I'm going to put it in a global using, uh, and that basically says, Hey, just use all these users. Yeah. File in this entire project and go away and never type a using statement ever again. [00:11:23] Frank: Hm. Well, there go software layering. We can no longer have distinct stacks that only know how to talk to each other through very specific interfaces. Fine. Uh, it is funny because if you install that net six and.net new a console app, the. The hello world is like console Rightline. Hello world. There's no, usings at the top. There's no indentation. It's very awkward. I know. Okay. Awkward for an old timer, like, [00:11:49] James: um, do, um, do file new blank, asp.net core app, and it's three lines of code or four lines of code. And it gives you a web API because it uses minimal API and there's no namespaces and it also used, you know, uses the, the C-sharp nine feature of the. Whatever run the main program thing or whatever. It's amazing. I don't know. I love it. I don't know. It's going to, I think that these features, I just like alone and being file new, you get, you know, nullable and you get, um, implicit usings on by default. That is going to change the game, Frank, because just imagine you're a brand new developer, like there's not all this junk around you, like learning stuff for the first time. I think it's going to make the code really. [00:12:30] Frank: Yeah, for sure. Those project files can get really out of hand. And then, I mean, project files totally separate from the language, but just from that new user perspective, keeping the project file small keeping the initial code file. Small. Definitely. Good. And I was playing with it. I actually haven't had any problems. Uh, everyone always worries about name collisions. That's what we're all worried about. Um, I actually did run into one. There's a type called index. No, don't, don't call a type index. Anyone that's a terrible name for a type, but it turns out there's a system dot index and the library I was using had an index. Oh no, it's just like, I know, like here's a type I've never even heard of and already it's name is colliding, but that's no big deal at the top of the file. You can actually use a using and say using index equals system dot index or whichever one you want. So I find that works really well. And I think you can even put that in the global usings. I think you can do a global aliases. It's yeah, it's a brave new world. Uh, sure. [00:13:26] James: Global aliases and global static using. Yeah, [00:13:30] Frank: crazy crazy. There goes console. I have five. I console I have a C-sharp 10 feature. That is impossible to explain. So can I just give it a shot? Sure. Um, have you ever tried to assign a Lambda to a VAR variable? You say like, yes, this is the greatest feature, everyone, because it's just natural. Okay. So it will be explained, uh, the. Means we don't have to type the type for the variable that we're creating we type far. And then it implies from the right-hand side, what that type should be fine works for everything except Lambdas. And it was always frustrating because like, you always felt like they had enough information. They're like, come on, come on, C-sharp figure it out, but they wouldn't let you do VAR, blah, blah, blah, equals a Lambda. And by Lambda, I mean that thing with the pointy arrow thing, Uh, you can now in C sharp 10, it's a proper functional program language where I can do all the implicit conversion. The reason they didn't do it before is Lambdas were actually way more flexible than delegates delegates are our function calling. And.net, but Lambdas are actually more generic than that. They can adapt to different delegates. And so they always resisted picking a very specific type of delegate to assign it to, but we all know there's action out there. There's action of T there's. fucking T2. You know, all the funks are out there. There's predicate. I don't know if they ever implied to predicate. Um, I have to check that one, but that was like your funk. If you're returning a pool or something, well, now VAR can do that. It does all that for you. You just put the VAR there and you know what the compiler figure it out. Cause it's just better that way anyway, but then that was good enough. All right. That totally I'm happy, but here's something they just had to show off a little and do something. You can type that yourself, instead of saying VAR, you could actually say expression and expression, and now we're Mehta programming people, and now you're getting an expression tree for whatever the junk is. You put on the right hand side there. And let me tell you, you can put out a lot of interesting junk on the right hand side. That's true. And so it's such a small feature, but at the same time, it really makes the language a lot more powerful in a lot. The functional a lot more happy to weird functional people like me that just want to make Lambdas everywhere. So yeah. [00:15:53] James: Super happy. Yeah. They, they, they, they D they use us for minimal NPS is what really powers that, because a minimum NPI, like map get mat posts takes in an, uh, um, uh, a delegate or a Lambda delegate, I believe. And the other cool part too is, you know, the other thing is you could have your Lambda at return an object, right? Like maybe it returns a string or an. And in that case, if you put a VAR, it can't figure it out because it's like, I dunno what you're going to return. But what you can do is you can put the keyword object before the Lambda and it'll then figure it out. And it's like, oh cool. I got it. It's like the weirdest thing ever, but it's amazing. Yeah. [00:16:34] Frank: And, uh, Lambdas, you usually don't put the, um, types of the parameters at usually figures all that stuff out, but in these cases, um, I, I think they're almost required if you're going to use the VAR keyword. Um, but it, it really should not be a problem at all. It's still better than typing out funk, whatever on that left-hand side. [00:16:54] James: So good. It is. Oh, good. [00:16:57] Frank: Well, uh, the last one, I just want to say they really improve the interpolated string handler. It sounds so basic and it is basic. It's pretty fundamental to the language, but they did two things that are really important to me. Uh, they created a new string doc create, I guess that's more of a library thing, but C-sharp works really well with it where you can specify the cultural. It's really, really important because.net by default, when it converts things to strings, it uses the current user interface culture, which weird, you know, like what does that even mean? Um, the default is things turn into strings that are human readable. They're supposed to be human readable promise. We all like to make things machine-readable. And for that, you want to use the invariant culture usually. Um, it's just the simplest way to make sure things can be read everywhere. You just use the invariant culture. Unfortunately, there, wasn't a great way to do that with interpolated strings. Now there is string dot create passing the culture path and then, uh, throw in your interpolated string there. And it will use that culture for all of its formatting. It's really important and serialization. So I'm just [00:18:08] James: happy to see that. Do you know what, another thing that they fixed or improved in dotnet six NC Sharpton with string. [00:18:17] Frank: Oh, I can name a few more. Uh, [00:18:21] James: let me decide as with string builders. Okay. So imagine you were using an interpolated string inside of a string builder, interpolate the strings under the hood, you string builders, like in the short code. So the problem is it would actually allocate a new string bill. So it'd be two string builders. So they fixed it and would only allocates one string builder. It's a magical anyways. Sorry. [00:18:42] Frank: Yeah. Yeah. Overall, they made it so like anyone can consume these interpolated strings as kind of like expressions. And so you can do your own meta programming on top of that to do basically whatever you want. And I think that's the trick they're using there for the string builder to make it more efficient. Uh, you can say. Very specific type that your function takes. I can't remember the name of it, but I've seen people do amazing things with it. They've done like console input using, um, a formatted string that creates like holes. And so people can just fill in the holes like a Madlibs style, all from just using, um, interpolated strings. It's fun to see the language become powerful like that. I agree. I didn't explain it well, but it's a really weird. And it's really cool. It's cool. When you can do a weird hack like that, that means [00:19:32] James: you're like, I agree. All right. We got to, even though we're way over time on it, but let's talk about the first one. Then we'll go into the second one because of the same, but different, but kind of the same, um, with dotnet six came Don MLB preview 10. And in that also came.net. Blazer integration with the blazer web view. Now, what this enables you to do is put some blazer into a dinette Maui app. Like any kind of anywhere. It could be a whole page. It could be a box. It could be string. We talked about this before, or you can make your entire Blaser app and shove it into a dotnet Maui app. So you can think of Don and Maui as the shell, but you still get access to all the native API is Donna Maui essentials. You can kind of break out of the box if you need it. But it also means that sort of some of the web browser stuff just kind of works. So if you just put like an input and say, take a photo, like it'll just, it's a web browser. So it does the thing where it just takes a photo. If you want to, or you could use native integrations too, which is cool. So Maddie and I did a session at this on vs live, uh, and Alon did want it at Donna comp on it. And you can think of this as like the third. Blazer, right? Cause there's blazer server, blazer WebAssembly and this sort of sits in the middle because you get all the power of blazer server without the need for this server. And you get also all the power of blazer WebAssembly without the. For WebAssembly because net is already running inside of a Don Moe application, which means that you don't need a server. You don't need web assembly, but it works offline and you get all of dotnet available to you. So it's really cool. And I'm all in. I think that this is the, this might be the future, Frank. It might be the future. I mean, Can [00:21:19] Frank: I pitch you a better name? Cause I got this it's blazer app, you know, [00:21:23] James: blazer server, blazer, native blazer, blazer app [00:21:28] Frank: blazer. [00:21:29] James: I, I was thinking about this today. Uh, and I was in a, uh, I was sitting around drinking a cup of coffee. And I was thinking about this cause I was like, man, I really, I'm not a blazer developer, not a web developer, but like, man, there's a lot of web developers out there and this could really help them bridge the gap to desktop and mobile and the.net world. And of course there's a bunch of other great projects out there. So you can do stuff like this, but I was like, yeah, like blades are so cool. And I love blazer and I saw the stuff you were doing with blaze. I was like, man, now frankly, just take that app and shove it in a Maui app. And then boom, he's got a web app and he's got a mobile app, all this stuff. And we showed. Comp keynote, the signal, our integration. Also, you've got to write that code once anyways. It's amazing. So what if, when you created a blazer app, Frank, it said, you know, web progressive web app, desktop mobile, and it just chipped up, up, up, up, up. Right. And it just created all the projects and did all the things for you. And so. Yeah. [00:22:23] Frank: I mean, I'm going to try, I wrote, I keep mentioning it. I wrote this cute little game of a 5,000 year old game in blazer, and I really like it. And I'm totally going to shove that into an app and a, to a dotnet six app once it's all relatively east. I think, I think I'm going to wait that long. I might try sooner, but just do it, just do it, uh, throw that puppy. In an app because I like the blazer programming model. It's a very functional declarative style of programming that mixes well with other styles of programming, you're not forced into MVVM, you're not forced to MVC. You're not forced into really anything. It feels a lot more like. Sorry, everyone. I can count up the HP, but it feels like VHB to me. And I love it for that reason. Um, so I'm totally there for that. And I think it's a small enough app. It will be a nice little example for me to try it all out because I haven't tried building a very large app in it that I totally think it will be just fine, but I'm excited to take my simple two or three page app and turn it into one of these buckets. [00:23:26] James: Yeah, I agree. Now I will say this is that with Don it Maui blazer hybrid thing. Cause also there's like this blazer integration for wind farms and WPF too. You can do kind of do the same thing there. This was actually a feature of another project that we'll talk about in a second after our amazing break. Thanks to our sponsor sync, fusion that's right. Sync, fusion, and back giving you all the controls for all the things that you need, including blazer. And on Maui and Xamarin forms and all the things out there, which means you can use all that stuff together. Like you take that same fusion. Build your blazer app with it. And then you can put it in a mobile application and a desktop application, Frank, cause it works everywhere. It's amazing. I love seeing fusion because now all of their controls are going to work everywhere with all this cool technology, no matter what you need, they got Jillian's controls. They got processors for PDFs and word docs and Excel and all this amazing stuff. So many amazing controls. All you gotta do is go to sync, fusion.com. Slash merge conflict to learn more. That is fusion.com/marriage conflict. There's a link down in the show notes below. Go check them out. Thanks to our friends over at sink fusion for sponsoring this week's. Ah, duh, [00:24:36] Frank: I love those things. Fusion ads. Thank you. Syncs fusion. Yeah. Oh, right. Well, okay. I I'm really going to confuse things. If I move on to the next topic, you really want to go here. We're going to try this. Okay. Imagine everyone you're writing your mobile app. You're using your XAML life is good, but you've also done the blazer thing where you've learned how to do like these little apt signs that inject expressions into your HTML. It's more like a template thing. And then you use a little code section at the bottom of your blazer and you're, you're writing this blazer code and you're really enjoying. The architecture, how the whole thing works. It's really fascinating, but maybe like James, you don't exactly love HTML. Maybe you're more of a XAML person. So what if James, what if you could take the blazer architecture that blazer style of programming, but apply that to XAML instead of HTML. And that's what this is. This is called the maser mobile blazer bindings, and they are. Well, I think of as very, very exciting in the mobile world, they are an experimental technology. Uh, my way is not released in these certainly are not fully released either, but, uh, the idea of using the laser programming model and an API app really entices me. What do you think? [00:25:59] James: Yeah, I agree with you. I, I believe in my, I am an MVVM developer, but I believe the MVVM. You know, is nice, ended up structure code and different things, but I really enjoy the ability to write blazer code, inject state, write the code at the bottom or in the code behind or wherever you want to do. Right. And just, it's a better way of doing data binding, I think for most things. Well, I think it would be nice. And, and I, and I do believe that the mobile blade blazer bindings does both things. It does the thing that you just said, but it also has the blazer web view. Th that part of that experiment has. Grown up out of the experiment and Donna Maui. Right. Which means that you can now take basically blazer stuff and sh and HTML stuff and put it in a dynamo yet. But this other part, what you're talking about hasn't I think it should, because then you could pick and choose and say you have a label and above. You can pick, if you want to use bindings that works great or use the blazer stuff, or guess what? You're like, I hate XAML and I just want to use HTML, just use your blazer stuff. It would be like the most flexible programming side. I love it. Frank. I agree with you. I totally forgot about the mobile blazer bindings, because to me that could, that could just be like a feature of, of Donnette Maui, right? That it supports the, the razor binding syntax. [00:27:22] Frank: Exactly. Exactly. It's really just a pre compilation step. You know, you're just taking this template language and turning it into code. It's not magic. Yeah. Well, I'm sorry. I'm sorry. There are fine details. Blazer is a little bit of magic. It's got some great state restoration and things like that, but you nailed it there. Uh, having the same data model and then being able to choose which UI layer you kind of want to use in that part of the app. Like if it's, uh, if it's a Webby thing, use HTML, have fun, use the blazer style for that. And if it's a more API thing, you know, you want to use native controls, you want to feel like native controls. Then you could use the, the Maui country. It's about not HTML. I think it would be genius to have both of those together. Problem is obviously that's two APS. They have to support. My only hope is that blazer slash razor. A lot of this is built on, uh, the razor engine and how it's able to do a lot of this stuff. Um, it just depends on how generic echoed is and how well they could make that work for XAML versus HTML. But I would love to see us have both options because. I I like HTML is she is fine, but really love is the blazer style of programming. I think that's a good way to write user interfaces and I would love to be able to apply that to native. [00:28:42] James: Yeah, I agree. I, the more I look at the samples, I'm like, mm, I'm going to go speak with Alon next week. That's for sure. I don't know. I, you know, it's like, I'm a manager now. I don't know what's up. All I know is that these things are over there. The project's still going, they updated it last month. So it's definitely there. And people I think are pretty much using it, which is pretty. And I think the thing with the blazer mobile bindings that was a little bit complicated was that for every control, even custom controls, you needed like a mobile blazer binding version of it. Yeah. I think that's the thing that was always an issue. And then you need to like a whole nother ecosystem and that's too much. So like figuring out how to magically mash that those two things together, uh, I think would be pretty, pretty cool. Like I wonder if there's a world where. Not use the, like at usings and at inject at top and still have like the code and the binding stuff. And that would work. That'd be kind of. [00:29:36] Frank: Oh, that ad at inject and things. Those are just, um, iOS, C containers, stuff like that. That's not necessary. Um, it's, it's all doable. It's all doable. Um, I mean, because it's the same problem that like fabulous has a comment has you're repeating the basic controls. Um, you know, you need. Multiple blazer version. You need your comment version. You need, honestly, you need your XAML version. You need your, which one did I leave off your fabulous version? So we have these four or five different versions of button already. They're all eventually going down to I button or I button view to be actually rendered out by the Maui engine. Uh, I don't feel so bad about having multiple front ends to the same backend renderer. That's kind of a part of the design of Maui. I don't know how important it is to their design these days. But I remember in the early days it was definitely a part of the design they wanted to support multiple front [00:30:33] James: ends to it. I wonder if you're right. I wonder if that's. In the current Xamarin forms like the handlers are so more complicated, do a bunch of work. I wonder now if they're like lightweight shims, basically with a new handler model, instead of the custom render or model, I wonder has a whole bunch easier. I know there is a pull request. I'm looking at it here on the mobile blinding mobile bloop about it, um, to use Donna Maui. So there is actually one that someone started a pull request, 785 changes. So who knows, but that'd be. Yeah, [00:31:07] Frank: yeah, yeah. Just a project that definitely deserves some attention. Yeah. And I wish more people were talking about it, honestly. [00:31:14] James: All right, Frank, let's talk about C plus plus. [00:31:16] Frank: Let's do it. Let's do it. I, I, okay. Look originally when I was thinking of this topic, I was like, I just want to complain for five minutes, but I'm going to try to pitch this to a positive way. But James, in a nutshell, I've been working a lot with C plus plus lately. We, I think we did a whole episode where I talked about, I wrote a C compiler to help out in, I circuit. Because I circuit lets you program Arduinos or Trinos are programmed and see it's not true. Arduinos are actually programmed in C plus plus, and I've been forcing myself to add C plus plus features to it. I'm getting tired of writing a C plus plus compiler. So James, I tried to compile clang the, uh, LLVM C plus plus compiler. It's a giant C plus plus code base. And I wanted to give a little state a report on how easy it is to build multi-platform libraries and binding. You ready for this? What do you think? How, how easy do you think it's gotten to do bindings the C plus plus libraries? Terrible. I know it's the wars. Look, I can't, it's not even the bindings. I can't even get this thing to compile. Right. So I want to first say that, uh, , which is a very popular make system these days. But as an old cranky person, I have to say, I have not seen any real improvements over the old fashioned make systems. I'm saying they all the same old areas I used to ever get, but I did want to give one, shout out one positive note to CIMIC where they've made cross compiling a tiny bit. We bet easier than it used to be, especially for us iOS developers, because it's tough now you got to build. Simulator versions for arm 64 and X 86. You got to build iOS versions for arm seven. Um, 64, thankfully, no x86. And then you got to build Mac catalyst versions for x86 and arm, and it's just becoming so much work to do all that stuff. And although clang has really improved at support, it's still just a giant bear to do cross compilation on iOS. Well, any of this ever get better, James? That's my question to [00:33:20] James: you. Oh, I don't know. Probably not. Oh, maybe. I don't know. Well, I don't know. There are, there are a crazy amount of C plus plus developers right in the world and it's, it's a very popular language and I have to imagine that it would get better to some didn't. Cause when you do C plus plus and like visual studio, is that client or is that CMake or [00:33:43] Frank: this client, right? No. In visual studio, Microsoft has their own compiler. It's a very F oh yeah. Visuals. Uh, there are like three implementations of C plus plus out there are people because it's that hard of a language to implement. There is Microsoft visual studio compiler called CLL. Uh, there is the new compiler GCC, and then. Clang, which is the LLVM new front end for C [00:34:11] James: plus. Well, with 2022 at least says that you can use, it says use Emma's build with Microsoft visual C plus plus compiler or a third-party tools that like C make with climbing or Ming Ming mingle, or w um, Or more to debug, right? I don't know. Yeah. [00:34:32] Frank: Well, th that's the build system. So the build system is configurable, but honestly, if, if you have visual studio, you want to be using Microsoft's compiler, it's pretty good. Clang has wonderful. LVMS wonderful. But its biggest thing is that it's open source and so you can get the source code to it. So ostensibly, I could compile it and then put it into. Every version of I circuit and it would be sitting there, but it's 20, 22. And these native libraries still aren't compiled for iOS. No one bothers. There are still there's one Mac build, but it's X 64. It's not even, you don't get an arm 64 build or anything like that. So it's still definitely stuck in the 1990s world where everyone's expected to download. And devote half of your life to learning the 8,000 to make files, settings, and all that, to getting things compiled. So the C plus plus world as a full set rep is it's terrible. It's always been terrible. And no one in that community ever seems to want to make it better and rent. Hopefully. Thank you. It's been, it's been therapeutic. Thank you. [00:35:38] James: Yeah. And if you are a diehard C plus plus dev, let Frank know how he can improve his life. [00:35:45] Frank: And let me say, actually I started programming and C plus plus. So a lot of what I'm saying is tongue in cheek. I do at one point in my life, I did love the language, but it's just an absolute tragedy. These days. I [00:35:56] James: totally started in C, C plus, plus that was my jam. To be honest with you, I wrote a dungeon quest, a text-based adventure with a visual asking. Thank you very much. Nice. Pretty rad. Um, so th then, you know, I, I found that code reason. I totally opened it up in visual studio and it ran just fine, which is save your [00:36:17] Frank: games. Did it ever SIG fault? Yep. [00:36:20] James: No, no, no, no. I'd save it. Save it. Save it saved like a. Awesome. [00:36:26] Frank: Yeah, I wish I could play my old games. I found a whole box of old floppy disks. I don't think I could ever, I read them be [00:36:33] James: compiled them. I have a bag of floppy disc, and I remember that before. Left college. I put all my floppy disks into the machine. So I was like, I bet I'm never going to have, or I bought like a floppy disk reader, USB, and sure enough, I, I, I backed up everything on to my Dropbox at the time or whatever it was or Google drive at the time. And it was just like a, uh, you know, a three megabyte zip file with like all my code on it. You know what I mean? So it's there, but I do still have the floppies. Aye. Aye. Aye. Aye. What's floppies. [00:37:06] Frank: You know that that's, I'm, I'm half afraid to buy the drive only to find out another floppy's actually read, because I think I was told back in the day, like 10 to 20 years, and it's been over 10 to 20 years for most of these, for me, magnetic media, sitting in a box pressed against a bunch of other magnetic media. I don't have the highest hopes. [00:37:27] James: Let's talk about Twitter, Frank. [00:37:29] Frank: Oh, right. We're going from one classic nineties invention to a classic 20 yachts. Okay. What is Twitter doing now? What did they do? [00:37:40] James: Well, Twitter has been putting out stuff and they're finally available here in Americas. Uh, there's three new things. One's been out for a while. The newsletter integration. Cause they bought review, which is the newsletter, but software I use surprisingly and it went from being paid to being free, which is really nice if you need it for you to news. Yeah. It's built right in, and there's a newsletter section. And if you go to my profile, Frank, I'll show you a few new things. There's a newsletter there and you can subscribe with one click. And then when I tweet about a newsletter and you click on it, it will also recommend that you subscribe through Twitter magically, which is kind of cool. So it's kind of [00:38:16] Frank: nice. I got to say, this is the most Silicon valley thing I've ever heard in my life. Um, I'm not saying the link, unfortunately, to subscribe to your newsletter. There's a [00:38:25] James: big button that says. [00:38:27] Frank: Fascinating. I don't get it. You must have to be logged into Twitter. [00:38:31] James: Yeah, probably. Yes. [00:38:34] Frank: Okay. Um, all right, newsletters. I still get your newsletter, but you're the only newsletter I get and it's right. There is a giant newsletter. I can start reading it right now. And do you have a lot of subscribers? Congratulations. [00:38:48] James: Thanks. They're mostly not from this Twitter. Subscribe on. They're mostly been there for a while ago, but that's not the exciting feature. Frank does a board featured two new ones, Twitter for professionals and Twitter blue. Okay. Let's break down Twitter for professionals to see how my profile status is science and technology. [00:39:04] Frank: Oh, that's a very Twitch of you. Yeah, I gotcha. You, you have a little suitcase next to you, so you must be a traveling science and technologists. [00:39:13] James: I do. I, I, I picked a category that you can pick a category and my CA there's category. Are you a Marine? Are you in education and restaurant? Are you in real estate or stuff? I think it's mostly, there's, there's two options. Like you can pick between, uh, a business or a personal accounts. Like, are you a person that like, tweets about this thing? Um, X, Y, Z, and I'm sure they're going to do something with it. Like it just shows up and you can hide it if you want, but then I'm going to leave it there in case you're interested. Oh, what does this person do? So there's a bunch of categories, like 80 categories there. The cool part is that once you enable that thing, uh, in your profile, you can also like, you know, pick, pick topics to follow, but you can also easily promote tweets. I actually finally I'm logged in and underneath every single one of my tweets, there's a promote button, which allows me to pay money to promote that. So it's kind of like, are you, uh, are you, do you want to be kind of an, not an influencer, but are creating. Yeah. Creator's space. You know, it gives you kind of like a, a notch. Like I'm still not a blue check mark, right? I'm not a blue, there's a Twitter blue now, but I'm not a blue Twitter, blue check mark. I'm not verified. No. Do I ever want to be verified? I'm against it? I think that verification not needed for me. I don't need it. I'm not, I'm not, I'm not that. Frank, [00:40:35] Frank: this definitely sounds like more of a corporate thing. Like this is what I should be doing for all my apps. So all my Twitter accounts should have this and they should be in the right category, especially because that's where you do your promoted tweets from, except that's not totally true. I almost prefer to use their little tweet generator in their little advertising area on the Twitter. [00:40:54] James: So for example, for merge conflict, I have now chosen podcast. Interesting. Yes. Interesting. Now, would we be a business or a creator, a business best fits brands, retail shops, service providers, organizations, and a creator is best for public figures, artists and influencers. I think business. Right. I thought I [00:41:14] Frank: had thought we were artistic influencers, man. All right, I'll do that. I'll do that. Come on, man. [00:41:20] James: Um, yeah, so there we go. Now we are now on merge conflict. It says podcast. See that you're right. There's application as well. So that's cool. I like it. Right? It's like, this is a person. This is a thing. I don't know that. That's nice. It's a nice though. [00:41:34] Frank: It's funny because like you, you go to people's profiles and I never know what I'm actually looking to see when I read someone's profile, because they're usually trying to make a joke or do something like, uh, yours is you can see the pain in my laugh. It's funny because it mentions comedy, but like, it doesn't really tell me anything about you. So at least there's a small hint in here. Oh, auntie likes suitcases and science and technology. [00:41:58] James: I used to I've right before that I was listening to some juice world, uh, songs so that there was a line from one of his songs recently, although jeez. Worlds passed away. So it was from, uh, previously, um, they came out now, but I used to have like a bunch of like links and them, I live up laughing code, but then I was like, I don't know, like you just, there's an L link already there from a website. So that's a good enough. So I agree with you. I don't know. What's supposed to be there. What's on Frank's I don't follow you. So [00:42:23] Frank: please don't read that one out loud. I was already just embarrassing you [00:42:26] James: Frank Kruger app developer. So you did. Yeah, this is good. Yeah, this is great. That's what you should use emojis though. I started at 3d I circled app, continuous codes. Kalka app sat, dev podcast, emerged conflict data found more, blah, blah, blah. That's [00:42:38] Frank: it. I'm actually running out a room. I got stopped writing apps. I'm not, I don't have any more room to add links. [00:42:44] James: I needed to stop going to new, like social things. Like I had on there, like our podcast, YouTube, Twitch, all these, these things. And there's like too much. All right. Last thing, Frank, here we go. Ready? Twitter blue. This is the big. I pay money. You pay money to Twitter. [00:43:01] Frank: So please tell me, this is what I want, what I want. And James, because especially Twitter lately has been every other tweet is a paid promotion. I do love paid promotions. I should say that, but I don't want to see any more of them ever again. And I'm also weirdo that I don't run an ad block. I [00:43:15] James: guess I do [00:43:16] Frank: not. Humans run ad blockers. I don't know why I don't. Part of me likes the pain of the internet to come through. I want to feel it and it's raw, terrible form. Uh, but that also means I see a lot of Twitter ads. So is there a legit way I can get rid of the Twitter ads, please tell me that's what this Twitter blue thing is. It's for [00:43:32] James: 2 99 a month. Frank one coffee a month. You can do the following. You can do a tweet. Frank, you can undo it. [00:43:43] Frank: Well, I oh, okay. Uh, so that's unsend I guess that is on undo. [00:43:50] James: What they do is they do little countdown timer. Gmail has this feature too, where it has a countdown time, so it's still laying the post basically, but that's in there, but here it is three news feed features. Number one, ad free articles. It says enjoined ad freed reading experience and cross a network. Of US-based popular publishers, not including payroll access. I actually, I don't know what that is. Ad-free articles that. Like what it is, what, you know? Nope. [00:44:20] Frank: They're not giving me what I want. Everyone's doing news articles. Everyone's trying to syndicate news companies. Yeah. I think syndication, [00:44:31] James: right? That's like, oh, there's a wall street journal article. And then I click on it. [00:44:36] Frank: Well, you know, you don't click on wall street, journal articles. That's a pay wall, but then this one click on New York times. You don't click on Seattle. [00:44:44] James: Okay. So this is, um, uh, . I guess, yeah, come on. He's a Seattle organism. It's not worth [00:44:52] Frank: that PayPal I'm out. Okay. Any other features? I mean, [00:44:55] James: top, top articles easily see the most shared articles in the network or the last 24 hours of reader. Turn long threads into more beautiful reading experiences. I don't know what that means. That sounds cool. Uh, oh, we got customize your experience. Bookmark folders, organize your book, bookmarks into folders and avoid endless scroll. I dunno [00:45:13] Frank: know they're not taken away ads. Nope. These are all pro plus DELAC features. As [00:45:17] James: far as I can tell custom navigation, you can set your most used pages right on your tab bar. That's an iOS feature app theme. You can choose a new theme on iOS app icons. You can use different app icons. Pinned conversations, swipe to pin your favorite conversation to the top of your direct message inbox. These just seem like features out there. [00:45:36] Frank: Yeah. They are just making you pay for features. This is genius. This goes right with our opening topic. They are really just doing the, a ProPlus deluxe version of Twitter. Fascinating, because there are other Twitter clients out there that just do a lot of the. Yeah. You know, tweaked deck was famous for doing all this kind of stuff. You remember back in the early mobile days when we all wrote Twitter clients, what's not fun. Oh yeah. [00:46:03] James: Oh yeah. I had, that was literally like one of my original demos for, for forever. Good. Yeah. And there was a link to tweet or whatever, tweet to link. And which enabled you to just use the link query based Twitter aggregations. [00:46:20] Frank: Love it love it. I think every app, every UI app developer has to write a weather app, Twitter out, maybe. Yeah, exactly. Some kind of podcast or RSS. Yeah, exactly. Yeah. Well that's what, uh, that's what we always did with the Twitter. We just did the RSSV. Yeah, cause that was an L cars reader. Even [00:46:41] James: if you can have the features features, all right, Frank, we did it all the topics. So we went over time, but it was amazing. We love every single one of you. Thank you for listening to this podcast, you can afford to go to merge conflict FM. You can join. Our Patriots are, we should get the exclusive podcasts ahead of. And bonus episodes, you can join our discard. You can tweet at us. Now you can tell that we're a podcast that says podcast on our profile, and you can also email us. There's a contact button and we read those and maybe next and nine episodes from now to 90, we will read your recommendation for a topic, or we'll just do a whole podcast on it. Let us know right in merchant conflict, that event. But that's gonna be for this week's podcast until next time. Jay's automatic. [00:47:24] Frank: Frank Kroger. Thanks for listening to the.