Wowie what a gay little website for my gay little self aria.coffee
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: Add a portfolio to the website

Aria 4f347285 e1ee5f3f

+201 -2
+5 -2
src/components/NavHeader.astro
··· 45 45 </div> 46 46 </div> 47 47 <Partition> 48 - <a href="/" class="nav-btn">Home</a> | 48 + <p class="text-center"> 49 + | <a href="/" class="nav-btn">Home</a> | 49 50 <a href="/blog" class="nav-btn">Blog</a> | 50 51 <a href="/about" class="nav-btn">About</a> | 51 52 <a href="/friends" class="nav-btn">Friends</a> | 52 - <a href="/other buttons" class="nav-btn">Moar 88x31</a> 53 + <a href="/other buttons" class="nav-btn">Moar 88x31</a> | 54 + <a href="/portfolio" class="nav-btn">Portfolio</a> | 55 + </p> 53 56 </Partition>
+12
src/components/PortfolioProject.astro
··· 1 + --- 2 + import Partition from "./Partition.astro"; 3 + 4 + const { name, date, tags, description, link } = Astro.props; 5 + --- 6 + <Partition> 7 + <h2><a class="nav-btn text-2xl" href={link} target="_blank">{name}</a></h2> 8 + <p>Date: {date}</p> 9 + <p><sub>{tags}</sub></p> 10 + <hr/> 11 + <p><slot /></p> 12 + </Partition>
+184
src/pages/portfolio.astro
··· 1 + --- 2 + import Partition from "../components/Partition.astro"; 3 + 4 + import BaseLayout from "../layouts/BaseLayout.astro"; 5 + import PortfolioProject from "../components/PortfolioProject.astro"; 6 + 7 + const Project = PortfolioProject; 8 + 9 + const pageTitle = "Portfolio"; 10 + 11 + const languagesUsed = [ 12 + "Rust", 13 + "GDScript", 14 + "Go", 15 + "Python", 16 + "JavaScript", 17 + "C#" 18 + ]; 19 + 20 + // languagesUsed.sort((a, b) => a.localeCompare(b.firstname)) 21 + --- 22 + 23 + <BaseLayout pageTitle={pageTitle}> 24 + <Partition> 25 + <h1 class="text-4xl text-center">Portfolio</h1> 26 + 27 + <p>This is a list of some of my projects that I've worked on over the years.</p> 28 + <p>Not all of them are complete or expansive but with each project I've grown as a developer.</p> 29 + <br/> 30 + <p>I have worked in these languages:</p> 31 + <ul class="list-disc pl-5"> 32 + {languagesUsed.map((language) => ( 33 + <li>{language}</li>))} 34 + </ul> 35 + </Partition> 36 + <main> 37 + <!--<Project--> 38 + <!-- name="Lorem ipsum"--> 39 + <!-- date="29th December 2024"--> 40 + <!-- tags="Lorem, ipsum"--> 41 + <!-- link="https://aria.coffee"--> 42 + <!--&gt;--> 43 + <!-- Lorem ipsum dolor sit amet--> 44 + <!--</Project>--> 45 + <Project 46 + name="Open-FBT" 47 + date="26th July 2021" 48 + tags="Rust, Discord, Bot, Redis, Docker, Python" 49 + link="https://github.com/BuyMyMojo/open-fbt" 50 + > 51 + Open-FBT is an open sourced public variant of the <a href="https://fbtsecurity.fbtheaven.com/" 52 + target="_blank" class="nav-btn backdrop-contrast-150">FBTHeaven 53 + discord bot</a>, a bot I created to help moderate discord communities. This bot is in 419 servers as of the 54 + 29th December 2024 and has processed over 36,000 user commands since July 31 2022. 55 + <br/><br/> 56 + In 2021 I was approached by a friend who runs a VRChat dance club to help work on their Discord bot, this 57 + was originally written in Python using <span class="backdrop-contrast-150">discord.py</span> which 58 + eventually got dropped by the developer so we had to migrate to <span 59 + class="backdrop-contrast-150">nextcord</span>. 60 + <br/><br/> 61 + After a year of building the bot, and dealing with the strange performance characteristics of nextcord, in 62 + July 2022 I decided to start rewriting the bot in Rust to make use of the increased performance and 63 + portability that the new language afforded. I also moved to using Redis as the database of choice instead of 64 + SQLite for much faster access to our thousands of DB entries. 65 + <br/><br/> 66 + After a few hundred commits and a couple years of work I decided to fork my own code to strip out any 67 + confidential info and release an open variant to the world as a final send off to the longest running 68 + project 69 + I have worked on. 70 + </Project> 71 + <Project 72 + name="discord-chat-parser" 73 + date="4th August 2021" 74 + tags="Python, Golang, Discord, CLI" 75 + link="https://github.com/BuyMyMojo/discord-chat-parser" 76 + > 77 + This was an additional tool made to be used with Open-FBT's predecessor. It takes exported csv files from <a 78 + href="https://github.com/Tyrrrz/DiscordChatExporter" , target="_blank">DiscordChatExporter</a> and 79 + extracts the UserIDs within. This was made to log users found within discord servers centered around VRChat 80 + piracy and trolling to then bar them from entry of any server that both used Open-FBT's predecessor and 81 + opted in to this functionality. 82 + 83 + Originally written in Python this was another project I transferred to a new language, unlike the bot itself 84 + I decided to write this in Go for simplicity. 85 + </Project> 86 + <Project 87 + name="Mojo's Kitchen Chaos(Course work)" 88 + date="23rd Febuary 2023" 89 + tags="Unity, C#, GameDev, Course" 90 + link="https://buymymojo.itch.io/mojos-kitchen-chaos" 91 + > 92 + <sub><a href="https://github.com/BuyMyMojo/mojo-kitchen-chaos" target="_blank">Source code</a></sub> 93 + <hr> 94 + In order to learn more about working in Unity I followed <a 95 + href="https://www.youtube.com/watch?v=AmGSEH7QcDg" target="_blank">this</a> course from <a 96 + href="https://www.youtube.com/@CodeMonkeyUnity" target="_blank">Code Monkey</a> on YouTube. 97 + </Project> 98 + <Project 99 + name="Godot Micro Games(Course work)" 100 + date="23rd Febuary 2023" 101 + tags="Godot, GDScript, GameDev, Course" 102 + link="https://buymymojo.itch.io/" 103 + > 104 + <ul class="list-disc pl-5"> 105 + <li> 106 + <a href="https://buymymojo.itch.io/speedy-saucer" target="_blank">Speedy Saucer(2D)</a> 107 + </li> 108 + <li> 109 + <a href="https://buymymojo.itch.io/alien-attack" target="_blank">Alien Attack(2D)</a> 110 + </li> 111 + <li> 112 + <a href="https://buymymojo.itch.io/martian-mike" target="_blank">Martian Mike(2D)</a> 113 + </li> 114 + <li> 115 + <a href="https://buymymojo.itch.io/project-boost" target="_blank">Project Boost(3D)</a> 116 + </li> 117 + </ul> 118 + <hr> 119 + These are some small games made while following <a href="https://www.gamedev.tv/" 120 + target="_blank">GameDev.tv</a>'s Godot 2D and 3D courses. 121 + </Project> 122 + <Project 123 + name="Rust 3x+1" 124 + date="5th March 2022" 125 + tags="Rust, Math, CLI" 126 + link="https://github.com/BuyMyMojo/rust-3xp1" 127 + > 128 + I found myself watching a <a href="https://youtu.be/094y1Z2wpJg" target="_blank" 129 + class="nav-btn backdrop-contrast-150">Veritasium video</a> about the Collatz 130 + Conjecture, more simply known as 3x+1, and I found myself drawn to it for a time. 131 + <br/><br/> 132 + I was looking for a small project to work on and figured I'd try my hand at writing my own tool to brute 133 + force the Conjecture to find another looping sequence. I never found one sadly but the project was a great 134 + learning exercise during my early days of Rust development. 135 + </Project> 136 + <Project 137 + name="RedisFS" 138 + date="14th July 2022" 139 + tags="Rust, Redis, CLI" 140 + link="https://github.com/BuyMyMojo/RedisFS" 141 + > 142 + I had a really silly Idea while working on the bot behind Open-FBT, what if I used a Redis database to store 143 + files? well the answer if a pretty fast but inefficient RAM based file storage server. 144 + </Project> 145 + <Project 146 + name="verify-rs" 147 + date="8th January 2023" 148 + tags="Rust, Hashing, CLI" 149 + link="https://github.com/BuyMyMojo/verify-rs" 150 + > 151 + verify-rs is a simple cli tool for printing out several kinds of hashes from an input file. I just needed a 152 + simple tool to do this so I decided to write my own. It supports sha1, sha256, sha512, sha3_256, sha3_512, 153 + sha3_224, sha3_384, blake2s256, blake2b512 and blake3. 154 + </Project> 155 + <Project 156 + name="Another ssimulacra2 cli(as2c)" 157 + date="23rd October 2023" 158 + tags="Rust, CLI" 159 + link="https://github.com/BuyMyMojo/another_ssimulacra2_cli" 160 + > 161 + as2c was a fork of the initial release of <a href="https://github.com/rust-av/ssimulacra2_bin" 162 + target="_blank">ssimulacra2_bin</a> I made to add "video" 163 + support. 164 + <br/><br/> 165 + This was accomplished by having the user export both the Source and Distorted videos as image sequences into 166 + separate folders and then comparing files with matching names. Since the ssimulacra2 calculation is single 167 + threaded I added the ability to run the calculations across multiple threads when working in "video mode". 168 + <br/> 169 + Another addition I made was allowing the user to specify the colour space and colour transfer of the images, 170 + in the initial implementation of the tool it defaulted to SRGB BT709. 171 + </Project> 172 + <Project 173 + name="AI-Gopher" 174 + date="4th Febuary 2022" 175 + tags="Golang, Twitter, Bot" 176 + link="https://github.com/BuyMyMojo/AI-Gopher" 177 + > 178 + AI-Gopher is a bot that automatically posted a tweet generated by ChatGPT3. Honestly nothing great or useful 179 + but it was at least a good opportunity to learn more about Go and interacting with some APIs and OAuth 1.0. 180 + <br/><br/> 181 + This project was technically against the Twitter TOS at the time but I didn't know that, oops! 182 + </Project> 183 + </main> 184 + </BaseLayout>