ROllerozxa

ROllerozxaRSS (Atom) feedGitHubMastodonYouTube

I'm a university student currently studying software engineering as well as an open source developer. You may know me as the project maintainer of Principia or for my contributions to Luanti (formerly Minetest).

This is my site where I write about what I do and about whatever else interests me, in the case that someone else finds it interesting.

Wanna read more about me or about what I do?

Latest blog posts

Tensy logo with coloured numbers surrounding it on a blue background

Tensy has been released

271 words

Yesterday I released the first official version of Tensy on itch.io. It is a puzzle game where you match numbers that sum up to ten, with a nice pixel art style and some tracker music soundtrack, available for a very wide range of platforms. It has been in development for a while, and you have likely read posts mentioning it in some way on my blog for the last year.

Screenshot of the most recent Git commit history in flower-web, as seen in gitui.

Cleaning up a Git repository for public consumption

1958 words

When you’re considering making a previously private Git repository public, with all the history potentially spanning back years, it’s rarely an easy decision. The repository and its history may contain all sorts of things you don’t want to inadvertently publish, whether it be sensitive information or even just embarrassing things you never expected to end up being public when developing it in private.

The simplest way would be to just clean up the final state of the repository. Then create an empty repository importing everything into a new initial commit, throwing away the old commit history. But this also throws away a lot of context and history of the project. If someone else interested in your newly opened repository ever wanted to look back at how something was done or why a certain decision was made, it would be much harder without the commit history.

Screenshot of the index page of the Prosody web server

Setting up an XMPP server with Prosody

2565 words

XMPP (also known as Jabber) is an open chat protocol for instant messaging. It is also federated meaning that everyone can talk and communicate with people on other XMPP servers, one-to-one or in multi-user chats (MUCs). It supports transport layer encryption using TLS, as well as end-to-end encryption using OMEMO.

Prosody is a modern XMPP server written in Lua that aims to be simple and very light on resources. I’ve been running my own XMPP server using Prosody for the past couple years at this point, and this blog post is a guide from what I’ve learned for setting up an XMPP server using Prosody, complete with HTTP file sharing for sending images and other files and MUCs for creating group chats and public chat rooms on your server.

Screenshot of Firefox viewing the certificate for voxelmanip.se, which includes the wildcard *.voxelmanip.se domain. The Let's Encrypt and Cloudflare logos are shown to the right.

Wildcard HTTPS certificates with Certbot and Cloudflare DNS

719 words

Wildcard HTTPS certificates allow you to generate a certificate that will be valid across every subdomain of a domain, which is a great convenience if you manage a lot of subdomains. However with great power comes great responsibility as in order for Let’s Encrypt to validate that you are in control of the entire domain, you will need to pass a DNS-based challenge, as compared to a traditional HTTP-based challenge for an individual subdomain.

In order to handle this in an automated fashion you will typically need integration with your DNS provider in order to add the necessary records for the DNS challenge. If you are using Cloudflare for DNS, you’re in luck as Certbot has a plugin for managing the DNS through Cloudflare’s API. This guide assumes you already have Certbot installed and have generated some certificates, but want to replace it with wildcard certificates spanning entire domains.

Screenshot of a page on the Android developer reference website. The screenshot shows the documentation for a constant by the name of DISALLOW_FUN, which is gone over later in the blog post.

Jokes and Humour in the public Android API

1599 words

Previously I have covered a relatively obscure now-removed placeholder string in Android that doubles as an easter egg, the fictitious carrier by the name of El Telco Loco. But this time it is about methods and other parts of the publicly facing Android API that may generally be more humourous than they are useful. Easter eggs, jokes, whatever you want to call them, that are visible to Android app developers rather than regular users.

Screenshot of the Tensy main menu showing the game title. Around it are the logos for Windows, Android, Linux (AppImage right behind it), WebAssembly, PSVita, Haiku OS and macOS.

Porting a game to 7 platforms

3079 words

When making a game or another kind of general purpose program, you would usually want to ensure that it runs on more than one platform. Targeting a higher-level, cross-platform library rather than OS-specific APIs usually gets you most of the way there, but there are still many other considerations that are needed if you want it to be available and function across several platforms.

When faced with this predicament, one may also wonder how to port your software to as many platforms as possible. That’s what I wanted to give a try, and ended up porting a game of mine to 7 platforms in total.