Speaker 1: 00:09 [inaudible] James: 00:09 frank, I have a major announcement. Are you ready? Frank: 00:14 Uh, I like guessing these things. I like guessing to be things Nintendo is releasing a new sonic the hedgehog game. James: 00:22 No, that doesn't make any sense, but it's about our podcast, frank, to be your podcast. I like these kinds of announcements. What do you got? So I want to make a major announcement. Um, we did this maybe, uh, 60 maybe 70 episodes ago, maybe 40, I forget, I don't remember when it happened, but I wanna make a, a big announcement that it is official. We have surpassed 1 million downloads of merge conflicts. Frank: 00:50 Oh, you saved this to get my natural reaction. Cool. 1 million downloads. How many lessons do you think that is? That's at least a hundred, right? James: 00:59 Listens, right? At least two listens. I mean, total throughout the entire podcast. I mean, you know, I'm not 100% sure of that. Those are downloads and I'll listen, but over a 1 million, uh, which is quite fantastic. And you know, I want to thank all of our listeners for putting up with us for 160 episodes. Frank, I can't. Yeah, Frank: 01:18 I believe it. Yeah. Um, I said, I said it last week and we never know who we're talking into this box, if anyone's listening on the other end of the box. So it's good to know at least there's a million people downloading the box while this analogy really fell apart. But it is episode one 16. You know what that means, James? What's that mean, frank? It means we do our lightning talks where we, instead of picking one topic, which is hard enough, we have to pick five or six topics and we're going to talk about each one for five minutes. The fun part of this is these topics usually come from you, the listener, and it makes our job easy. We just go and collect all the questions you ask and we answer them. James: 01:58 Great. Yeah. So what's the first one? Because this is the only one that did not come from a listener because we wanted to do a full episode on it, but I said, frank, this cannot be a full episode. This doesn't make any sense. Um, but we've saved it for a lightning talk and it was your topic. So lead us off. Frank: 02:16 All right. I always get nervous here because now we're timed. Okay. We are talking James about signing packages and this is about new get packages. This is about code share. This is somehow proving that your identity is used. So or that uh, no one has changed the code in one of your new get packages maliciously, like a man in the middle attack. I guess now that I've said it out loud, I guess who doesn't want that? The problem as always as the devil's in the details and I hate signing packages because all it makes me think about using is terrible security websites with keys that get tied to machines that I lose or I forget the passkey too. And I hate the whole process signing. James, what do you think of it? James: 03:02 Well, I come from working on the Xamarin team, working on Microsoft and working with a lot of developers in the enterprise specifically where having packages signed is very important for them. And in some cases they can only use sign packages. Uh, so, you know, this is really, really tricky. I would say, uh, because as an independent developer, um, me, like in my side projects where I'm doing libraries, I have that side of all that which I'll talk about in a second. On this side, I would say yes, absolutely. It's a must, you know, Xamarin essentials for instance, that, uh, grew out of that, there was all these plugins a lot by the community, a lot by me, some by others. Amerind and none of those were signed. And talking with some of the, uh, enterprise developers, they said, we need an official signed package. You know, we've gotten, you know, people are getting on our case about it. They're letting us pass, but we need it for security because of what you just said. Uh, in general. Now, on the flip side of it, as an independent library developer and other people may write in and argue this, I just, it's too hard and you gotta pay money for assert and I don't want to go through those hoops and ladders and it's too complicated. So I don't do it. And that's, I want to do it, but I don't do it. Frank: 04:27 Yeah. And I think I'm just for my own memory, I have to remind myself that this is not assembly signing. That was something that was trying to add security to.net code but never actually panned out. It was still vulnerable in a million different ways. And so we're talking about new gap package siding and I guess, you know, I sign all my Ios apps, but I go through a central portal to manage my certificates and all my, all the eye id Ids and profiles you need to successfully make a signing system work. And so I just worry about Microsoft's general approach of we'll go pick a standard that three different companies use and tell you to go use one of those three different companies and good luck. We figured it out. You're smart, you'll go figure it out. So yeah, I worry about that. It's new to me. I didn't know that there were teams out there that required signed packages. Is that common? James: 05:22 Well, you know there's definitely a lot. I think you are right. There's signing assemblies, which to me, you're, you're right. I would, wouldn't really go down that route. This is more of, hey, you know, this is the package, here's the check som, here's the, here's the stuff in between. But I mean, imagine if you're the government, right? Or a government in general that, you know, you're going to probably want some additional security stuff. So that is something to think about. I mean, it's unfortunate, but that's how things work sometimes, you know? Uh, but yeah. Frank: 05:53 Yeah. Okay. So that makes sense. Um, B even simpler. I think if we just put like off shot two 56 into our cs Proj then we don't have to sign it. We can just say this is the binary version that I want. That seems like a much simpler way to do all this, but I'm not a security person. That's why people don't hire me for security. James: 06:14 Well, I was working on an asp.net core out with John Galloway and how the asp.net project works is there's an XML config file and they do just that. We were updating bootstrap and what we had to do is update the version because the, it can come from one of many CDNs or locally, but what it does is it, there's an official check, some MD MD, two 56 hash or whatever. You put that in your project, it validates that Hash and then perfect. It also, it also does some, like it can optionally be like, hey, in this file, make sure that this thing is correct. Frank: 06:51 Love it. I love the simplicity and hopefully it is shot to 56 and now on d five as far as I know, only one person has been able to break shot two 56 or a that is get a duplicate hash for two different documents and that's just one out of every one attempting. So I think it's, that seems like good security to me, but I don't know the signing people in the certificate, people that are going to win, James, you know, they're gonna win. James: 07:16 Well all it needs to do is be extremely easy to use. That's it. I mean if it is, it is really, really, really, really easy for me to use and integrate and I don't have to do much. I don't have to pay money. I'm in. Right. That sounds good to me. Frank: 07:32 New Gates should be a signing authority, whatever it takes to make them an authority James: 07:37 there, done sold and that's, that's what would make it. So let me go back to the N***a team and let's go figure that out. But if there is an easier way, please let us know. Cause I know we obviously sign everything on Microsoft but you know it is harder and you know, they're not cheap certificates. They're kind of expensive certificates that you have to renew every year. So Frank: 07:57 yeah, I remember us complaining about it last time. Anyway, I think we spent too much time on this lightning round. I think we got to move on James and now we're going to do something that I know I'm not qualified to talk about, but I have good book learning knowledge on it and that is managing your infrastructure. Be it a million Jamo files. I know they're your favorite, be it a bunch of Jason Files. Maybe it's just a bunch of shell scripts. Maybe you're like me and you'd rely on Bash because why not? It worked in 1990 I can work today. So the, the general topic is infrastructure as code, but I think of it more as how, how, how, how do you deal on with your infrastructure? James? How do you deal with it? James: 08:42 Well, there is two parts of this. You are absolutely correct because we were arguing about this before the pod and I was yelling about how I hate Yamhill files with a passion. So much so frustrating. Uh, because I like gooey UI tools. I'm a goofy person. I grew up in the age of gooeys graphical user interfaces. They're a thing of beauty. You know, I'm just saying Steve Jobs, he's like, look at this thing of beauty as a point. Click and look at that gooey. And I love it. So I, I've always been drawn to beautiful sort of UI structure as infrastructure, which can be backed with code. Okay. I'm not saying that that's bad and that's probably good from a maintainability part of it. If I look at bit rise or as your Dev ops, they all provide great gooey things but also a Yammel file. James: 09:33 Now people would argue that that this is the configuration of build. Here's what, here's the steps you do. Here are the things, why would I ever want to go into a file, figure out the magical names and versions and as I'm literally struggling with it right now, what's the property? What's this like? Give me the dropdown, let me select the things in the UI and it will happen. Uh, I hate Yammer files. I do like that you can version them. People are like, oh, it's in your project so everybody knows what's happening and everyone could reproduce that. I don't care, frank, because it's so complicated that I don't want to use it [inaudible] but I do want it to be there, right? Like I want it to synchronize with my back end, back and forth. So the gooey tool could synchronize with the back end to the code whenever I make a change and back and forth. So I'm okay with that happening. I just want a beautiful gooey. Now the other part, which is these are the scripts in which to build stuff like maybe cake scripts or bash scripts. I'm all for that because that is also readable. It's code and code is elegant and beautiful and it is a graphical user interface into the commands in a way. And that's what I like. Frank: 10:41 Oh, right. Rant. Complete, complete. I guess I'll just try to chime in on a few things you've said there. Um, yeah, yeah, I'm yeah, mall. It's a file format to me so I don't really mind them as a concept, but I know what you're talking about where you're just reading document after document. I get to the point where I actually have to read source code to see what keys people are pulling out of configuration files. I don't deal with the ammo that much. I've been dealing with even worse things like you know, all the XML formats and all that kind of stuff. But it's, it's all the same problem of when you're trying to hand edit these things. And so I think that's where you're saying like, give me a gooey, what you're really saying. It's just make it easy for me to write these things. Frank: 11:25 And we've seen the whole spectrum of that. Uh, I've particularly like, um, kind of that bit rise workflow t tell me if other ones do this too. But in general it's a script thing. So it is a lot of code, but at least you can configure each script in like a simple form builder. And on Ios we have the Info p list, which is a little bit notorious because you can put so much stuff into it and it's very structured, but at least all the Info p list come with auto-completion boxes. So you know what the keys are and it kind of holds your hand through it. I noticed that. And vs code, when you're editing a Jason file that it knows the Schema for it can do a lot of, um, autocompletes. But yeah, it's this balancing act. We like text files because they work with get, you know, we can do dips of them real quick. It's easy to tell what changed. But at the same time for real, like it's not 1970. I'm not using a teletype here. Just let me have some buttons and some text boxes. I think, um, the nice things out there are at least the simple forms builders. And honestly it's why I started the week project. I wanted to build the very simple Uis for very simple tools. And so I needed a quick gooey for that. Yep. I'm with you. Text files are good, but we need more gooeys. James: 12:46 Yeah, I agree. And that's why I fell in love with bit rise and Azure Dev ops, they do exact same thing. Uh, and one thing that as your Dev ops did recently, which did help me, is that if you'd go into the graphical, um, if you go into the graphical builder, there's a button on any of the steps or on the entire thing that says views AML or Yammel. I mean, so view Yammel and then you can see the Yammel that actually generating it behind the scenes, which is great. And um, you know, that's there. So you can go back and forth if you need to. But you know, so if I have to go, like in essentials, everything is a Yammel file and it's, I've worked all day just to install dotnet core three where if I did it in the Gooey, it would be just like, let me pick the things. And that seems to be my complicated part. But, um, beyond that, yeah, just give me a beautiful gooey. So I mean, we build ghoulies for a reason and uh, make it happen. And then always, like I said, have that fallback. And that's what Ms Bill does or.net build. Like those are the command lines and the gooey just calls those things. So you can do it either way. So if you're a command line person or Yammel file, that's great. But if you're ugly person gave me the Gooey, Frank: 13:55 Yup. This is a classic Unix architecture and this is how they wanted it done. And we're all like, no, forget it. I'm writing VB apps. Ha ha ha ha. Alright. Topic number three, James. This one I kind of dig. It's up my alley. And the question is, well, it's not a question, it's a statement. It's a, I don't know what it is, ml for the masses, James Machine learning for the masses. Let's pretend that you are massive and you are a part of the masses. Do you feel like that you today can go use ml? And do you feel like you're able to, uh, grow in that ability or are you just Kinda, um, stuck? James: 14:37 Well, I think ml all for the masses. How I see it today is there's two sort of, um, not, not necessarily camps, but there's two different categories. There is the traditional machine learning. I'm writing deep level python scripts, or maybe I'm all done that is a little bit higher than that. But there's a lot of scripting. There's a lot of code that has to be written. They're creating all these different structures, your piping and data doing data, this and that. And then there's the flip side, which is the ml as a service, which are your Azure cognitive services, your custom vision, where you just dump a bunch of things or call a restful API and it does stuff for you. There doesn't really seem to be an in between today. And that I think is the hindrance of machine learning and AI for me at least where I can do the one side, but going to the other side to go any deeper is a huge pendulum swing today. And that's how I see the ml for the world. So the ML is out there for the masses. Yes. But as a developer, I think it's very lopsided. One side or the other. Frank: 15:47 Hmm. Yeah. Uh, there, there's so many axes here. Like when I'm just thinking about this question and I would say like in some level, the API APIs are ahead of the apps and the experiences that we're providing people. So in some ways there's a lot of head room there, like, um, app developers kind of have to catch up. And so to create apps so that the masses, you know, everyone can enjoy the repercussions of robots taking over the planet. But at the same time, um, I do see some good things have been coming out in terms of running models, executing models, uh, starting to see the first batch of apps that can are generic apps. So you know, there's like Ios apps out there that do some kind of ml trick. There's that face app. Do you know that one? James: 16:37 I've heard of it have much controversy, yes. Frank: 16:40 Controversy because I guess they were uploading your picture to the cloud to do it's processing but then naughty, naughty saving your picture. So that's the controversy there. I don't think there's any real heavy security breach here, our than they have your name and face attached to each other. But um, that's basically old AI. We've been doing that kind of stuff for about two years now. But this is the first incidence of it, like really getting out into the masses. Aside from the older stuff of just, is it a cow or is it a cat kind of hot dog or not kind of stuff. So it's interesting to see that growing. Um, but then I've also seen some cool tools coming out. Uh, this one tool I absolutely love on the Mac. I just want to give it a shout out. It's called runway, just one word runway. And it's kind of fun because you use it to try out models, get it. It's a terrible joke. Uh, yeah. So anyway, um, but it's a really good piece of software. It um, it was written from a designer's perspective, so someone who's used to using like Photoshop and illustrator and graphics tools like that really easy to actually just, uh, download some models and execute them. So there are good strides in everything, but the research is definitely far, far ahead of number one, the API is and number two actual apps out there. James: 18:05 Yeah. And other things as things progress cause it's still early days for machine learning, sort of moving into the masses that the, the libraries, the tooling, the entire experience. I do enjoy sort of what [inaudible] dot net is doing at a core level. There's even a graphical user interface to take in some data and figure out different things and it'll try a bunch of popular, you know, ml libraries for you and pump out some things. And that is a certain level in general. So I believe that there's some, some nice things there, but, um, I'll be interested just to see over the next five years how it goes and maybe I can become an ml expert. I mean, if you look at, guess what apple did with Cora Mal, that was, that was a start in a way. Frank: 18:51 Yeah. Uh, real quick, um, I, I wanna double down on what you just said about that cool trick. ml.net can do a, if you give it a CSV file and say, Hey, I want you to learn how to predict column d given all this data, it'll just magically crank away, burn your CPU for a little while and figure out a nice model to predict different columns and CSV files. It's so easy to use and I can imagine a different, a million different use cases that you could have for it. So I do like that part of that's even just making it easy for developers to, I still don't think that that's like a a a masses thing. I think it needs a gooey and a nice, you know, Nice UI to make it all complete, but it's definitely the step in the right direction. Speaker 4: 19:34 Now let's take a second here to thank our amazing sponsor. Wait, wait, hold on. We're doing something special. What we want to do is help give back even more to the community by offering up some sponsorship slots once or twice a month or so to small independent developers, small startups or small businesses that are looking to promote their product to their app, their website, anything like that. If you're interested in doing this, it's just $50 to get a special sponsorship slot that we'll be doing here on merge conflict to go to merge conflict on fam, hit the contact button and reach out to us. Now let's kick it off with our very first ever indie sponsorship slot, the great developer over@appyweather.com listen, do you like weather? Do you need a weather app? Will API weather is for you. It is the most personal weather app and it's powered by dark sky, which is an awesome API. What's cool about this is that it's an alternative design that's maybe not for everyone but hey, at least there's not another weather application. I have it installed on my android device and you can get it in the Google play store by going to API weather.com or in the show notes below. It's awesome. It's fantastic and optionally you can subscribe for just $4 a year to get widgets notifications, remove ads on a whole lot more and you'll be supporting independent app developers James: 20:48 and this puppy is powered by Xamarin. It's beautiful. I love it. It is my weather application. Go to EPU, weather.com to learn more. Well let's move on to the fourth topic, which also came, it came from our discord channel in our lightning tops area there, which anyone can join is go to merge conflict at FM and you'll see a discord button over there to join on. The chat was just around, we had done a podcast a while ago on Ski, a sharp and ski itself and drawing and doing custom drawing. And this was about, hey, you know, it's been a while since things have changed and there's web assembly and uno and other things going. We going into the, to the, um, the browser and skier sharp has made its way to the browser. What are your general thoughts? Like, you know, are we just going to be drawing things on canvas? Is this the future frank? Frank: 21:37 Um, skier updates? So from my perspective, I am still really taking skier. It's doing a good job and I'm very picky, especially when it comes to graphics. My biggest complaint, ski is always just been how big it is. But if you can just plug your nose and ignore that, then, uh, it's great. The capabilities it gives to your apps. In fact, I was just writing an app that use native drawing calls to, you know, do all its drawing and it was fast and fine. And I just thought, hey, what the heck, what if I just rewrite it real quick to use Skype just to see. I already had that experience with I circuits already knew that ski. It was fascinating. Good. But I was like in this app, would it really matter? You know, it felt fast enough, but I switched it over to skier. Frank: 22:23 And you realize like when you're hitting 60 frames per second on the dot, you know, you never miss a frame. It's just perfect. That's nice. So that's my ski a update from that perspective. I think it's still doing great. But yeah, you mentioned it's on the web. Crazy, Huh? I never would have thought people would get going on the web. And I think this was done by, um, the Uno people for the uno platform, but they did magic and with WebAssembly and I don't know magic because he had sharp working on websites, which is incredible. It enables people like me to write graphical Apps, uh, on web things. He's in c sharp. Awesome. James: 23:08 Yeah, it's super, super cool. And uh, in general I love skier sharp as well. I haven't used it as much as I possibly want, but I like seeing what developers are able to do with it. Like you could use it for an entire app or a lot of people just use it for custom controls or this and that. And I love like charts and graphs and gradients and the things, uh, like toolkits that are being made with it. And it's really nice. I remember when we were implementing the checkbox and you in Uni and you know, it could easily be done, you know, just using, you know, what do, what do we use core core graphics, I believe UI graphics or core graphics and one of the other, which in Xamarin forms makes sense. A lot of people were asking, well how come you're not using the ski show? James: 23:54 It's like, well we don't want to bring in the ski as sharp dependency. Obviously broken a circle and a child wise, we can draw that. But if you are brand new to Ios and android and windows or anything else, just come in, just bring it in, you're going to love it because it's a single API to do anything. Uh, and it is really, really fantastic and it totally adds to the story of cross platform everywhere. And I know Miguel is, was, has been beating on the ski sharp, um, you know, drum for forever. And I guess I never really realized that or why he was so passionate about it until you start to see the full story of Xamarin forms, Xamarin essentials ski a sharp, you know, and how those are evolving too, to kind of do whatever you want and it's really powerful. And then bringing that to the web, whether, you know, you're using, I mean, ski a has been on the web with, you know, Google, right? So it's nice to see it kind of bridge the gap and especially with web assign. But I think that could be really cool for just bridging that gap for some of these really complex controls that you may need. Frank: 24:57 Yeah. And it's, it's funny, um, we always needed a unified graphics platform and for what, 10 years, we held out hope that system dot drawing that, you know, Microsoft Amano and everyone would take it very seriously and give us amazing implementations of it, but that didn't happen. So instead we get skier sharp, which my only hesitation is that it's a Google product, but you know, I get over my biases somehow and I accept the Google code into my beautiful Ios apps. It just in the name of standardization and allowing us all to just move forward and get on with our lives. I think it's awesome. Yeah, James: 25:39 no, I agree. Uh, all right, well this one, uh, also comes from, I think this was from our discord or maybe is from Twitter, but this was about, hey, you know, you often talk about mobile applications all the time. It's a thing that we're into a sometimes desktop, a little bit of web, but has there ever been a time in which you've had to create software for really weird or out there hardware or even develop new hardware in general and write code to that hardware? Uh, so I figured I'd let you open up cause you do Frank: 26:12 ridiculous things. Right. Um, I'm going to go back. So this is kind of one of my first really real professional programming gigs. When I was working in that r and d development, uh, yeah, r and d, uh, department and I had the job of talking to all these data lockers. These are pieces of hardware, uh, that have a million wires coming in and out of them and you can attach these wires to different kinds of sensors. So you can imagine that you would, an automobile and an a car already has a lot of sensors, but we want more so like you just align the interior with sensors, sensors on the outside and inside everywhere. Sensors, just millions of them. And General Motors is an old company and they have hardware from forever ago. And I was writing a piece of software that tried to unify all these data loggers into one stream. Frank: 27:07 And that meant that I had to talk to all these old data loggers and it was, um, it was actually quite fun for me because I got into programming, reverse engineering file formats and it turns out reverse engineering protocols between hardware and you is kind of the same thing. You're just looking at the data stream, you know, twisting a few knobs, see how the data stream reacts, you know, and try to replicate the data stream, see the, uh, see the patterns in it. And I reversed engineered, uh, protocols to talk to a bunch of different old hardware devices and it was quite fun. I really enjoyed it. That's crazy. Yeah. I mean, I could only imagine that entire space is just really far out there. There's so much custom hardware, so like these were expensive units that used to be supported by a company, but that company has gone under, but the unit is still really good. So it's still worth trying to figure out how to get the stupid thing to work. Yeah, totally. Wow. James: 28:08 Automobiles. Crazy. Uh, well I, you know, I was gonna talk about a little bit of the stuff I did at cannon, obviously with the printers, which would be fun. But then I didn't really work on the printers. I worked on desktop software that interfaced with the printers. So didn't get to do the fun fun stuff. How ever, yeah, this is a little bit mobile related and I've talked about it before, but at Seton, after I left cannon I was writing a lot of mobile apps to interface with dvrs and media center units and we developed our own set top box and um, with the Linux machine. What was that? It wasn't a, it was an android based machine. Oh. So I got lucky obviously. So it's not like crazy software, but it is crazy hardware because we um, built and uh, like the PCBs, we did the custom tooling for everything it was in. James: 29:11 And uh, the, the first revision of it, it never really, the stuff that I worked on never made it out to production. But we had a very simple user interface that worked as a remote sort of media center host. And we were then working on a next generation box and to create an entire DVR system, user interface, a bootloader everything. And in that instance I had to do a few things. I had to one create an bootloader like homescreen launcher for android for this custom set top box, which is something that not many people ever do, not especially Casa. And that was all Java and eclipse at the time. That was terrible. And that one was because it had to be part of the build system in general and the, you know, and how it was being built, it was easier just to do it. James: 30:03 We are building our own android image, like our entire image. Right? It wasn't just slapping android on there, like we were building android. So we did that. And then for that I also had to create a, an app install or marketplace. So I had to create installer, add to create an updater, um, for apps that could be loaded from a server that would be pulled down where your conversion numbers updating in general. And then I created an entire DVR interface with the grid guide, everything. And then that was the Xamarin app. So it would launch into these different sections of the Xamarin app, which is really cool. But it was this tiny atbd box. I mean, it stack up to iPhones and, and that's it, uh, in general. And, uh, you can navigate around. We had a remote application and a real and remote, but we had to get into the low level stuff, override all the android, like I was in the android source code overriding what the home button did, interfacing IRR commands into it. It was, it was the most crazy thing that I had ever worked on. I think Frank: 31:05 that's awesome. Anytime you're at the a colonel bootloader level, then you know, uh, well you're, you're, you're fighting demons at that point. You better know what you're doing cause you can cause so much damage. I remember I had a senior project in school and I wanted to create a Dreamcast game. Remember the Dreamcast Oh yeah. And um, I just wanted to create a game for it, for our project. But instead I ended up writing a whole operating system. Bootloader I was talking to the CPU directly. I ended up writing my own open GL implementation on top of their graphics hardware. I just totally geeked out and wrote all low level stuff and never finished the app part of the project cause it took me so long to build an operating system. You know my, yeah. Cause it, that's what happens if it's really, really complex. Yeah. Um, okay. So talking about complex and what you shouldn't do in software. Our last topic, James, is Easter eggs. Have we gotten this long? Have we gone 160 episodes and not talked about Easter eggs? Is that possible? We had, I don't think there's a time that I can remember us ever talking about James: 32:14 about Easter eggs. I mean I've played a lot of video games where there are Easter eggs and some still on found, which is always fun. Frank: 32:20 But yeah, I don't think we've ever talked about hey, ever. Have you ever put an Easter egg into any of your software? And if so it hasn't been found. That's the question. Yeah. Okay. So, number one, I want to preface all of us with, I wish I put awesome Easter eggs in all my software. The truth is by the time decided that the software is kind of stable. I've just kind of lost the energy to put a witty little Easter egg again. I don't even want to like compliment myself or like do anything every so often. If I'm making a website, I put a little pie symbol in the lower right just from, um, the net, what's it called? The net. Sandra. Paula? Yep. Yep, Yep. There was a little pie symbol in the lower right. So every so often you might see a little pie symbol in the lower right of my apps. Usually it does something Adriatic stupid. I wish I did Easter eggs. Do you, do you do them? James: 33:14 So usually no, I would say I've been a pretty good citizen. Of course, I started writing video games early on, so I obviously the teams would put in little Easter eggs, little hidden things that you could find if you did certain things or certain co you know, combos. Uh, in production software I would say it's usually bad practice to, to, um, to put Easter eggs into your app. However, uh, at Xamarin evolve 2016, uh, I was working with Pierce and squeaky and a few other people on the app and some people were, you know, building unit tests and doing UI design, the backend services. And I wanted to sort of give credit for everybody, uh, that was working on the app. Ah, but I didn't want to just put like a credit section in it, you know what I mean? I didn't want to be like about, and then here. James: 34:07 Yeah. So, uh, Pearson, I worked very heavily on the app and uh, Pierce and I are our big Drake fans. We love, we love hip hop. Uh, and there's a quote from Drake where he says, uh, eight more than 92, uh, in something before. That's something after that. But that's always stuck out in her mind. And in Pearson I would, we were joking about it because eight more than 92 as a hundred and you know, you can keep it a hundred and um, and we were clever and, and I, and I Pearson even put this in the app, so the bottom of the setting screen, what I ended up doing is I put the words eight more than 92 and you would look at that and you were like, okay, I don't know why this is here. Yeah. Oh, it's a bug. Yeah. Like, oh, so I'm gonna add these two numbers. Yeah. Someone forgot, yeah. You forgot to add numbers on this, but what you could do is tap on an eight times and it would bring up a screen that would show you details and where to get the code and things like that on it. Frank: 35:11 I really appreciate that you didn't make them tap a hundred times. That would've been up noxious, I guess James: 35:16 that would've been, that would've been super obnoxious. Yeah. So I did that. And this was also, um, really funny because obviously this is an open source example and also I could use it when I downloaded apps like go into settings screens and see if people would leave it there or not. Uh, or edited other Speaker 4: 35:38 conference at say their conference apps. Yeah, because they get, the best part about this app is that it's a reference app and I highly encourage people to fork it, download it and make the app. It's all there. Make It yours. That's the whole idea. Um, and at the uh, Xamarin Dev summit, I opened up the app for the first time, went to the settings screen and Bam, eight more than 92. We're right there to have fun at eight time all and then Mike, my, my, my, my east, my Easter egg was in it too, which is kind of fun. So uh, he opts off phone. You updated it eventually. So Frank: 36:12 yeah. Okay. Good story. Good story. You are just reminded me, I remember I tried to make an Easter egg once in my about box. I was trying to make like a very simple line drawn doom game. I just wanted to play doom in the about box cause I heard once that like excel had a flight simulator in it or something at some point in time. So I wanted to, I wanted doom but it never worked and I ended up spending like three days on it and then I'm like, wait a minute, I'm spending three days on this Easter, maybe this isn't smart so I don't think I ever finished it. Yeah, I think you know, yeah. Speaker 4: 36:48 The cool part about Easter eggs are that they could be something as small as like a little info screen or they could be a whole game. I love inside of Android in every single release there's a small little Easter egg and you can tap on things so many times that's where I was really inspired by to get it right. And it's all Easter egg should be like very lighthearted. It should be very positive, you know, things like that. Um, it shouldn't, an Easter egg is not malicious, right. That that's a, that's a bug or a virus really. At that point I'd be like crashes your app or something. But the idea is it's lighthearted, it's fun, it gives them information and a lot of video games play a play reference to that was the original and adventure. Is that the game? That was like the first Easter egg Frank: 37:33 ever. Oh, that's right. It gave credit to the programmer. I think you had to get to the very end. You had to do something crazy. Speaker 4: 37:40 It was really crazy. And that was in ready player one or reference to that too, which is co that's why we know, okay, well I knew it before. They can be. You had to like, it was like you had to go find like a hidden, like it was like a, a key that you would find, but it was invisible and then the door to unlock it was also invisibly to carry it back and then just, you're right, the developer's name was on inside this room because back in the day, developers didn't get credit for their work in video games and today and today, a lot of developers don't read it either yet. Correct? Accurate. Frank: 38:14 Yeah. You're mentioning like Easter eggs and games and I'm thinking of Fortnite. I'm like, isn't it fortnight just one giant Easter egg? It's just like Easter after Easter, the whole thing. How could you have an Easter egg in that game? It'd be impossible to distinguish. Speaker 4: 38:27 Yeah. Literally go listen to the Nintendo dispatch. I'll listen to it from this week. So the one that came out on seven 24, I talk about them, the brand, the, the, the last weekend's crazy ridiculous. A robot versus monster battle that had been building up over several weeks. Then happened for like 20 minutes randomly on it on a Saturday afternoon. It's crazy as amazing. Frank: 38:51 It's a fun thing I can just see for you talk about it. But should I watch like a youtube video first? Oh yeah, yeah. You can just use it. You just go to Kotaku and just like look at the fortnight. Um, Speaker 4: 39:00 the thing is it's four minutes long. It's amazing. It's so good. Anyways, so yeah, that's it. Now, I didn't want to do one little special bonus for our listeners who, uh, if you've made it this far into the podcast, you are a die hard. And I wanted to talk a little bit more about these podcasts. Metrics is a big deal for us. I hit a million downloads and I've got one. Yeah. Number time. Number Times. So we have officially published 164 episodes. Frank: 39:31 Oh right. We're not going to counters. I was going to be happy for off by one, but we're hoping by four oh well while we had a few special editions and we started at index zero oh yeah. Gosh, we wrote, he said it right. Thought was up for failure there. Alright. Factoid 164 episodes in the can. All right. How many, how many hours of content have we created? Oh boy. I mean in the beginning we were really good at half hour episodes, but then we turned into 40 minute episodes. Um, blah, blah, blah, blah. 100 cause wow. Very close. 120 hours of Co one 20 I went low. Okay. Nice work. We've been going well over a half hour. Speaker 4: 40:20 Yeah. And let's see, that is five exactly five days of content. Frank: 40:27 Wow. So if you're like stuck on an island and you're like, I want to listen to programmers talk for five days straight, that's what you would do. You can do that right now. What would you think is our average duration? 42 just to be cool. Wow. So by the way, frank does not know any of this. Nope. Nothin. Average duration. 43 minutes. Ah, some close. We're so close to being cool. All right. Gotta talk one minute last on average. Yeah. Hmm. Speaker 4: 41:02 All right. This will be a fun one for you, uh, too. So, uh, what do you think? Well, this one's an easy apple podcast is our number one you, it's the number one use for everybody podcast. But what do you think the percentage of our users using apple podcasts are? Speaker 5: 41:18 Okay. Frank: 41:19 Oh boy. Well, let's see. The android people don't use it, so it's really a question of ios versus android breakdown. And if I said 50 50, then let's say a good majority of Ios people use it. So I'm going to go with 30% James, 29.6% of games. Speaker 4: 41:43 Oh, that's very good. But fast. Yeah. So right here it's 30 per, it's 29.6% apple podcasts, 11.4% over cast, 6.4% pocket cast, and then a bunch of other things and browse. I could've guessed those. Those were totally my answers now. Yeah, a bunch of random ones there, which is good. Okay. Um, okay. Frank: 42:05 Oh wait, what was overcast again? We gotta have our Marco Bell for the day. Speaker 4: 42:09 11.4% Oh, overall nice. Overall, uh, how, what is our percentage of listeners from the United States? Frank: 42:21 Oh boy, this is a harder one for me. Um Hm. Hm. Hi, I'm hom herm 80% Speaker 4: 42:33 no, the year this is your way off. 43. Frank: 42:36 Oh. Oh fantastic. I'm sorry to everyone I underrepresented. There you are. Awesome. Thank you for listening to our show. I'm obviously a bigoted jerk. Speaker 4: 42:47 No, no, no, you're great. I mean, it's hard to know. I, you know, and especially it's an English, you know, language. Yeah. Frank: 42:54 I over-thought the English part. And you did and I forgot. Yeah. Speaker 4: 43:00 All right. So let's see if I can find out any other stats. The stats screens. And that's all we have. I was trying to find the fun game. I was trying to find like longest duration podcasts and he only shows me the last 50 episodes. We've broken an hour, I'm sure of it. So we broke episode one 32 is 70 minutes and that was so much for listening. Everyone. Uh, I would also say that, uh, the WWDC 2019 was 75 minutes. How did we Frank: 43:35 talk that long? I guess there was a big WWDC. Speaker 4: 43:38 Yeah, it must've been, I'm still watching videos from it. Yeah. Always. And always, there's so many out there. I'm looking to see if there's anything. I don't think so. Everything else has always been around that mark in general. Yeah. Frank: 43:51 Congratulations James. On 120 hours slash five days slash 160 numbered episodes and 164 total episodes. Kind of done it without you. I wouldn't have done anything without you. Good job, James. Speaker 4: 44:05 Well, thanks to you. Thanks to all of our listeners for supporting us in and out and all of our patrion subscribers, uh, with all of your help, we made it possible. We do transcriptions of all the shows. Uh, we've been doing some twitch streaming of some of our shows here and there for people. Um, and we've been able to take a lot of your feedback and roll it into the podcast itself. So we thank all of you for listening and helping us hit the 1 million mark on downloads. Thank you. So amazing. And I think that's going to do a frank. So until next time, I'm James Monta Magnum. Speaker 1: 44:38 I'm Frank Krueger. Thanks for listening. Peace. Speaker 4: 44:44 Now there's one more thing that I want to do before I let you out of here today because I want to take a few seconds to thank our amazing patrion supporters that help make the show happen all the way through 1 million downloads. If you want to have found out more, how to become a patron supporter, go to merge conflict out of fam and click on the support button on top. So here we go. I'm going to list everyone down. That's a current patrion subscriber. Just first names, don't wanna give away too much PII. So Adam, Aiden, Alexander, Andres, Andrew, Andrew, Andy, Anthony, Benjamin, Benny. Bob, Brandon, Brian, Brian, Chris, Chris Clinton, Collin, Damien, Dan, Daniel, another Daniel, another Daniel, Dave, another Dave Dean, Dennis Francesco Guy. Hemin ob, Homero, Isaac James, great name, Jaan, Johann John Joseph Cao, Kevin Conrad, Kim lashline, Lars Laurens, Luce, mark, another mark, Matthew, Mike, Nigel. All right, next page. Not Invader. Zim. Nuno, Paul, Randy, Richard, rob, Robin, Ryan Shah, 78 Simon Simon, another Simon stuff on Stephan. Steve Threaten Thomas. Thank you so much for being a patriot subscriber. Thanks to everyone that has listened to this show for over 1 million downloads. Have a great day.