 Hey, everybody, it's Brian, and this is not going to be a programming tutorial. I will go over some code towards the end. This is to answer the sheer volume of emails that I've been getting, saying, hey, Brian, where are you? What have you been doing? So if you don't care, close the video. All right. So if you're still here, I think you have a mild interest in what I've been doing. Or you're one of those people who's messaged me and said, hey, why haven't you posted a video? What's going on? Are you okay? Are you dead? Is your cat okay? Because people know I love my cats. I have a new job. Well, new job, Quoty Fingers. I've been there about a year, but it's really been taking a lot of my time and attention. And when I get home, I kind of just want to unwind, relax, spend time with family, play video games, things of that nature. I've also been working on one of my passions, which we'll get to towards the end here, which is actually code. But when you have all these things, something's got to give. So tutorials have kind of slid by the wayside for a little bit. And there's a reason for that. I was working on QML, like if you bring up, yeah. You can see how I've been doing QML, but then I kind of deviated and went into open SSL. I like QML, but I'm really not digging it that much, I guess. I don't know a good way to put it. It's very odd for me to intermingle C++ and JavaScript, and sometimes my brain just does not like it. Don't get me wrong, I think it's a great tool, but it wasn't really what I was looking for. I still continue to do the QML tutorials, but I'm going to start leaning towards more acute hardcore desktop applications, like how to build a web browser, how to build a notepad, how to build an XML parser, whatever, that's kind of my love. Also, if you haven't watched that lemon video, how to make fire with a lemon, I mean, seriously, it's awesome. But I had to switch operating systems, too. Working with QML, I was on Ubuntu because I prefer to work in Linux, which is really weird for me because I actually grew up using Microsoft Windows. And right around the, I'm going to show my age here, I want to say it was Windows XP? Was it XP or 7? I don't remember. But anyways, you used to be able to have a full-blown web server on your desktop using the ASP developer tools. And Microsoft took that away and said, no, no, no, now you've got to do a whole full-blown server, or you've got to go spend $5,000 to buy Visual Studio. And doing that, it really pissed me off because I didn't have the money. So I actually wrote my own ASP server, and then I thought, why am I doing this? I'm reinventing the wheel. And then I started looking at other operating systems. So I fought Linux for a long time, but once I actually got into it, I really love Linux. So I had to switch because there's a horrible bug in QML on Ubuntu. I should say not in Ubuntu, but on the Unity desktop. So if you ran a QML program, it wouldn't close, and it would lock up Qt Creator, and sometimes it would actually lock up the entire OS. It was really annoying. So I also switched Windows because if any of you know, I dual boot between Linux and Windows because, well, Windows, you still have to have for certain things like video games. I'm sorry. Video games on Linux are just not 100% there. I do have a Linux-compatible graphics card, but it's not the same. It's just not as robust. And some games just flat out won't run, even with code weavers or wine or any of those. And you don't want to sit there and tweak for three hours. You just want to play your game. I firmly believe that if Linux fully supports video games, I think Windows would die very quickly. But anyway, so I switched from Ubuntu to Linux meant with Cinnamon. Why Cinnamon? I probably just because it was the first on the list, I really don't even know what made his, to be honest with you. I know it's a desktop management. I haven't really played with it. So anyways, switching between those has taken a little bit of a learning curve, but I also went from Windows 7 to Windows 10. Now, when I do these things, I don't just upgrade. I wipe the entire drive clean, and then I started from scratch. So reinstalling, I mean, you know, the good old days where you just reinstall software for 12 hours straight, that kind of stuff. Other than that, I've really been kind of focusing in on, you know, just interfacing with people. I've tried really hard to catch up on my email. I'm not quite there. I think I still have like two dozen emails left. And Facebook, for example, where is Facebook? Boom. We have this whole Voidrealms Facebook group. A lot of the responses you'll get from me if you email me now, or I don't know, please see the Voidrealms Facebook group. And that's because there's 836 members in here as of today right now that, you know, as you can see, you just ask a question and you'll get people who respond most of the time. What's this one here for a couple of months? I'll have to go back and read that. That looks pretty good. That actually looks like something I'd use. But anyways, so I want to build like a community of programmers that doesn't cost anybody anything, so anybody can join this and anybody can, you know, come in and just, there's no login. It's already in Facebook. If you don't use Facebook, sorry, you're out of luck. And it costs you nothing because I know some people plaster advertisements and stuff. I just, I hate advertisements. I detest them. So I know I'm rambling a bit, but I went from QML to open SSL because I love desktop programming, right? And then back to QML. No, I started looking at QML because I want to get into mobile programming, but QML, I don't think is really there yet. It's not a bad tool. I'm not knocking it, but you use the right tool for a job, right? And as a developer, you use multiple tool sets. Always use the right tool for the job. Now QML, while you can absolutely make mobile programs with, it's not really what I need it to do. I need services. I need, you know, the backend stuff. I need to really dig deep into the hardware. I know there's going to be a million people out there going, but you can do that with Qt and C++, right? But I don't want to spend three months of developing it. I just want to be able to say import, blah, blah, blah, and then use the built-in classes. So I've been really wrestling with, do I do native? Native being Android Studio versus iOS. Or do I do what's called Zemarin Forms? And Zemarin, if you haven't heard of it, is basically the cross-platform way of developing on mobile. There's others out there. But this is similar to Qt in the sense that you write once, compile anywhere. So you can actually write in C-sharp and then run it in Android and run it in iOS. And they have where you can use the native versions or you can use those Zemarin Forms, which is kind of like, you know, Qt Forms or Qt Windows. Actually haven't had a whole lot of time to really dig into this, but it fascinates me because I hate the concept of if you write an application in Android, somebody says, well, does it run on iOS? And if you write it for iOS, they say, does it run on Android? And then it's got little differences and drives me insane as a developer. And because everybody, I mean, let's just face it, Android has 80% of the market share. And if you write for Android, someone, you know, Apple Snob's going to go, well, it doesn't run on iOS. So I just, you know, you want to throw a desk at them. So I've been really wrestling with that. And it's been taking me a long time to come to this decision because I really want the native interfacing, but I'm not familiar with Zemarin. And I don't have a whole lot of free time anymore. Yeah, so I've also been trying to spruce up void realms like this epic fail thing has been here for years now. So I should probably update my Facebook or my website. What else here? I mean, I've also been playing Dota 2. I try to play like a game at night. Unfortunately, if you play Dota, you know, these can be an hour. So saying I really don't have time to make tutorials is kind of not true. I've just been playing video games. And I kind of go through these phases of playing versus coding. Also been playing Starcraft and Eve online. So, yeah. But I have been working on the next QML tutorial. Not really full flash. It makes no sense, but you can see this little timer ticking away. I want to have, and I did this in straight up cute, where I had a bunch of boxes moving around and they bumped into each other and did collision detection. There's really no form of collision detection in QML that I've been able to find. So I wanted to kind of demonstrate what happens if I have a bunch of these boxes flying around and they hit each other. So the other thing, oops, start up. Let me close this. If you've watched some of my other videos, I'm fascinated with TCP servers. And I kind of want to write a whole suite of TCP server code and C++. So I've been revisiting that. And this is the sixth iteration of this. There's a heated debate. There's the 10K challenge, right? You know how to get 10,000 connections. And I've demonstrated that we can do that with C++ and Qt, while it's a little rough around the edges. It can be done. But I've been experimenting with different models. So like you have single, pulled and threaded. So single means all connections run on the same thread. So if I click that, a new thread is created and all connections go onto that thread. If I go to pulled, well, it uses the Qthread pull under the hood. So it will use like three or four connections or six or however many your processor allows. And it reuses those. If it's threaded, then every single connection gets its own unique thread. It's not entirely true. But yes, you understand the concept. Now, everybody's going to go, oh, I want the threaded, where everything runs in a single thread. You really don't need that. For example, if you did a web server and everything's threaded and you have 1,000 people connect to your web server, well, it's going to die. It's just going to go, you know, you're out of resources. So let's just kind of look at some of this code here. Kind of a very similar model of what I've done before. This is a passion of mine. I may actually post this code in the Voidrums Facebook group, I'm not sure. But you have a server. And that server just inherits the TCP server. And then you have a runnable and then a connection. So the runnable obviously runs inside of the Q thread pool. And it just calls the TCP connection. So then you would inherit an override. So we have an HTTP server. And this inherits our TCP server down here that we've created. And if we just do that, you can see how easy it is to just do this. And now we're just overriding this. And we're just going to say, call an HTTP, blah, blah, blah. We're going to fake a web server so that we can test and siege. And then we're going to, you know, actually, let's go back here. You can see how it's going to create a connection, an HTTP connection instead of a TCP. That's how we're handling the inheritance. And then in our ready read of our HTTP connection, we would actually mimic a web server here. So let's just, boom. Look at that, hot stuff. I remember the keyboard combination. So we're just going to load up Siege. And actually, we're going to start the program here. And let's do pool. Why not? We're going to listen. And you can see, boom, there's all the pools. And we're going to do 500 connections. And you can see it's just going and going and going and going. And there it is. So this is kind of what I've been really in. We'll try, if I do thread it, it's probably going to crash. The reason why it would crash is because I think a bone 2 by default is like 1,000 file descriptors or something. And every sock, it's a file descriptor. So it'll probably die a horrible death here. So yeah, there it goes. Blah. Now that did actually crash my program. So bummer. So I'll have to fix that. But anyways, that's kind of what I've been working on. Our single is, we may still be out of file descriptors. We're singles. Everything just runs in one thread. So I've been really experimenting with these and trying to figure out which one's the best. And the conclusion I've come to is there really is no best. It depends on what you're doing. Some protocols are extremely fast. Like an Echo server could be done in single. Where a web server and FTP server should probably be done and pooled. Threaded would be more like a high-end computation or something like if you're working with a SETI project trying to look for extraterrestrial life and just crunching numbers. So anyways, you guys have asked. So this is what I've really been working on. Trying to try and get back to making tutorials. I really want to get this collision detection one done. I don't know. Shoot me a message if you would. Because I'm really trying to figure out how to do collision detection in JavaScript. I think what I'm going to do is I'm going to put the code in here and I'm going to do a timer. Yeah. And basically, I'm going to say for each object, if they intersect, blah, blah, blah, blah, which I hate doing because it's so horrible. But I want to do it in raw QML. I don't want any third-party stuff. Also, I did notice on Facebook, I have Facebook Messenger. I always have it turned off because the minute I turn it on, I get 8,000 messages. But some people will message me on Facebook Messenger, which is fine. But it's got this feature called a request. So if you send me a message, and we haven't really chatted before, it sends me this message saying so-and-so's requesting to talk to you. And I saw the other day that I had 450 requests that I had never seen before. So if you messaged me and I never got back just because I never got the request until the other day or was it yesterday, I don't remember. So am I going to go through 450 message requests? Probably not. I would recommend you join the VoidRome's Facebook group and ask your question in there. All right. So that's it for now. Thanks for watching. I will try, try, try to get some tutorials. But I'm interested in feedback about Xamarin versus Android Native because I'm really wrestling with Android Studio versus Xamarin. Obviously Android Studio won't do iOS applications and stuff like that. But I just really hate wasting my time. So I don't want to spend months and months and months learning Xamarin to find out that it won't do like a service, or it won't do this, or it won't do that, and just things like that. And I haven't admittedly had time to dig into it. All right. That's it. If you're out in cyberspace, maybe I'll see you in Dota or StarCraft, or I'll be blowing up your ship and leave.