Skip to content
Avatar
Block or Report

Block or report thallada

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Add an optional note:
Please don't include any personal information such as legal names or email addresses. Maximum 100 characters. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
thallada/README.md
  • 💼 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: tyler@hallada.net | @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

Current Projects

modmapper

Creating a database of all Skyrim mods on nexusmods.com and displaying the cells they edit on a map. Should make it easier to figure out what mods conflict with each other in the worldspace, and to find untouched areas of the map to build new mods in. View the map at modmapper.com. I also wrote a blog post about it.

  • skyrim-cell-dump: Library and binary for parsing Skyrim plugin files and extracting CELL data
  • modmapper: Downloads every Skyrim mod plugin from nexusmods.com and saves CELL edits of each to a database
  • modmapper-web: Displays cell edits from Skyrim mods as a heatmap on a map of Skyrim

Bazaar Realm

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.

Advent of Code

I'm currently particpating in the Advent of Code 2022. I have also participated in several past years. I commit my daily solutions to these repos:

Shelved Projects

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.

planet is the sibling project which is the web frontend I developed in regl.js to display the 3D icosahedrons and hexspheres.

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

proximity-structures is a procedurally generated and interactive animation created with PixiJS.

You can see it live at https://proximity.hallada.net/. I also wrote a blog post about this project.

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

thallada.github.io is my main website which is built with Jekyll.

You can see it live at https://www.hallada.net.

nlp: Various scripts for playing around with natural language processing/generation

nlp is a collection of python scripts I wrote while playing around with generating text using natural language processing libraries like nltk and spacy.

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.

Pinned

  1. Latest version of my personal website

    HTML

  2. modmapper Public

    Downloads every Skyrim mod plugin from nexusmods.com and saves CELL edits of each to a database

    Rust 13 1

  3. Web frontend for modmapper.com

    TypeScript 10 1

  4. icosahedron Public

    Generates subdivided and truncated icosahedron spheres in Rust.

    Rust 14 2

  5. bevy-nbody Public

    N-body simulation using bevy and bigbang crates

    Rust 21 1

  6. A procedurally generated and interactive animation created with PixiJS

    JavaScript 2

1,108 contributions in the last year

15 contributions on February 6, 2022 8 contributions on February 7, 2022 13 contributions on February 8, 2022 3 contributions on February 9, 2022 2 contributions on February 10, 2022 3 contributions on February 11, 2022 7 contributions on February 12, 2022 3 contributions on February 13, 2022 2 contributions on February 14, 2022 1 contribution on February 15, 2022 1 contribution on February 16, 2022 1 contribution on February 17, 2022 1 contribution on February 18, 2022 No contributions on February 19, 2022 No contributions on February 20, 2022 No contributions on February 21, 2022 3 contributions on February 22, 2022 1 contribution on February 23, 2022 4 contributions on February 24, 2022 5 contributions on February 25, 2022 No contributions on February 26, 2022 5 contributions on February 27, 2022 6 contributions on February 28, 2022 3 contributions on March 1, 2022 5 contributions on March 2, 2022 7 contributions on March 3, 2022 4 contributions on March 4, 2022 No contributions on March 5, 2022 No contributions on March 6, 2022 No contributions on March 7, 2022 1 contribution on March 8, 2022 6 contributions on March 9, 2022 10 contributions on March 10, 2022 No contributions on March 11, 2022 5 contributions on March 12, 2022 No contributions on March 13, 2022 7 contributions on March 14, 2022 10 contributions on March 15, 2022 5 contributions on March 16, 2022 8 contributions on March 17, 2022 18 contributions on March 18, 2022 9 contributions on March 19, 2022 No contributions on March 20, 2022 2 contributions on March 21, 2022 3 contributions on March 22, 2022 18 contributions on March 23, 2022 6 contributions on March 24, 2022 3 contributions on March 25, 2022 5 contributions on March 26, 2022 No contributions on March 27, 2022 14 contributions on March 28, 2022 2 contributions on March 29, 2022 3 contributions on March 30, 2022 2 contributions on March 31, 2022 4 contributions on April 1, 2022 No contributions on April 2, 2022 No contributions on April 3, 2022 2 contributions on April 4, 2022 2 contributions on April 5, 2022 4 contributions on April 6, 2022 5 contributions on April 7, 2022 21 contributions on April 8, 2022 No contributions on April 9, 2022 No contributions on April 10, 2022 1 contribution on April 11, 2022 3 contributions on April 12, 2022 No contributions on April 13, 2022 No contributions on April 14, 2022 No contributions on April 15, 2022 No contributions on April 16, 2022 No contributions on April 17, 2022 No contributions on April 18, 2022 No contributions on April 19, 2022 No contributions on April 20, 2022 No contributions on April 21, 2022 No contributions on April 22, 2022 No contributions on April 23, 2022 No contributions on April 24, 2022 No contributions on April 25, 2022 2 contributions on April 26, 2022 2 contributions on April 27, 2022 4 contributions on April 28, 2022 12 contributions on April 29, 2022 No contributions on April 30, 2022 No contributions on May 1, 2022 7 contributions on May 2, 2022 3 contributions on May 3, 2022 4 contributions on May 4, 2022 No contributions on May 5, 2022 12 contributions on May 6, 2022 No contributions on May 7, 2022 No contributions on May 8, 2022 3 contributions on May 9, 2022 6 contributions on May 10, 2022 4 contributions on May 11, 2022 3 contributions on May 12, 2022 No contributions on May 13, 2022 No contributions on May 14, 2022 No contributions on May 15, 2022 1 contribution on May 16, 2022 8 contributions on May 17, 2022 9 contributions on May 18, 2022 5 contributions on May 19, 2022 5 contributions on May 20, 2022 No contributions on May 21, 2022 No contributions on May 22, 2022 1 contribution on May 23, 2022 2 contributions on May 24, 2022 3 contributions on May 25, 2022 4 contributions on May 26, 2022 5 contributions on May 27, 2022 No contributions on May 28, 2022 No contributions on May 29, 2022 No contributions on May 30, 2022 8 contributions on May 31, 2022 3 contributions on June 1, 2022 12 contributions on June 2, 2022 8 contributions on June 3, 2022 4 contributions on June 4, 2022 1 contribution on June 5, 2022 13 contributions on June 6, 2022 9 contributions on June 7, 2022 4 contributions on June 8, 2022 2 contributions on June 9, 2022 5 contributions on June 10, 2022 No contributions on June 11, 2022 No contributions on June 12, 2022 No contributions on June 13, 2022 2 contributions on June 14, 2022 4 contributions on June 15, 2022 1 contribution on June 16, 2022 6 contributions on June 17, 2022 No contributions on June 18, 2022 No contributions on June 19, 2022 No contributions on June 20, 2022 9 contributions on June 21, 2022 2 contributions on June 22, 2022 9 contributions on June 23, 2022 4 contributions on June 24, 2022 No contributions on June 25, 2022 No contributions on June 26, 2022 No contributions on June 27, 2022 No contributions on June 28, 2022 8 contributions on June 29, 2022 2 contributions on June 30, 2022 No contributions on July 1, 2022 No contributions on July 2, 2022 No contributions on July 3, 2022 No contributions on July 4, 2022 4 contributions on July 5, 2022 No contributions on July 6, 2022 10 contributions on July 7, 2022 7 contributions on July 8, 2022 No contributions on July 9, 2022 No contributions on July 10, 2022 5 contributions on July 11, 2022 5 contributions on July 12, 2022 1 contribution on July 13, 2022 No contributions on July 14, 2022 No contributions on July 15, 2022 No contributions on July 16, 2022 No contributions on July 17, 2022 2 contributions on July 18, 2022 No contributions on July 19, 2022 1 contribution on July 20, 2022 4 contributions on July 21, 2022 1 contribution on July 22, 2022 1 contribution on July 23, 2022 No contributions on July 24, 2022 No contributions on July 25, 2022 3 contributions on July 26, 2022 5 contributions on July 27, 2022 No contributions on July 28, 2022 No contributions on July 29, 2022 No contributions on July 30, 2022 No contributions on July 31, 2022 No contributions on August 1, 2022 No contributions on August 2, 2022 No contributions on August 3, 2022 1 contribution on August 4, 2022 No contributions on August 5, 2022 No contributions on August 6, 2022 No contributions on August 7, 2022 2 contributions on August 8, 2022 No contributions on August 9, 2022 1 contribution on August 10, 2022 7 contributions on August 11, 2022 No contributions on August 12, 2022 No contributions on August 13, 2022 No contributions on August 14, 2022 2 contributions on August 15, 2022 6 contributions on August 16, 2022 4 contributions on August 17, 2022 4 contributions on August 18, 2022 13 contributions on August 19, 2022 3 contributions on August 20, 2022 3 contributions on August 21, 2022 1 contribution on August 22, 2022 7 contributions on August 23, 2022 6 contributions on August 24, 2022 2 contributions on August 25, 2022 1 contribution on August 26, 2022 2 contributions on August 27, 2022 3 contributions on August 28, 2022 42 contributions on August 29, 2022 5 contributions on August 30, 2022 3 contributions on August 31, 2022 1 contribution on September 1, 2022 5 contributions on September 2, 2022 9 contributions on September 3, 2022 2 contributions on September 4, 2022 2 contributions on September 5, 2022 15 contributions on September 6, 2022 6 contributions on September 7, 2022 2 contributions on September 8, 2022 No contributions on September 9, 2022 No contributions on September 10, 2022 No contributions on September 11, 2022 3 contributions on September 12, 2022 No contributions on September 13, 2022 No contributions on September 14, 2022 4 contributions on September 15, 2022 5 contributions on September 16, 2022 1 contribution on September 17, 2022 1 contribution on September 18, 2022 3 contributions on September 19, 2022 3 contributions on September 20, 2022 4 contributions on September 21, 2022 4 contributions on September 22, 2022 3 contributions on September 23, 2022 1 contribution on September 24, 2022 No contributions on September 25, 2022 16 contributions on September 26, 2022 8 contributions on September 27, 2022 No contributions on September 28, 2022 12 contributions on September 29, 2022 21 contributions on September 30, 2022 7 contributions on October 1, 2022 2 contributions on October 2, 2022 26 contributions on October 3, 2022 2 contributions on October 4, 2022 9 contributions on October 5, 2022 7 contributions on October 6, 2022 4 contributions on October 7, 2022 No contributions on October 8, 2022 No contributions on October 9, 2022 No contributions on October 10, 2022 2 contributions on October 11, 2022 2 contributions on October 12, 2022 8 contributions on October 13, 2022 6 contributions on October 14, 2022 2 contributions on October 15, 2022 No contributions on October 16, 2022 No contributions on October 17, 2022 3 contributions on October 18, 2022 No contributions on October 19, 2022 2 contributions on October 20, 2022 9 contributions on October 21, 2022 No contributions on October 22, 2022 No contributions on October 23, 2022 4 contributions on October 24, 2022 2 contributions on October 25, 2022 2 contributions on October 26, 2022 No contributions on October 27, 2022 No contributions on October 28, 2022 No contributions on October 29, 2022 No contributions on October 30, 2022 3 contributions on October 31, 2022 2 contributions on November 1, 2022 2 contributions on November 2, 2022 2 contributions on November 3, 2022 No contributions on November 4, 2022 No contributions on November 5, 2022 No contributions on November 6, 2022 No contributions on November 7, 2022 6 contributions on November 8, 2022 No contributions on November 9, 2022 5 contributions on November 10, 2022 No contributions on November 11, 2022 No contributions on November 12, 2022 No contributions on November 13, 2022 3 contributions on November 14, 2022 8 contributions on November 15, 2022 5 contributions on November 16, 2022 3 contributions on November 17, 2022 2 contributions on November 18, 2022 No contributions on November 19, 2022 No contributions on November 20, 2022 3 contributions on November 21, 2022 1 contribution on November 22, 2022 No contributions on November 23, 2022 2 contributions on November 24, 2022 No contributions on November 25, 2022 No contributions on November 26, 2022 No contributions on November 27, 2022 8 contributions on November 28, 2022 No contributions on November 29, 2022 2 contributions on November 30, 2022 10 contributions on December 1, 2022 11 contributions on December 2, 2022 5 contributions on December 3, 2022 1 contribution on December 4, 2022 2 contributions on December 5, 2022 3 contributions on December 6, 2022 3 contributions on December 7, 2022 2 contributions on December 8, 2022 5 contributions on December 9, 2022 5 contributions on December 10, 2022 3 contributions on December 11, 2022 4 contributions on December 12, 2022 6 contributions on December 13, 2022 4 contributions on December 14, 2022 2 contributions on December 15, 2022 3 contributions on December 16, 2022 No contributions on December 17, 2022 No contributions on December 18, 2022 4 contributions on December 19, 2022 1 contribution on December 20, 2022 7 contributions on December 21, 2022 1 contribution on December 22, 2022 7 contributions on December 23, 2022 3 contributions on December 24, 2022 No contributions on December 25, 2022 No contributions on December 26, 2022 No contributions on December 27, 2022 No contributions on December 28, 2022 No contributions on December 29, 2022 No contributions on December 30, 2022 No contributions on December 31, 2022 No contributions on January 1, 2023 No contributions on January 2, 2023 5 contributions on January 3, 2023 4 contributions on January 4, 2023 No contributions on January 5, 2023 7 contributions on January 6, 2023 No contributions on January 7, 2023 No contributions on January 8, 2023 9 contributions on January 9, 2023 1 contribution on January 10, 2023 3 contributions on January 11, 2023 5 contributions on January 12, 2023 3 contributions on January 13, 2023 No contributions on January 14, 2023 No contributions on January 15, 2023 No contributions on January 16, 2023 1 contribution on January 17, 2023 1 contribution on January 18, 2023 6 contributions on January 19, 2023 No contributions on January 20, 2023 No contributions on January 21, 2023 No contributions on January 22, 2023 No contributions on January 23, 2023 No contributions on January 24, 2023 No contributions on January 25, 2023 2 contributions on January 26, 2023 No contributions on January 27, 2023 No contributions on January 28, 2023 No contributions on January 29, 2023 3 contributions on January 30, 2023 5 contributions on January 31, 2023 1 contribution on February 1, 2023 1 contribution on February 2, 2023 1 contribution on February 3, 2023 No contributions on February 4, 2023 No contributions on February 5, 2023 1 contribution on February 6, 2023 No contributions on February 7, 2023 Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Mon Wed Fri
Activity overview
Contributed to thallada/modmapper-web, thallada/modmapper, thallada/advent-of-code-2022 and 13 other repositories

Contribution activity

February 2023

4 contributions in private repositories Feb 1 – Feb 6

Seeing something unexpected? Take a look at the GitHub profile guide.