JavaFX on the Raspberry Pi 4

Running JavaFX applications on the Raspberry Pi 4 + 7" LCD touch using direct framebuffer rendering without installing a full desktop environment.


Launch of FLXS public build

A little over a year ago, I started putting together some notes and playing around with some ideas. I realised that there are a large number of software tools I use on a regular basis that would have virtually zero impact on functionality if they didn't collect ANY personal information from me - not even an email address!


New blog engine and revamped visuals

It's been nearly 1,000 days since I published my "relaunching soon" post and I've got my Java rewrite to a point where it's actually usable again. So here's some details on the changes and some reflections on the overall progress of this blog.


My Standard Pi Server Setup

I mostly use my Raspberry Pi's as mini servers without a desktop environment, and I almost never hook them up to a display or a keyboard & mouse. So these are the steps I take to flash the SD cards in order to have them already configured to connect via SSH on a known IP address from their very first boot.


Disable swap on Raspbian Buster

While I was recently playing around with Kubernetes on a few Raspberry Pi's, I noticed that after disabling swap it would be re-enabled on the next boot. This was the solution I found to get it permanently disabled.


Setting up logging & metrics in your app

Singletons, static references and global variables are generally considered evil by most top-rated answers to related questions on stack overflow! However, today I'm going to offer some thoughts on using static logging and metrics recording classes in your applications and why it's not all that bad.


Front-end optimisations

In an earlier post, I looked into replacing the Silex PHP framework I originally used to setup this blog (It was my "go-to" framework of choice at the time). Once again, I have to hold my hands up and admit that I have been guilty of just using my "go-to framework" and building upon it without really evaluating if it was the right time and place to use a framework - this time, on the front end.


Radeon VII and Ubuntu 18.10 / 19.04

I jumped on the Radeon VII as soon as it was released. Like any new hardware with Linux, there can be some tweaks needed to get it running properly. These are the steps taken to get a new Radeon VII working under Ubuntu 19.04 ( and will probably work for 18.10).


Removing Silex

I developed this iteration of my blog platform as an exercise in Event Sourcing and CQRS. As such, I did not want to spend too long learning the ins and outs of a new framework, so I fell-back to one of my old favourites to fill the gap of HTTP request routing and configuring controllers - Silex.


Cross-server lock with MySQL and PHP

This is a quick solution for a problem I've come across a few times recently when it comes to running "single tasks" such as scheduled cron scripts in High Availability or Scale Out deployment scenarios where you want to make sure you don't accidentally run the action multiple times.


Is it time to ditch Frameworks?

In the last two and a half decades that I have been a "web developer", things have come a very long way. Languages like JavaScript and PHP have grown from quick scripting tools into the cornerstone of the software which many enterprises are building their business critical systems with. As these languages have matured so have the ecosystems that surround them.


Exploring life beyond PHP

After 20 years, I'm defecting to the other side! PHP is Slow and Java is Fast!! Here are some of my thoughts and ideas as I go about ditching PHP in favour of Java and exploring how the world of modern Java web apps shape up as I dive into the vert.x framework. I'm not intentionally going to be bashing PHP (although I suspect it might come across that way), but I'm going to try and explore what it is that keeps us tied to PHP even though there are (probably) better solutions out there.


Wildcard SSL certs from Let's Encrypt using acme.sh and Route53

The movement of the web to HTTPS "by default" is continuing at a great rate (which is a good thing), thanks in no small part to the excellent work of Let's Encrypt and major browsers - especially Google Chrome. For this article, I want to run through my solutions for overcoming two challenges I have recently faced with acquiring Let's Encrypt certificates for use in local dev environments and securing web interfaces on the increasing number of devices I have on my local network. In both these scenarios, there is no direct connection to these systems from the internet, so I'm going to be using acme.sh and Route53's for DNS in order to use the ACME DNS challenge verification method in order to obtain the certificates.


Network Speed Testing

As part of another project I am working on, I wanted to make sure I could reliably test the speed, latency and packet loss of a network setup. Not necessarily an internet connection - but the connection between any two devices on the network. So I thought it would be a good time to write up a post about the tools I am planning on using to gather the test data.


Relaunching Soon

I am working on relaunching this blog soon. Probably for about the 5th time! Having somehow managed to keep backups of my old blog safe since 2005, I was having a read through the old posts only to find that, to be perfectly honest with myself, 95% of what I was writing about was total rubbish and not worth keeping backups of - never mind restoring into this incarnation of the pheonix! In order to hopefully motivate myself to keep the blog going properly this time, I am setting myself some ground rules...


Hi. I'm Paul Court, a Software Engineer, DevOps, Gamer, Entrepreneur and general tinkerer of all things computer related.

My ramblings here are mostly about software development with PHP and Java, Linux and server admin related things. Occasionally you might find some things relating to games and woodwork.


Founder @ FLXS Logo