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

Screenshot of the top of CCC's readme that says: 'A C compiler written entirely from scratch in Rust, targeting x86-64, i686, AArch64, and RISC-V 64. Zero compiler-specific dependencies - the frontend, SSA-based IR, optimizer, code generator, peephole optimizers, assembler, linker, and DWARF debug info generation are all implemented from scratch. Claude's C Compiler produces ELF executables without any external toolchain.'

Trying Out Claude's C Compiler

3269 words

On the 5th of February Anthrophic published an article on their engineering blog detailing the creation of a C compiler using a team of parallel Claude agents over the course of two weeks. The compiler in question is called Claude’s C Compiler (ccc for short) and is a ~180k line Rust codebase that they published onto GitHub.

Of course, this announcement raised a lot of questions about the accuracy of their claims and the usability of the compiler, as well as the implications of a swarm of AI agents allegedly being able to write a full C compiler. It claims to be able to compile the Linux kernel, along with many other high profile C projects, but does it actually work? I became intrigued, and decided to try compiling a Hello World program, my game Tensy, ClassiCube, and finally the Linux kernel.

A screenshot of the water simulation game

A wet physics gamedev adventure

3339 words

This is a blog post chronicling the initial development of a physics-based water game of sorts using C, Box2D, SDL3 and OpenGL. The idea of it is something I have been wanting to make into reality for a long time, and the concept is inspired by one of my favourite games of all time.

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.