• Grayjay is not Open Source

    Today FUTO released an application called Grayjay for Android-based mobile phones. Louis Rossmann introduced the application in a video (YouTube link). Grayjay as an application is very promising, but there is one point I take issue with: Grayjay is not an Open Source application. In the video Louis explains FUTO's reason behind the custom license, and while I do agree with their reason, I strong disagree with their method. In this post I will explain what Open Source means, how Grayjay does not meet the criteria, why this is an issue, and how it can be solved.

    Continue reading…

  • Free Software is necessary but not sufficient

    Recently Unity announced changes to their pricing model (archive) which have been very poorly received by their users, to put it gently. They have since backtracked (archive2) somewhat, but at this point it would not matter even if they completely scrapped their plans and went back to how things used to be. The trust has been broken and many game developers are waking up to the fact that Unity is effectively holding their project hostage. Switching from one engine to another is akin to a full rewrite, and depending on the size and progress of the project porting might not be a feasible thing to do.

    Continue reading…

  • Free Software is important for non-programmers as well

    Free Software is software which respects the user's freedom. The Four Freedoms ensure that users can run the program for any purpose, study the source code, modify the source, share the software and share modifications of the software. However, what if you are not a programmer? Does this mean Free Software only adds value to people who know how to program, and if you are a non-programmer you might as well use proprietary software? Is it all just the same then? No. In this post I will try to illustrate why Free Software matters even to non-programmers.

    Continue reading…

  • The game modding scene has a source code problem

    Sometimes I like to play video games. Sometimes these games have issues, or they can be improved upon. Sometimes these issues are so severe that the game is virtually (or even literally) unplayable. Fortunately some really smart people have done a fantastic job reverse-engineering parts of these games, their file formats, or found workarounds for engine limitations. Unfortunately too often that knowledge never gets written down and just keeps rotting in someone's head.

    Continue reading…

  • Resolution patcher for Anno 1503

    I have written a small Python script which patches the game files of Anno 1503 to run at higher resolutions. There is already a widescreen patch out there ready to use, so why create a patcher? Download links die, knowledge gets forgotten and people lose interest and move on. Without preservation of knowledge the patch will be lost and impossible to reproduce without trial and error all over again. My patcher exists both to be useful, and as executable documentation for posterity. There is also the possibility that if you patch the DLL file that came with your own game instead of using someone else's it might run more stable (not all builds of the game are identical), but that's just a blind guess.

    Continue reading…

  • Introducing nvim-ts-rainbow2

    Two months in the making, it is time to finally release my new Neovim plugin officially: nvim-ts-rainbow2 (GitHub mirror). This plugin uses Neovim's built-in Tree-sitter support to add alternating highlighting to delimiters. This is usually known as “rainbow parentheses”, but thanks to Tree-sitter we are not limited to parentheses, we can match any kind of delimiter, such as tags in HTML or begin/end blocks in some programming languages.

    Continue reading…

  • How I switch colours in Alacritty

    My current terminal emulator is Alacritty. One thing I would like is a way to change the colours while the terminal is running. The only way to do so is the edit the configuration file, but doing so by hand can be annoying. There are some scripts out there that let you do it automatically, but all that I have found rely on bloated stuff like having Node.js installed. We can do better by using just what we already have on Unix out of the box.

    Continue reading…

  • Using GitHub without workflow lock-in

    Git is a decentralized version control system, meaning that there is no one superior repository. Every single copy of a Git repository is just as complete as any other. Of course we can pick one particular repository and declare it to be the one source of truth, the “upstream” repository. Usually this upstream repository is then hosted on some server, and if we are interested in openness and collaboration this server is part of a larger web service, called a “forge”. Out of these forges GitHub is perhaps the most popular one. Unfortunately this means if we are interested in contributions we have to make the GitHub repo our upstream and use its web services and web UI for our workflow. At least that is the common wisdom, but it does not have to be that way.

    Continue reading…