Status Update, November 2022

Hey!

This month was basically a blur, but I got a lot of things done.

Website

The projects page used to be just a plaintext list. It is now fleshed out into cards with descriptions, along with website, repo, and mirror links. This was quite fun to do. I wrote little zsh functions to create git remotes, push to all remotes, and to print the links subsection for the projects' READMEs.

My GitHub Sponsors profile was finally approved this month, so I added a link to that on my about page.

FOSS Development

I spent a lot of time contributing to FOSS projects this month.

Progress Quest

Progress Quest is a true ZPG that released in 2002. It is arguably the first ZPG, Idle RPG, and Incremental Game, which spawned amazing games in these genres like Godville, Cookie Clicker, Progress Knight, and Fallout Shelter.

I picked some low-hanging fruit to tackle: (unashamedly) grammar and typo corrections. Seemed fair since the codebase is Delphi, which is a dialect of Object Pascal, neither of which I'm familiar with, except for having used Borland C++ in 2005-2006, which is only loosely related if at all. Eric Fredricksen gladly accepted and merged my changes, so I made similar fixes for the web version of Progress Quest, with added changes for accessibility, HTML/CSS, line-endings, and UTF-8 encoding.

Once that was done, I contributed the same changes to pq-cli, a CLI and TUI reimplementation of PQ in Python.

Prism Launcher

I set up financial goals for the project on our Open Collective, and made a post about it.

A minor change to credits that landed in 5.2.

And another minor change to cleverly assign Java max memory on systems with low total RAM, which will land in the next release.

Trackma

Trackma is a lightweight and simple but feature-rich program for fetching, updating and using data from personal lists hosted in several media tracking websites, like MAL, Kitsu, Anilist, Shikimori, and VNDB.

My first contribution to Trackma was a bugfix in July 2022. I went to town on the codebase after that and made it adhere to Python and Markdown best practices, amongst other things. This was in August 2022. I had to rebase on master at one point, so that took an entire day of extra work in typical neurodivergent fashion.

This month's changes to Trackma included creating a virtual environment for development using Poetry (a tool for dependency management and packaging in Python), and the dropping of Qt4 support since it has been EOL for several years. The change has been approved, and is awaiting one more approval to be merged.

pydle

pydle is a compact, flexible and standards-abiding IRCv3-compliant IRC library for Python. I've played with this in the past to create IRC bots for various purposes. A minor bugfix was required to address a python version inequality string in Poetry, so I got that done.

Catppuccin Color Scheme for Sublime Text

After seeing a lot of my developer colleagues use and recommend Catppuccin over the past few months, I finally decided to see what the excitement was all about, and boy did I fall hard for it. I've been using Adapta-like themes including Arc since my X11 days on Openbox. These are primarily GTK themes, so making the rest of my system look and feel like the theme required a lot of additional work like configuring qt5ct and qt6ct to use GTK styles, manually implementing colors for .XResources and rxvt-unicode which is the terminal I used at the time, and also for editors like Sublime Text, which can dynamically pull in a theme, but not a color scheme. These themes also only support GTK2 and GTK3, but not GTK4.

Catppuccin is a pastel theme that aims to be the middle ground between low and high contrast themes. It is an amazing community-driven effort that offers themes for a ridiculous number of applications, including but not limited to, Code Editors, System Applications, Shells, Websites, Games, Music Players, Browsers, Search Engines, Messengers, Note-taking Applications, and Terminals. There are approximately 160 repositories for these under the Catppuccin GitHub organization at the time of writing this post.

I went down the rabbit hole of applying these themes to my DE for a system-wide unified look and feel a week or so ago, and it has been absolutely amazing!

The color scheme for Sublime Text kept throwing an error every time ST was started or when the configuration was reloaded, so I decided to give it a look and found a file that only existed to create the color scheme files. It wasn't an actually part of the color scheme for ST. I submitted a pull request to have that file removed, so everyone else using the color scheme can benefit from it too.

PyLNP

PyLNP is a launcher for Dwarf Fortress. It has a variety of useful features to manage settings and configure the base game. It can also manage, configure, install, and run a wide variety of related content - from graphics to color schemes, and utility programs to content-replacing mods.

I used to play Dwarf Fortress a lot around 2014-2016, and I contributed some changes to PyLNP at the time. The repo was on bitbucket at the time and used mercurial instead of git so it was kind of difficult to navigate then. It's on GitHub now and uses git so I dived right in.

This pull request focuses on adhering to Python standards (PEP8), upgrading pylint and its config file, and dropping Python 2 support. It will also feature fixes suggested by flake8, and I will submit another PR to manage dependencies, packaging, and a development virtual environment using Poetry, like I did for Trackma.

Project AnimeJouhou

I'm planning to create an anime + TV shows + movies tracker à la trakt.tv and MAL, but built on a FOSS database of metadata: Wikidata. I did an initial grab of basic anime-related data from Wikidata using SparQL which is absolutely amazing! A single query to grab everything I need! I parsed it into basic html pages, and it's up for display at animejouhou.ihavea.quest.

As you can see, there is a LOT of missing data, so before going any further I will be working on an easy way to populate all the Wikidata entries with info from high quality sites like MAL and AniDB. This part of the process might take the longest, but once it's done, I will focus on creating a frontend for all of that data. It will be static initially, and the plan is to have user accounts to track things via lists like Watching, Completed, On-Hold, Dropped, Plan to Watch, Interested etc.

I'm really excited about this and I hope it's something that people will find worth switching over to, to track their media.

That's all for November. See you next month!