GitLab: @dot_lexg • GitHub: @win93 • LinkedIn • PGP key for me[at]a.lexg.dev • 🏳️🌈
I am an experienced project maintainer and full stack software engineer. I write code professionally to pay the bills, but my proudest work is done on my own time at Coldwater Systems.
I enjoy digging deep into programming languages, software architectures, and cryptography. I have a large catalog of software projects in various stages of completion, ranging from novel uses of computer networking to exploration in procedural art.
My stable projects
- Aspen diskinfo: A colorful CLI tool that gives a complete overview of disks attached to your system. This is a command that is housed under the Aspen umbrella.
- ‘ruby-xz’ gem: a Ruby binding to liblzma library that provides compression to and decompression from the XZ file format.
- Aspen Editor: A very minimal CLI editor that I use to draft commit messages.
The workshop (as of Dec 2023)
Aspen: the missing computer toolbox
Aspen is my current über-project I am working towards with Keenan Piveral-Brooks. Aspen is an experimental system of tools that are designed to work seamlessly together within in a workspace. The scope is similar to desktop environments such as KDE and Gnome. To give an idea of our progress, we are actively implementing Aspen UI, an in-house GUI framework for Ruby built on top of SDL2. The current goal is to work towards building a note taking tool using Aspen UI that will form the first building block of Aspen.
Keenan and I also plan on using this notes tool to collaborate on Aspen more effectively. For this, we have some prototypes on the shelf for Fabric, a peer-to-peer networking platform designed to exchange audio, video, and/or event streams with minimal configuration and setup.
The second item on the shelf is some work towards alternatives to traditional hierarchical filesystems. This includes research into distributed content-addressable filesystems, tagging instead of directories, and extensible metadata storage.
The Board: self-hosted, invite-only article board
Finally, I’ve worked with Keenan on some prior prototypes of The Board. Keenan alone is undertaking a third iteration of this project, and I merely provide some technical assistance and advice this time around.
Let’s talk about Ruby
Ruby is my favorite language because it checks a lot of boxes.
- It crunches data like nothing with its expressive string manipulation capabilities, and often times I can get what I need done with a 5-10 line script I throw away after use.
- For more complicated or persistent projects, I can start in one file and gradually grow an idea into a multi-file project with little fuss.
- It strikes the perfect balance between functional and imperative style.
- It has a reputation of being fun, and it earns the right to call itself a programmer’s best friend.
- Ruby with is a game changer because of how well Ruby provides introspection. For example,
p foois enough to see most of the internal data making up
foo. This makes “print” debugging very painless. For more complex troubleshooting, interactive ruby with
prymakes me rarely ever reach for a traditional step-debugger.
- Most importantly, the Ruby community inspires me to contribute back to the language ecosystem. In general, I care deeply about the public utility of free software, and feel blessed to take part in our world’s largest community project.