Raymii.org
Quis custodiet ipsos custodes?Home | About | All pages | Cluster Status | RSS Feed
Hi there!
I'm Remy, a developer from The Netherlands with a focus on C++, C, some C#, Linux and embedded systems.
I currently work on a C++ and Qt stack running on Yocto Linux. It controls hardware, runs the UI and has a few utilities for IoT connectivity and configuration. Technologies I'm fluid in include C, C# & C++, Windows (MFC/Win32), .NET (Core, Xaml, Framework and C++/CLI), Flash, Qt, Ansible, Bash & PowerShell. I was Linux and UNIX sysadmin for over 10 years before I got into development.
To read more or get in touch, click here. This is my personal website, these articles do not reflect or are based on work, opinions or policies of any of my (previous) employers. Any resemblance to reality is pure coincidence.
Latest Items
Qt Property Macro (Q_PROPERTY with 95% less code)
29-05-2024 22:00 | Remy van ElstAdding properties to QObject based classes is cumbersome. Although the property system and Signals and Slots are great to use, especially with QML, it takes a lot of boilerplate code to add such properties to a class, at least 15 to 20 lines for each property. I've cobbled up a macro that saves you about 95% of lines when using a Q_PROPERTY
. (22 lines to 1 line).
Qt 5.15 LTS on Windows without a Qt Account
19-05-2024 | Remy van ElstI recently had to setup a Windows development environment with Qt 5.15. Qt 5.15 is still developed by the Qt company, but only released in binary form for paying customers. The source code is released after 1 year. Via the Online Installer you can only install 5.15.2 and you must login with a Qt account. This guide shows you how to install the most recent Qt 5.15 (as of writing it's 5.15.13) and Qt Creator, without a Qt account. We're using vcpkg
to compile Qt and a specific offline-enabled installer for Qt Creator.
Proxmox VE 7 Corosync QDevice in a Docker container
Published: 17-04-2022 | Last update: 29-01-2024 04:30 | Author: Remy van ElstAt home I have a 2 node Proxmox VE cluster consisting of 2 HP EliteDesk Mini machines, both running with 16 GB RAM and both an NVMe and SATA SSD with ZFS on root (256 GB). It's small enough (physically) and is just enough for my homelab needs specs wise. Proxmox VE has support for clustering. For a cluster (in any sense of the word), you need at least 3 nodes, otherwise there is no quorum. Corosync, the cluster software used by Proxmox, supports an external Quorum device. This is a small piece of software running on a third node which provides an extra vote for the quorum. In my case I wanted to run this on my NAS, since (physical) space is a premium. The NAS supports Docker, this guide explains how to run the QDevice for Proxmox VE 7 in a Docker container. There is a qdevice Docker image on the Docker hub but that guide does not work for Proxmox VE 7 and requires a lot of manual setup. Using my method involves a lot less steps, since you're basically running an extra debian VPS (a container with systemd and openssh).
Read more...Fixing the hiss on my Atgames Legends Pinball Micro including root access
23-01-2024 22:00 | Remy van ElstThe Atgames Legends Pinball Micro is a small virtual pinball cabinet for around USD 350. I imported one to the Netherlands, Atgames does not ship here. The built in tables are okay and more are for sale via Atgames' webshop. Overall for the price it is a nice device. Build quality is okay, software lacks a bit of quality. One really annoying issue which severely impacts gameplay is a buzz / hiss sound. This post goes over my attempts to fix this hiss and the one that worked was a ground loop isolator.
Read more...Which Root Certificates should you trust? Find out with CertInfo
Published: 01-01-2024 09:00 | Last update: 15-01-2024 22:03 | Author: Remy van ElstWhich Root Certificates should you trust? Did you know that any certificate authority can issue a certificate for any website? There are protocols in place so that should not happen, but when (not if, when) they get hacked or coerced by their government, they can issue a certificate to intercept secure communication for any website. I've made an open source program, CertInfo that analyzes your browser history and queries all visited domains for their certificates. It presents a list of used root certificates (meaning, a website you visited was ultimately signed by that root CA) and a list of unused root certificates (meaning, no website in your analyzed history was signed by that root CA).
Read more...YouLessQt, helps you align the YouLess to an analog electricity meter
16-9-2023 09:00 | Remy van ElstThe YouLess is a device that can help you monitor energy usage. It works on so called smart meters using a P1 port, it can monitor solar panels but it also works with regular old analog meters. I have an old style analog meter but I like gadgets and monitoring / reducing my energy usage just as much as the next guy so I bought one. It has an optical sensor that you paste (with tape) on your meter and that detects a little black bar on the rotor disc and using a rpm factor on your meter it calculates the electricity used. I has some trouble with the device when I set it up, it turned out to be aligned wrongly. It sometimes missed the black bar, so the numbers were incorrect. I wrote a little application using Qt and QML to show the raw light sensor values in a line graph to help me align the YouLess correctly. This post tells you more about the application, which of course is open source.
Read more...A docker image for Qt 5.15 LTS for Android, including OpenSSL and the KDE patch collection
13-9-2023 22:00 | Remy van ElstRecently I got an email from Google regarding the API level of Leaf Node Monitoring, my open source monitoring app for Windows, Linux and Android. The Play Store version must be updated to target API level 33. For Windows and Linux I'm building the app automatically in a CI environment but the Android build was still a manual process. Until now, because after a bunch of messing around with Android NDK versions, OpenSSL library paths and Qt compile flags I can automatically build Leaf Node Monitoring in my CI.
I'm using Woodpecker CI and that requires every build step to be executed in a Docker image. There are a few Qt docker images floating around but they are all using the pre-built 5.15.2 version by extracting it from the Qt Online Installer. That version is quite old, 5.15.15 LTS was released a few days ago for Commercial License Holders on August 31, so after 1 year it will become available as open source.
My docker image builds Qt from source using the 5.15 KDE Qt Patch Collection
branch for Android and it includes OpenSSL. This is as far as I know the most up to date docker image for Qt 5.15, currently at 5.15.10 LTS.
Drawing a Circle in Qt QML three different ways
05-07-2023 23:59 | Remy van ElstQt has no Circle
built in to QML as a basic type, as for example the Rectangle
or the Button
control. This post shows you how to get a Circle
in QML, from the most basic method (a Rectangle
with a radius
of 180) to more advanced methods, using the Canvas
JavaScript API (which allows us to draw a partially filled Circle, for a Pie Chart) and a c++
control based on QQuickPaintedItem
. I wanted to experiment with the Canvas
QML control and the QQuickPaintedItem
C++ interface to get a better understanding of Qt and QML drawing interfaces, this post reflects that journey including showing your grouped QML properties exposed from C++.
Site update, self-hosted search via pagefind
01-07-2023 21:32 | Remy van ElstThis is a static site, meaning that no server-side processing occurs. All HTML is generated out of a few folders full of markdown source and then uploaded to the cluster. Searching on this site was always provided by a text-box form that sent you to google with 'site:raymii.org' appended to it. Works fine, but it sends all data to Google. With my recent removal of all Google Ads on this site, as well as tracking via Google Analytics, sending searches via Google seems wrong.
I recently found the pagefind
program which I now use on here, it is a self hosted static site search engine of sorts.
The sad state of Alpha emulators (for OpenVMS)
Published: 30-04-2018 | Last update: 30-06-2023 22:31 | Author: Remy van ElstOpenVMS 7.3 was the last version for the VAX architecture. All later versions (like 8.4) are only available for the Alpha CPU architecture or Intel's Itanium platform. Since I don't want hardware running, which is suprisingly hard to get in The Netherlands, Alpha machines, I want to be able to run it in an emulator. simh is the best open source VAX emulator, but it does not support Alpha. My adventure with es40, the only open source Alpha emulator (development halted 10 years ago) ended prematurely since it crashes all the time. The only other available options are FreeAXP, Charon-AXP, vtAlpha and EmuVM AlphaVM. Only FreeAXP is available as a free (but not open source) download, Charon had a personal version but that is nowhere to be found nowdays, vtAlpha doesn't offer a trial or free version and EmuVM Alphaserver also stopped with their free version. In this article I'll go over my adventure with FreeAXP and EmuVM.
Read more...My 24 year old HP Jornada can do things your modern iPhone still can't do!
15-06-2023 01:30 | Remy van ElstI like to tinker with old hardware. The DEC PDP-8 is my favorite retro computer and Office 2003 is the best version ever released IMHO. One of my other favorite retro devices is the HP Jornada 720. A small handheld PC
(smaller than a netbook) running Windows CE or in my case, Linux. It has a decent keyboard, CFL backlit screen, 32 MB of RAM(!), a compact Flash card for storage and a stylus for the resistive touchscreen. Oh and I got a 10Mbit PCMCIA network card, but wireless cards are also still available. It might be old, released in 1999, but can do one thing your modern iPhone can't.