June 18, 2025
This chunk of code that you see down here might not seem like much, but it's HUGE. Since the start of the bot, there's been an unsolvable bug, #16, haunting me forever. We couldn't transform people using the alternative method if we were transformed ourselves. Well, turns out, the best solution is often the simplest, and, after over half a year of that pesky middle finger of a TODO, I finally was able to say I fully fixed it, with something so simple it sounds stupid...
I also fixed a few more bugs that were bugging me down and I'm eating through TODOs (and adding a lot more too :D)
This project is going so good I swear! :3
I have fixed some more issues, with all of the code. Also added a limit to how many users we can have in a server to execute the wipe command, so that we don't find any issues later. Also reworked the transformation function so that it's slightly faster, and the logic graph slightly prettier :3
After a bit more work, I've started to work on the TSF standard a bit more, since it's still very unrefined. v1.1 isn't too heavy on changes, but that's the idea. I don't wanna throw caution to the wind and end up with a hot mess, so I'm just giving it small touches one at a time. I've also taken my time to fix one or two issues I found around whilst testing.
Welp, I have decided to update both the web as well as the bot. Mainly, I've improved how we handle URLs. Now we accept more cases and handle them properly, using some ReGex and some basic extra checks.
I have been hard at work documenting and fixing some functions around (only one function ngl, I still have a lot of work to do). I want to make this version a major revision of the code, that documents everything and also takes a bit of effort to make my code and storage soutions more efficient. Lets see how it goes... :3
I have been hard at work refactoring some code around! I want the page to be as light as it can without losing too much adaptability, modularity, or readability, and I think I've done a pretty good job. I've compressed the CSS pretty well, and made the JS not only slightly smaller but also better, by handling error codes in a proper, user-readable manner. I also added the GitHub badges to the footer of the main page so that people might feel more inclined to leave a start and/or check the source code. I don't think I'll do too much else today, but tomorrow I might start implementing a least a precursor to the TF Roulette! :D
Welp, I've been cleaning up the mess I left on my messy development cycles. I just have to do a bit more of this before starting to iterate again...
I finally finished the webstie! :D It is now linked as the demo link (http://www.transformate.live), and I think I'm ready for my second ship already! Let's go!
Welp, I'm testing v2 of the bot. I have bought a domain and put he docs there already. Now I am testing the API o see if it's fit o be on the same domain and afterwards I will make the website work on the domain. So fun :D
OK, improved the API, added a few endpoints, documented everything with examples... It's going great! :D Time to test the domain xd
OK, the website now supports uploading files for editing, or just to check their contents if you really want tbh. Now, lets improve the UI a bit and get the API in a better state...
Added a lot of cool stuff. New API interactions, improved backend and fronend, improved performance on both... The bot is shaping really great and we're halfway there to the v2 release, I'm so excited!!! :D
I have improved how the page looks, specially on mobile, where it had a little bug.
I still have to add a few features, but I have made the page way better to use on mobile devices! It's going so good :D
Welp, I've been hard at work optimizing and cleaning up the code even further. Everything is looking good so far. Before releasing the web page I want to try and add a few more things though...
Finished the dark mode, upgraded the look of the webpage, and optimized the underlying code a lot. Now I'm working on making the bot more efficient, faster, and the code more abstract. This will allow us to do a lot of fun things! >:D
I have optimized the code further, and am working on a dark mode. his is going well. Now, to bed, tomorrow will be another day... :D
Welp, I've been hard at work, and I'm almost done with the TSF Data Editor, just have to do a bit more, like add censors and an output field, but it's looking good so far :D
The website now works as expected with the new API implementation, now, lets make the TSF file editor...
I have decided to move the API to work with Discord instead of our own login system. This both simplifies the API, as well as making it more secure. The work required was grueling though :<
Welp, my head hurts already, time to go to bed and figure his out tomorrow... :p
The web page is shaping so good, we already have a login page that works with the API, looks not ugly, and even an account page. Now, I can't yet allow users to modify their data, since I need to make an API endpoint for that... Lets get working! :D
Ok so I stared work on the web. Not looking too pretty yet, but the login does work and does grant us an API token to use so...
Fixed two pesky bugs, I think we're ready for the first ship >:D
And with that, the documentation is done! I think I'll wait until I fix some bugs before shipping. Let's see how it goes...
I think I'm gonna leave it here for today, maybe... My hand aches...
I have spent way more time than I'm willing to admit, redoing the Terms of Service and the Privacy Policy so that they would look good, and also modified them to be more aligned with the goals of the project.
I have finally documented the commands... Only the transformation ones though :') I have also documented the save file format, as you can see, and added some extra information and corrected typos. My hands hurt :D
After finishing the twinning/merging tutorial, I have written the /transform command documentation. I have decided to do a small simplified logic diagram for every command so the internal logic is easier to understand for people, and an expected behaviour can easily be traced. I'm so loving MaterialDocs. :3
Welp, and that's the basic tutorial done... Now lets do the twinning/merging tutorial, and then command documentation... Let's go...
Welp, I've been doing great. Got almost half of the basic introduction finished. The release of the docs is getting near!
Welp, I have finished making the command group indices. Now I'll get with the basic tutorials...
Turns out, properly documenting a project as big as TransforMate takes a good while... I haven't finished even a 20%... :(
Welp, after researching, setting up, and doing some basic work, the docs are shaping up pretty well. There's still a lot of work needed, but I thought I'd do a devlog to register that I'm not just accumulating hours without doing anything. There's a lot of stuff going on for these docs, so they're easy to read, understand, and modify. And also pretty. Anyways, back to work now...
Some bugs fixed, and code cleant up, nice. Let's now make some proper docs for all of the bot, and then on to the web interface...
Welp, after a good while and amount of work, I have finally properly documented the API, as well as created some new checks for blocked users and optimized some stuffs internally. This basic API is ready for release, now I just have o make a proper good-looking web for it...
I have finally finished the API infrastructure, now I can start working on the documentation, and then the web interface :D
Welp, and that's API-driven transformation done... Now for the modifiers, and the basic API will be done...
I've been hard a work implementing the transformation function in the API... It's still only half done, but it's shaping well, let's see how it turns out...
I have given the API a few further improvements, as well as fixed some issues with the copying function. The bot is shaping up really well for the 1.6 update... :3
I have now made the program more secure by moving the secret key to the .env, and turning the fake user database into a (still fake) JSON file that contains the user database.
I have also made it so you HAVE to login to use the API, and added a few security features more.
Welp, I've been working hard on implementing the basics of an API. For now I've basically modified the FastAPI tutorial to fit my needs. Now I need a way for users to create an account to access different API functionality, and also to set up scopes...
A silly little Discord bot to transform your mates, and have some fun. Also works for plural peeps.
Welp, I had to add a few features and optimize this a bit, since I had a typo on the README. Oops... Well, enjoy...
Ok, quick update, after some more esting I discovered that the chatt would overflow all over the screen on mobile. It's been fixed now :3
I have finally, after more work than I'm willing to admit, gotten to 10 hours of work on this project. My part is done, and I have fixed a few bugs that made this game actually unplayable. Now, it's your turn to find bugs and tell me how to improve. I await your judgement.
After some playing around, I have made two releases (I forgot to add the systemd template for peope to use to the github repo, my bad), and added a demo of the page, running on my very own server, through a VPN. I know, not the most secure, but enough for people to have fun and hep me test the app. If you find any bugs, pease report them on GitHub!!!
I've added a little timer that lets you know how much time you (very roughly) have left with your partner
The report feature had some issues. After fixing those, as well as a few more bugs, and some styling, I'm nearing the end on the development of this page. Though, I wanted to try and reach 10 hours, so maybe I'll try and add some new features...
A new reporting feature has been added. I haven't tested it much, and this is all I can do for today. More tomorrow... I hope it works...
Answering MarsasGRG's, the FAQ page has been upgraded.
Welp, I fixed a few issues, including a big issue with the pairing system. Now, I'm thinking of adding a few more features, mainly server-side, and then this beautiful app will be ready to deploy :3
We now have a results screen, as well as a one minute timeout! And it works just as expected! Now that the basic functionality is done, I just need to make it nice to look at, and add an early end button, and with a few code cleanups and optimizations, this project will be done!
But don't worry, I think there's still enough work here to take it up to 10 hours, maybe even more!
Welp, I've got paired chat working, and I even made a little Waiting for other players loading screen. Right now, I have a pretty good and neat little Omegle clone.
The next step is to make the time counter for each chat and then let people choose whether they think the other person was or wasn't queer...
The chat seems to be working pretty good! Only problem rn is that it's more of a chatroom, since, well, it broadcasts messages to all clients. But I do have the base down so, let's try and get it properly working... :3
The basics for the chat are down. I had to make a whole Node.js and npm setup, but it's looking quite good. Tomorrow I'll start work on the good stuff, that is, sending messages over to the client, pairing up, etc. Let's see how it goes...
Welp, the game is starting to take shape... Now comes the scary part, actually making chatting with a stranger a reality... Let's see how it goes..
Well, before even having the actual game done, I have done the FAQ page, as well as made the front page a bit neater. Now, to the actual game...
Welp, and that's all the coding I'm gonna do for today. More tomorrow...
Welp, this is kind of a silly little project, but who knows where i might go...?
Queer or Not is a simple web game, where you'll be paired with a random stranger, and both of you will have one minute of text conversation, to try and guess whether the other person is queer or not.
Well, I leave you with the latest picture to come out of his little program. I have enjoyed his project a lot, but it's time to move onward to the next one. Hope everyone likes it as much as I did making it! <3
After adding a command line interface, I decided to have some fun and do a partial depth=5 map. Gotta say, i didn't disappoint, oh my god...
Welp, after updating the code a bit further, making various improvements, like better error handling and request limit handling, I've come to adore this little sily project, and the cute graphs it generates.
They remind me a lot of like, blooming flowers, perhaps? hey are really lovely. I'm wondering if I could make them interactive...
Once again, turns out my graphs were not fully correct. Turns out you have to ask for the future result... Oops... Well, the graphs are prettier now imo :3
I made this depth=5 graph just to see how it would look. Just this took a few hours. I'm glad I did though, it's beautiful...
After doing a few upgrades, I have significantly reduced the amount of links, as well as further optimizing the code. The attached image, isn't only a more precise representation of the structure of the graph, but also computed in 40.91 seconds on my computer, which, whilst it is in fact almost five times what the time to compute a similar graph was before, this one is way more accurate.
I have also made it so that, now, certain links that will often give an error, are filtered out, as well as fixing improper parsing of links pointing to the same domain.
We're nearing a usable version, bit by bit...
Welp, not only have I parallelized the program, but I have also made it so that links are pruned effectively. Without doing any links to the page of origin, I've gotten the attached graph in 8.12 seconds, a marvelous time. Now I just have to fix the program a bit more and add some features, and I believe it' be ready to ship soon enough!
So, turns out my code wasn't as good as I thought... I should've realized earlier, but all the nodes pointed back to the origin, instead of their proper subnode. Now, that's fixed, and the next step is parallelizing this so we can run faster and deeper!
Well, so here is the preliminary version. For now, it just generaes a svg (easily switchable to a png, like seen here), with a map of the specified url with the specified depth.
The graph is colored based on the depth of the search that was required to get to said link. It's very noisy and difficult to see though :(
The next steps would be improving visibility and maybe trying to make it interactive some way? Also, it would be neat to see if a webpage is connected at a certain depth.
Let's see how it goes...
Wow, the time isn't right at al on this. Well, anyways...
I've gotten the basics down. We can scrape any web with a simple urlopen and some regex. I've specially made it so that we differentiate between links to external pages, and sublinks, at least crudely, though I might improve this to be full-on differentiation in the future.
I used graph-tool to generate the nodes that you see down here, and, honestly, it's a really great and pretty stunningly fast tool. Let's see where it gets us...
I managed to fix it!
Turns out I forgot the fact I'm passing color as an unsigned byte, so I had to divide by 255 to get a proper value. Now it works perfectly!
Now, to work on abstracting states so we can clean up the code and make main.cpp neater...
So, even though this project was started way before this summer, I think it's a good way to use my time. I'll post here updates about how it goes.
To explain what I'm working on right now, I have o explain to you the basic working principle of the engine.
The engine works with states in mind. Every country is constituted by a set of provinces. If you've ever played Europa Universalis or Hearts of Iron, you know what I'm taking about.
So, to define these provinces, I use two files. A color-coded png, which is read through the stb_image library (I plan on making my own version of this, since the idea is for the engine to have the least amount of dependencies), and a txt fie containing the actual information of the province.
The bug I'm trying to fix now is the fact that, when rendered, provinces don't have their own unique color, instead seemingly sharing one per state for some reason.
Let's see what the fix might be...
A video gam enine similar to the Paradox Interactive Claustwitz engine, with the objective of making fantasy strategy games. The repository is private, since I plan to turn it into an actual game at some point, and don't want to leak the code, so sorry about that :( When I have a demo it will be public though :D
This was widely regarded as a great move by everyone.