ASRock Deskmini X600 SFF Linux PC

I am upgrading my 2021 Deskmini X300 to a X600 (finally…). The new machine has an AMD Ryzen 7 8700G instead of a 5700G CPU. It has 64GB DDR5 at 5600MHz instead of DDR4 at 3200MHz. I have the AM5 (instead of AM4) model of the Noctua low profile CPU cooler (with fan duct) and installed the newest Samsung 990 Pro 2TB NVMe drive. Like previous build it is super fast and very quiet. I run Linux Mint 22 and it works great, I’m very pleased with the results! ...

August 15, 2024 · Maurits van der Schee

Minesweeper written in Go using RayLib

In April I wrote Fyne Mines (Minesweeper in Go using Fyne) and I’m very happy with the release on the Fyne Games page. When further investigating cross platform game development (in Go) I ran into the RayLib engine (and it’s Go bindings). During the holidays I decided to recreate my minesweeper game using RayLib to see how that would perform and how it’s development in Go would compare to Ebiten and Fyne. ...

July 15, 2024 · Maurits van der Schee

Running Debian on a MacBook M3

In the hypothetical case that your employer is so kind to provide you with a MacBook Pro M3 (please don’t buy one) you have only one question: How do I run Linux on it? First you want to install Asahi Linux, but then you find out that the M3 is not supported. Now what? UTM Virtual Machines You may think you need Parallels Desktop 19 or VMware Fusio Pro 13, as I also assumed. But then I ran into UTM which is open source software based on QEMU. The software does not have CPU core limits nor RAM limits and it performs very well. Also it has a great mouse capture mode that, together with full screen mode, helps me forget that I’m actually running on OSX. I like everything about it. ...

June 15, 2024 · Maurits van der Schee

A 2D puzzle game in Go using Fyne

Last month I wrote Minesweeper written in Go using Fyne. It was a port of the Ebiten game engine implementation to desktop using the Fyne GUI library. During the implementation I ran into 3 problems that I eventually solved. In this post I’ll explain what they were and how I solved them. Source code: https://github.com/mevdschee/fyne-mines 1: MinSize of container without layout Fyne can use a (JWT-like) borderlayout, but you can also freely place your controls (or “widgets” as Fyne calls them) using a container without a layout. To set the size of this container you can put this container in a a stack container together with an image of a certain (minimum) size. ...

April 22, 2024 · Maurits van der Schee

Free Dutch postcodes CSV dataset

Web shops in the Netherlands need accurate address validation and completion. Kadaster is a Dutch government body that can provide the data that we need. Unfortunately they only provide the data in an almost unusable format (about 96GB of XML data), while we need a CSV file with only a small subset of that data for our needs. In this blog post I’ll explain how to reduce the vast dataset into a small file of either 40MB (megabyte) including locations in RD coordinates or 17MB without. ...

April 18, 2024 · Maurits van der Schee

Creating 103mail.com - Update 1

I am building a free email service that respects privacy and prevents profiling on 103mail.com (see: the plan). In this post I explain how outgoing mail can be captured to be handled by a web hook, while internal email is delivered normally. The post assumes you are running Postfix as mail server and assumes you run this on a recent Debian (based) Linux server. Make Postfix deliver to a web hook Install postfix using ...

April 12, 2024 · Maurits van der Schee

Creating 103mail.com - The plan

I am building a free email service that respects privacy and prevents profiling on 103mail.com. The simple premise is that even if you don’t use Gmail then Google still has half of the world’s email messages and since email messages tend to contain all previous content, they can still profile all people in the world (even people that try to avoid Google). When using 103mail.com the email (content) will never leave the server. The outgoing email will be replaced with a notification with a link to the web mail viewer. Thus the outgoing mail content can only be viewed over the web and people or servers reading the mail will be logged. Nevertheless 103mail.com will be a standard compliant IMAP/SMTP server that can be used with any mail client on desktop or mobile. ...

April 11, 2024 · Maurits van der Schee

Minesweeper written in Go using Fyne

It was already 3 years ago that I wrote Minesweeper for Ebiten in Go. I wanted to try to bring the application to desktop. I have ported that implementation from using the Ebiten game engine to desktop using the Fyne GUI library and I have just released version 1.0.0 that can be run on Windows and Linux. Download You can download the Windows and Linux releases from Github: https://github.com/mevdschee/fyne-mines It is a portable (single-file) executable without any dependencies. ...

April 5, 2024 · Maurits van der Schee

Using Brotli to deliver smaller WASM files

I ran into the free online solitaire card games by Oddstream Games and I loved the (open source) implementation of solitaire card games in Go and Ebitengine. I noticed that the 12.4MB WASM file had been compressed with GZIP which resulted in only 4.8MB of transfer. I compared the support for Gzip with the support for Brotli and also compared the resulting file sizes. The Brotli compression is not only better supported, but it also compressed the same 12.4MB file to 3.5MB instead of 4.8MB. In this blog post I’ll explain how to serve Brotli compressed WASM files using Apache. Note that I am using pre-compressed files (not on-the-fly compressed) as Brotli compression can be heavy. ...

April 4, 2024 · Maurits van der Schee

The P in CAP is for Performance

I was reading the (well written) article “The CAP Theorem. The Bad, the Bad, & the Ugly” by Dominik Tornow (recommended read). On “partition tolerance” (the P in CAP) he writes: “network partitions are inevitable in a realistic system model” and that tolerating partitions is a “non-negotiable requirement”. His opinion is a common one, shared by Eric Brewer (author of the CAP Theorem), who also wrote in “CAP Twelve Years Later” that his framework was misleading and that “designers cannot forfeit P”. I disagree as the same could be said about Consistency or Availability: people won’t lightly give those up on those either. ...

March 7, 2024 · Maurits van der Schee