From 4f347285bb339e300d016e705b2783dc5812367c Mon Sep 17 00:00:00 2001 From: Aria Date: Sun, 29 Dec 2024 15:43:17 +1100 Subject: [PATCH] feat: Add a portfolio to the website --- src/components/NavHeader.astro | 7 +- src/components/PortfolioProject.astro | 12 ++ src/pages/portfolio.astro | 184 ++++++++++++++++++++++++++ 3 files changed, 201 insertions(+), 2 deletions(-) create mode 100644 src/components/PortfolioProject.astro create mode 100644 src/pages/portfolio.astro diff --git a/src/components/NavHeader.astro b/src/components/NavHeader.astro index 0fd744c..b77b20c 100644 --- a/src/components/NavHeader.astro +++ b/src/components/NavHeader.astro @@ -45,9 +45,12 @@ const optimizedBackgroundLQ = await getImage({ - Home | +

+ | Home | Blog | About | Friends | - Moar 88x31 + Moar 88x31 | + Portfolio | +

diff --git a/src/components/PortfolioProject.astro b/src/components/PortfolioProject.astro new file mode 100644 index 0000000..60838f3 --- /dev/null +++ b/src/components/PortfolioProject.astro @@ -0,0 +1,12 @@ +--- +import Partition from "./Partition.astro"; + +const { name, date, tags, description, link } = Astro.props; +--- + +

{name}

+

Date: {date}

+

{tags}

+
+

+
diff --git a/src/pages/portfolio.astro b/src/pages/portfolio.astro new file mode 100644 index 0000000..a30d0a5 --- /dev/null +++ b/src/pages/portfolio.astro @@ -0,0 +1,184 @@ +--- +import Partition from "../components/Partition.astro"; + +import BaseLayout from "../layouts/BaseLayout.astro"; +import PortfolioProject from "../components/PortfolioProject.astro"; + +const Project = PortfolioProject; + +const pageTitle = "Portfolio"; + +const languagesUsed = [ + "Rust", + "GDScript", + "Go", + "Python", + "JavaScript", + "C#" +]; + +// languagesUsed.sort((a, b) => a.localeCompare(b.firstname)) +--- + + + +

Portfolio

+ +

This is a list of some of my projects that I've worked on over the years.

+

Not all of them are complete or expansive but with each project I've grown as a developer.

+
+

I have worked in these languages:

+
    + {languagesUsed.map((language) => ( +
  • {language}
  • ))} +
+
+
+ + + + + + + + + + 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. +
+ + 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. + + + Source code +
+ In order to learn more about working in Unity I followed this course from Code Monkey on YouTube. +
+ + +
+ These are some small games made while following GameDev.tv's Godot 2D and 3D courses. +
+ + 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. +
+ + 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 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. + + + 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 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! +
+
+