💼I work at Outcomes4Me building an app that gives breast cancer patients the knowledge, tools, and options to navigate their treatment ✏️I have a blog which you can visit at https://www.hallada.net/blog/ 📫How to reach me: email@example.com | @tyhallada | LinkedIn 😄Pronouns: he/him/his 🌱I’m currently learning Rust and C++ 💡Interests: Rust language, game development, game mods, procedural generation, generative art, natural language processing, vim, performant web services
A networked Skyrim mod that allows players to own shops and visit other player's shops to buy and sell items. It's a rather ambitious project so I haven't yet released anything playable.
- BazaarRealmAPI: API server for the mod that stores all shop data
- BazaarRealmClient: DLL that handles requests and responses to the API
- BazaarRealmPlugin: SKSE plugin for the mod that modifies data within the Skyrim game engine
- BazaarRealmMod: Papyrus scripts, ESP plugin, and all other resources for the Skyrim mod
Advent of Code
I'm currently particpating in the Advent of Code 2020. I have also participated in 2019 and 2018. I commit my daily solutions to these repos:
This is a summary of coding side projects that I have worked on in the past but I'm not actively working on now. It's roughly sorted by most recently worked on first.
warp-caching: Testing different methods of caching with the warp web framework
warp-caching is an example project demonstrating a few different methods of caching with the warp web framework that was an offshoot of my work with the BazaarRealmAPI. My intention with this project is to eventually create some benchmarks of the different approaches and write a blog post about the findings. I think there is a general lack of information out there about how to handle caching in warp projects, and since I found a neat solution in my own project I wanted to share it with the rest of the community.
bevy-nbody: N-body simulation using bevy and bigbang crates
bevy-nbody is a N-body simulation using the bevy and bigbang Rust crates. I developed it as a way to try out the bevy game engine after it was initially released and to figure out what that ECS thing is all about.
It was a fun small project, but I will need to develop a proper game in bevy in the future to really understand how ECS works.
Animating dots around the screen is a favorite past-time of mine (see proximity-structures).
rust-skse-plugin: My mostly failed attempt at creating a fully-Rust SKSE plugin
rust-skse-plugin is my mostly failed attempt at creating a fully-Rust SKSE plugin. This was an offshoot of my work on BazaarRealmPlugin. I was able to successfully register the plugin with the SKSE interface, but I wasn't able to do much else due to limitations of FFI between Rust and C++ code. I intend to take another crack at this in the not-to-distant future using some of the great work that has been coming out of the cxx project.
chela: HTML & CSS Sanitizer and Transformer
chela is a HTML & CSS Sanitizer and Transformer written in Rust. chela (/ˈkiːlə/ - KEE-LUH) is a program that prunes untrusted HTML and CSS using a whitelist of rules. It is also a library for general-purpose HTML and CSS transforming that allows users to define custom functions that modify the parsed HTML tree node-by-node as it is traversed.
I came up with the idea for chela while working at Consider (a now defunct email startup) where we were having performance issues processing thousands of HTML emails for every user in our Ruby on Rails web server. A large chunk of that processing was sanitizing the HTML emails to remove dangerous code and to transform the styling and structure of the HTML tree to match the styling of the rest of our web app that the email would be embedded in. We used the Ruby project sanitize for this processing and chela is heavily inspired by it. The goal of chela is to match the ease and usability of sanitize but with the performance and reliability of Rust under the hood. The browser-grade html5ever HTML parser and rust-cssparser are used to parse HTML and CSS respectively.
While it is in a useable state now, it still needs quite a bit of work before it can be relied upon in any production service. The big things left are documentation, examples using it, tests, benchmarks, and writing a blog post once that's all done to announce it to the community.
icosahedron: Generates subdivided and truncated icosahedron spheres in Rust
icosahedron generates subdivided and truncated icosahedron spheres in Rust. I wrote a blog post about this project that you can read on my blog.
You can see this project live at: https://www.hallada.net/planet/.
ferret: A rust terminal program for searching DuckDuckGo
ferret is a terminal program for searching DuckDuckGo. It was my first major project that I developed in Rust as I began to learn the language. It has some major jankiness due to limitations in the TUI library I used, so I abandoned it before I finished all of the features I wanted to add to it.
This was a reincarnation of my search-pane program which I wrote about in a blog post in 2013.
transport: Procedurally generated train network simulation
transport is a procedurally generated train network simulation written in TypeScript.
I didn't get very far with this project but you can see what I did at https://transport.hallada.net/.
The idea of this project was to create a game out of managing and building huge train networks to deliver freight and passengers. I was inspired by the train networks that I built in the video game Factorio, and I wanted to develop a game focused on that aspect and take it to the extreme. I may rewrite this project in Rust using the bevy framework in the future, who knows.
proximity-structures: A procedurally generated and interactive animation created with PixiJS
panic-shack: Website for my Minecraft server
panic-shack is a little website I developed to host info about a Minecraft server that I host for friends. It features maps generated using Minecraft Overviewer and a custom log stream and chat box I hacked together with some python and screen.
Personal Site: Latest version of my personal website
You can see it live at https://www.hallada.net.
nlp: Various scripts for playing around with natural language processing/generation
It also contains an IPython Notebook detailing how to generate random poems in python. I wrote a blog post about that.
pi-glow: Scripts to control a strip of LPD8806 LEDs from a raspberry pi's GPIO
pi-glow contains scripts to control a strip of LPD8806 LEDs from a raspberry pi's GPIO.
whats-open: Simple Django site displaying which dining locations are currently open on George Mason University's campus
whats-open is a simple Django site displaying which dining locations are currently open on George Mason University's campus.
This repo contains the original code for the project, but it has been since taken over by the student group I helped found at GMU called SRCT.
laundry: Django site for displaying current laundry machine usage in GMU dorms
laundry is a Django site for displaying current laundry machine usage in GMU dorms.
It's no longer working anymore since I developed it years ago and GMU has changed their laundry systems since then. I did write a blog post about the project though.