Install Debian 12 with modern XFCE themes

I often choose Linux Mint XFCE when I need a good looking and comfortable system quick. But sometimes I’d rather have a more stable system and match what I have on the server, which is Debian 12 with XFCE. Unfortunately Debian with XFCE doesn’t look as good as Mint with XFCE. In this post I’ll explain what you can do to make Debian look like Mint/Xubuntu and suitable for everyday use. ...

November 28, 2024 · Maurits van der Schee

Can you afford to cloud compute?

Data centers promise better and cheaper physical security, rented hardware, electricity and connectivity than you can have on-premise, because of the scale on which these companies operate. I think that is often true and that that’s is why most companies moved their machines to racks in data-centers that are well connected to the Internet. What is cloud computing? Most people nowadays agree that even though your servers are not owned by you or on-premise, this does not make it “cloud computing” or even “cloud native”. In general people believe that cloud is more than “just someone else’s computer” as argued here. Cloud computing has become a term used for good engineering practices in the data-center. ...

November 17, 2024 · Maurits van der Schee

Scaling to 1 million websockets in PHP

A client asked me: How does one scale software to handle 1 million websocket connections? At 1000k connections when every client sends only one message per 30 seconds you have to deal with 33333 websocket messages per second. Dealing with that many requests per second is well understood in HTTP, but unfortunately these are messages on a websocket. Nevertheless, let’s assume that these are HTTP requests for now. 33k requests per second in PHP Laravel behind Nginx can do 2908 requests per second on a Dell R440 Xeon Gold + 10 GbE when the average API call is 20 database queries per request (see here). This means that in order to handle 33333 API requests for 1 million websockets you need a minimum of 12 of these machines. Also, the corresponding 666k queries per second may need horizontal scaling of the database (unless the queries are really cheap, see here). ...

November 14, 2024 · Maurits van der Schee

Running Debian 12 on Windows with WSL 2

So, maybe your employer want you to use Windows. Obviously you still want to use Linux as you want to run whatever operating system your production servers run. If running Virtualbox or VMWare causes too much switching between environments then WSL might be a solution. In this post I’ll show how to install WSL 2 with Debian 12 as the Linux distribution. First we show which Linux distributions you can choose from, by running (from the command prompt): ...

October 1, 2024 · Maurits van der Schee

Distributed metrics in PHP using Go and Gob

In the previous post I showed how to do high frequency metrics in PHP with TCP sockets. In this post I’ll show how to collect and combine metrics from multiple PHP application servers. Instead of sending the log lines from each server to a single node, the monotonically increasing counters from all PHP application server’s metrics HTTP end-points are scraped and added up. The transfer of the metrics is done using Go’s very efficient Gob protocol (over HTTP). ...

September 25, 2024 · Maurits van der Schee

High frequency metrics in PHP with TCP sockets

When you are running a high traffic website you may run multiple PHP servers to handle the load. When you want to track a performance metric (such as API or database calls) you may need to do some high frequent logging for performance analysis. In this blog post we present a standardized (and tested) way to do this with minimal impact. A line logging performance may look like this: log( [metric name], [label name], [label value], [duration in seconds] ) The current implementation supports labeling each measurement with a single label. ...

September 23, 2024 · Maurits van der Schee

GMKtec NucBox G5: a tiny Linux PC

I don’t like laptops, neither to own nor to work on. They are very costly, are hard to repair or upgrade and I get neck and back pain from working on them. I love to work at places where the desk is (properly) equipped with (height-adjustable) monitor, keyboard and mouse. Most companies provide laptops to use on such desk setups for maximum flexibility, but I would rather have a GMKtec NucBox G5. ...

September 1, 2024 · Maurits van der Schee

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