Home Blog Docs Download Projects

Blog


Hello World

Hello! Welcome to my blog! I am Nadelio! And this website is primarily for my programming language, Apollo! I intend to make this a place (Blog) where I just kind of stream-of-consciousness post things.
I'm not 100% on what exactly to talk about rn lol
Oh! If you have any suggestions for how I can improve the website, please do let me know! You can message me on the PLDev discord or Submit an issue on the Apollo PL GH repo!
Anyways, I don't got much else to say rn, so I'll be signing off
- Nadelio

Date: 09/24/2025

IRC Stuff

So I've been looking into a lot of IRC stuff lately, mainly because it gives off heavy retro vibes and I like that, but also because I am looking for an alternative to Discord, because it is becoming more and more a POS :)
Anyways, something I see a lot is essentially server bots, they take in special commands from uses, stuff like "!draw" or "!daily". Well this looked really cool (because duh, more retro stuff), so I want to try to build a server bot to be the host of my first IRC server, basically the entire gimmick of the server is that the bot will be like a fake casino game, it pays out in virtual (worthless) credits that can be used with the bot for random collectibles and tickets to buy back in. Of course, my immediate thought is, "what happens when someone doesn't have any credits to get more tickets?" Well then just wait a day and the bot will give you a free ticket. It's kind of a dumb little bot, but I could see people having fun with it, and it could help develop a nice community around the bot. :)
Beyond that, I've noticed that the IRC protocol almost explicitly says "only ascii", because all it's rules are around ascii. So trying to convert those rules over to UTF would be kind of annoying, so why not just use ascii? Anyways, the IRC protocol seems kind of simple. I just need to look into implementation specifics. I don't want to take the easy way out and just use an IRC Rust crate. It'll be a learning curve to figure out how to do networking in Rust, but I can see it being a fun challenge! :D If I can find a good article or SO answer about how to implement IRC from scratch, that would be perfection, because I can get the semantics out of the way and start building the fun parts of the IRC client and server!
I have a few ideas on how to make the IRC client, I'm thinking some kind of saving system, so you can rejoin a channel or server you left. I would also like to do some fun server stuff, so you could design a banner or other decals that shows up in the TUI? IDK, I'll have to do some testing to see how plausible that is, considering I would need to send that to every client whenever they join the server.
That's it for now though, so I'll be signing off
- Nadelio

Date: 09/24/2025

Coding network stuff is hard

Hello again, an update on my whereabouts, I'm still working on the IRC client, and honest to goodness, I have ZERO idea how to implement the network code, like not only do I just not know how to code networking stuff anyways, I can barely understand how to properly implement the IRC protocol!
So I did a taboo, I made GPT make a test client for me. NOW BEFORE YOU GET THE PITCHFORKS, I am NOT using that code in production. I am instead using it as essentially a study guide, I want to see how it got things to work, rip those pieces out and see how to make them SECURE, then I will use that knowledge to continue to implement the IRC client, and hopefully later on, the IRC server.
Another issue I came across was handling asynchronous code well. I don't fully understand what makes async code "safe", beyond avoiding race conditions. I'm not very good at avoiding race conditions, but if I just keep all the code separate and only allow threads to communicate through a single struct or whatever, I think I could make it safe. Maybe. It'll take time, testing, and lots of review, but hopefully it'll come together nicely.
I still need to figure out whether or not I want to migrate the TUI stuff to a separate thread and pass on input data that way, I am just worried about the possibility of TUI errors. I need to find a way to cut off inputs after the buffer has reached a certain length (510 bytes). I think probably using raw mode could help with that.
I bet that has some issues that I am not recognizing right now though. It'll definitely be something that I have to figure out on the TUI branch though, can't integrate it into the network branch because that would be topic branch mixing and that's bad for good version control (and who would I be if I ignored my own contributing rules?). Oh! BTW, if you are interested in helping me with this project, feel free to add a PR here! That's pretty much all from me today, so I'll be signing off
- Nadelio

Date: 10/01/2025