Giving Up on PGP

Six years ago I bought a hardware security token (Yubikey 4 neo, at EUR 60 a hefty price for a small piece of plastic) to use as second factor through the FIDO U2F specification and for holding my GPG encryption keys. Wanting to do things “properly” I decided to have a master key stored offline and separate, dedicated and detached subkeys for encryption and signing stored on the Yubikey. I opted to have the subkeys be valid for 1 year and set a calendar reminder to rotate these keys, which conveniently fell into the winter holiday season.

Klecs: an Entity Component System in Scheme

I came across the term ‘entity component system’ or ECS sometime during my browsing the internet and wanted to learn more about it. Having read some blog posts I decided to implement a library for this in scheme. ECS is a paradigm for game development that aims to simplify code and decouples elements of game design. In my implementation, an entity is a list of components and a component has a symbol as name and any scheme value as value (so a component is a simple key-value pair, with a symbol key).

Lisp Game Jam 2023

I participated in another Lisp Game Jam this time with more success. If you remember my last participation saw me come in last (place 14/14). Now this year around I ranked in 10th place (out of 16 submissions), a solid result and improvement. How did I achieve this? Preparation. In the last year I have written two scheme libraries, for colored terminal output and also for an entity-component-system engine. Both of these helped tremendously.

How to change the bash prompt to show which guix profile is active

I am using GNU Guix as my package manager on top of Fedora Silverblue. Guix has several advantages over other package managers: packages can be installed with user privileges, several versions of the same packages can be installed in parallel, tools exists for reproducibility and versioning. The one I use regularly being the creation of different profiles each with a distinct set of packages (at specific versions). You activate a profile with: guix shell -p path/to/profile.

A new keyboard build with only 36 Keys

After having build my solderless SofleV2 keyboard, I discovered, that I could not actually type on it. Even keeping my existing QWERTZ layout I was struggling to hit the right keys. This is due to the fact that this keyboard is “column staggered”, meaning the columns are shifted in relation to a fixed grid while a standard keyboard is “row staggered”, i.e. the rows are shifted relative to each other and compared to a standard grid.

A Scheme Tui Library Core

Inspired by a reddit post and the referenced blog post I have started a small library in R6RS scheme for the creation of terminal user interfaces and published it on GitHub. The design is quite straight forward: creating such a user interface is the same as printing a list of characters to the screen. Some of these characters are ANSI escape codes and will be interpreted by the terminal and affect later characters.

Migrate a Fedora Silverblue install to a new SSD

I wanted to upgrade my laptop hard-drive to double the capacity. However it only has a single M.2 slot and I wanted as little downtime as possible. So moving ‘in-place’ was not possible. Fortunately I have a desktop PC with a free M.2 slot that could take the new drive. Since my laptop is running Fedora Silverblue on a btrfs file system I was hoping to use btrfs send/receive to move subvolumes to the new drive.

(Almost) Solderless 3D-printed Handwired Mechanical Keyboard

This title is quite a mouthful. I want to start with a story of how I got here. For most of this project, I am standing on the shoulders of giants. Those interested in the actual build can you skip this the next section. I ran into mechanical keyboards on social media and thought this was a great combination with 3D printing. My ideas were spurred by a post on geekhack where the author has incorporated hotswap sockets into a 3d printed case.

My First Game Jam

Recently I participated in my first game jam. I took part in the Autumn Lisp Game Jam 2022. My main motiviation in participating was to excercise my soon-to-be-released scheme library for bioinformatics called (harebrained scheme). I took inspiration from e.g. Chris Lemmer-Webber which created the game Terminal Phase to showcase the features of spritely goblins. The results are now in and my contribution Metabolize! came in last. However, I had a lot of fun participating and want to summarise my experience.

Ba3dp: A Fresh Start

Background I got unlucky with AliExpress (the twotree speciality store), where I ordered all parts apart from extrusions. Rails came first after 3-4 weeks, but in the wrong size (instead of 3x300mm I got 1x400mm and 2x450mm). I then used the function for reclamation and got 12 euros back. The rest did not come at all. In the shipping tracker I saw that the order was actually returned to the warehouse.