Projects
Here are some cool projects I've worked on!
Tensort
Check out Tensort!View source on GitHubTunable sorting for responsive robustness and beyond!
Tensort is a tensor-based sorting algorithm I wrote after reading David H. Ackley's Beyond Efficiency (and listening to Future Of Coding's podcast episode about it)
This project started as an exploration of what a sorting algorithm that prioritizes robustness might look like, but the resulting algorithm could be capable of much more
Simply put, Tensort takes an input list, transforms the list into a tensor field, then transforms the tensor field back into a sorted list. These transformations provide opportunities to increase redundancy for improved robustness and can be leveraged to include any further processing we wish to do on the elements
If that gets your gears humming, head over to GitHub for the full paper!
Coluguide
Check out Coluguide!View source on GitHubSimple declarative knowledge enhancement
At work I was tired of inscrutable, out-of-date knowledge base articles across multiple formats. I wanted something that gave immediate, high-level information (including visual examples) while allowing users to drill down into greater detail when needed
Coluguide is what I built in response. It takes a declarative approach, assuming that users know the basics of their job and displaying simple step-by-step guides. If a user needs more information on a step, they can click through for a guide on that step in detail
When new users come onto a team (or existing users are given more responsibility), team leaders can assign them specific guides to study, which the users can mark as reviewed once they've read them. As information changes, guides can be updated and users can be notified that there is new information to review
I have ADHD and personally I find this format very helpful for absorbing new information and jogging my memory while maintaining my focus on the task at hand. There is a limited public demo available here
Audiopile
Check out Audiopile!View source on GitHubA simple, professional tool for managing audio in the cloud
A question for all the musicians, podcasters, and other audio professionals of the world: How often do you want to privately share a piece of audio with specific people?
Maybe it's a completed but unreleased track you're sending to a client for final approval. Maybe it's a recording of just your voice that you're sending to your collaborators to mix in to a final project. Or it's a project you've been working on that you're sending to a friend with fresh ears for an opinion. Heck, maybe it's just a tune that came to you in the shower that you recorded on your shower phone (people have those, right?) and want to listen to later on your studio computer
In any case, do you know how to get that audio from wherever it is now to wherever it needs to get to in a form that can be easily used?
Now you do: Audiopile
Serious Shanns
Check out Serious Shanns!View source on GitHubA legible monospace font for playful professionals. Comic Sans for hackers
Somehow this silly fork of a monospaced Comic Sans clone has become my most popular project on GitHub. Used around the world by coders working at places like Red Hat, Cloudflare, and a bunch of universities!
This font can actually be helpful for people with learning disabilities (like myself). It's somewhat well-known that Comic Sans can be easier to read for people with dyslexia, and as someone with ADHD I personally find this font helps me focus on my work
Serious Shanns originated as a project to disambiguate some of the glyphs appearing in Comic Shanns by Shannon Miwa and has close family ties with Comic Mono by Thai Pangsakulyanont and Comic Shanns Mono by Jesús González
Wyrld Dashboard
Check out Wyrld Dashboard!View source on GitHubWyrld Dashboard provides fast and unobtrusive cloud-based tools for tabletop role-playing games (RPGs) like Dungeons & Dragons
Some of the tools we provide include:
- - A database for holding and sharing information about RPG settings (worlds and their underlying rules)
- - A user interface (UI) for game masters (GMs) to build and share custom RPG settings
- - A UI for players to connect with the worlds shared by their GM and to create and control certain assets (i.e. their characters and personal notes)
- - Tools (character sheets, dice, event trackers, etc.) for GMs and players to interact with their worlds
- - A virtual table top application for sharing visual game information (such as maps, character position, and turn order)
- - An extensive (over 200 pages) compendium of D&D-compatible content
Real* Dice*
Check out Real* Dice*!View source on GitHubRandom number generation based on physical media touched by humans
Sometimes the digital world can feel cold and sterile compared to the messy and unpredictable nature of our physical environment. Purely functional languages like Haskell are, for better and for worse, particularly susceptible to this digital de-messification
In celebration of Haskell's determinative nature, this package provides random data from my interaction with the physical world as well as utilities to leverage this data for random number generation and other RNG-based tasks
This package can be used to bring a human touch to our digital world!