Open-FBT
Date: 26th July 2021
Rust, Discord, Bot, Redis, Docker, Python
Open-FBT is an open sourced public variant of the FBTHeaven
discord bot, a bot I created to help moderate discord communities. This bot is in 419 servers as of the
29th December 2024 and has processed over 36,000 user commands since July 31 2022.
In 2021 I was approached by a friend who runs a VRChat dance club to help work on their Discord bot, this
was originally written in Python using discord.py which
eventually got dropped by the developer so we had to migrate to nextcord.
After a year of building the bot, and dealing with the strange performance characteristics of nextcord, in
July 2022 I decided to start rewriting the bot in Rust to make use of the increased performance and
portability that the new language afforded. I also moved to using Redis as the database of choice instead of
SQLite for much faster access to our thousands of DB entries.
After a few hundred commits and a couple years of work I decided to fork my own code to strip out any
confidential info and release an open variant to the world as a final send off to the longest running
project
I have worked on.
discord-chat-parser
Date: 4th August 2021
Python, Golang, Discord, CLI
This was an additional tool made to be used with Open-FBT's predecessor. It takes exported csv files from DiscordChatExporter and extracts the UserIDs within. This was made to log users found within discord servers centered around VRChat piracy and trolling to then bar them from entry of any server that both used Open-FBT's predecessor and opted in to this functionality. Originally written in Python this was another project I transferred to a new language, unlike the bot itself I decided to write this in Go for simplicity.
Mojo's Kitchen Chaos(Course work)
Date: 23rd Febuary 2023
Unity, C#, GameDev, Course
In order to learn more about working in Unity I followed this course from Code Monkey on YouTube.
Godot Micro Games(Course work)
Date: 23rd Febuary 2023
Godot, GDScript, GameDev, Course
These are some small games made while following GameDev.tv's Godot 2D and 3D courses.
Rust 3x+1
Date: 5th March 2022
Rust, Math, CLI
I found myself watching a Veritasium video about the Collatz
Conjecture, more simply known as 3x+1, and I found myself drawn to it for a time.
I was looking for a small project to work on and figured I'd try my hand at writing my own tool to brute
force the Conjecture to find another looping sequence. I never found one sadly but the project was a great
learning exercise during my early days of Rust development.
RedisFS
Date: 14th July 2022
Rust, Redis, CLI
I had a really silly Idea while working on the bot behind Open-FBT, what if I used a Redis database to store files? well the answer if a pretty fast but inefficient RAM based file storage server.
verify-rs
Date: 8th January 2023
Rust, Hashing, CLI
verify-rs is a simple cli tool for printing out several kinds of hashes from an input file. I just needed a simple tool to do this so I decided to write my own. It supports sha1, sha256, sha512, sha3_256, sha3_512, sha3_224, sha3_384, blake2s256, blake2b512 and blake3.
Another ssimulacra2 cli(as2c)
Date: 23rd October 2023
Rust, CLI
as2c was a fork of the initial release of ssimulacra2_bin I made to add "video"
support.
This was accomplished by having the user export both the Source and Distorted videos as image sequences into
separate folders and then comparing files with matching names. Since the ssimulacra2 calculation is single
threaded I added the ability to run the calculations across multiple threads when working in "video mode".
Another addition I made was allowing the user to specify the colour space and colour transfer of the images,
in the initial implementation of the tool it defaulted to SRGB BT709.
AI-Gopher
Date: 4th Febuary 2022
Golang, Twitter, Bot
AI-Gopher is a bot that automatically posted a tweet generated by ChatGPT3. Honestly nothing great or useful
but it was at least a good opportunity to learn more about Go and interacting with some APIs and OAuth 1.0.
This project was technically against the Twitter TOS at the time but I didn't know that, oops!