Deploy Next.js applications to a cPanel web host

At Watford Consulting we use Krystal for our web hosting. Like many web hosting providers, Krystal offers their customers a cPanel interface to configure their service. One of the nice benefits for customers is that we can use cPanel to configure serving of web applications written in various languages such as Ruby, Python and Node.js. […]

The multiple identities of a SharePoint site user

Every SharePoint site maintains its own list of users and groups. In this post we explore the relationship between a site’s users and groups and the corresponding users and groups in Azure Active Directory.

Building Apache Ofbiz Docker Images

Apache Ofbiz ( is an open source suite of business applications that companies can use to manage customer relationships, order processing, warehouse management, HR and lots of other functions.

This post covers how to build Ofbiz as a docker image so it can be deployed as a docker container for testing.

Copying Context to Executor Service Threads

Find the sources on Github: Thread-Specific Context If building a non-reactive Java web service such as a REST service that acts as an interface to other upstream services it is common to adopt a model of one-thread-per-request with no state held at the web service. This model can be deployed to servlet containers and […]

ABC Parser and Domain Libraries

Find the sources on Github: Parsing ABC Notation ABC Notation ( is a way to encode music notation in simple text. There are many sources of folk/tradition tunes available in ABC Notation. As part of a project to find shared sequences of notes in traditional tunes (see I built a parser to transform […]

Game Of Life In Scala

Find the sources on GitHub: Game of Life in Scala is a simple GUI program making use of the scala.swing package. Scala.swing provides wrappers around the Java Swing component removing a lot of the boiler plate associated with common tasks. This program’s UI consists of a single button and OnOffGrid, a panel based class […]

Recording APRS data with Groovy

Post APRSParser – A Spring Example included a class, SocketAPRSDataSource, which when coupled with class DataSourceCapture would capture APRS data from and APRS-IS server to a file for playback in later development. Listing 1 contains a quick Groovy script to do the same thing. It can probably be refined a bit should demonstrate how powerful […]

Trap 0

Files used in this post available at In build scripts for complex systems we sometimes need to perform operations that cause side-effects on the hosting system. Take build systems that generate disk images as an example. Under Linux you can use tools like qemu-nbd to take a file and present it as a Network […]

Checking which signals trigger Trap Zero

Trap Zero is a very useful tool in shell scripting when there is a need to clean up the environment upon exit. However I wanted to be sure which of the default signal handlers for a shell would cause trap zero to be fired. Listing 1 shows the script I used to test the signal […]

APRSParser – A Spring Example

This is a class diagram for APRSParser – a small demonstration project which uses the Spring framework for object creation, dependency injection, and some basic aspect programming to provide logging. Note: I still like to sketch out my software designs on the whiteboard rather than on the computer – hence the photo of my whiteboard […]