Blog.

Notes on cloud, code, and the occasional opinion I probably shouldn't have posted.

2023-11-06 · Technical, Perl

Making your Perl application more manageable

Introduction Long-lived Perl applications tend to accumulate a particular kind of problem: they work, but only on the machine they have always run on. Dependencies were installed globally years ago, the database is the production one or no

2023-10-08 · Technical, Tutorials, Javascript

Do You Really Need a Software Rewrite

Introduction As a business owner, you may have been advised by an agency or freelancer that your software requires a complete rewrite. The idea of starting from scratch can be intimidating, especially if you don't have a technical backgrou

2023-10-03 · Technical, Tutorials, Javascript

What is using my port?

This all started out with Docker failing to start because binding the port wasn't permitted Now, this isn't the best article, as it was written half from memory, and half from command history, but hopefully it will help somebody!

2023-09-21 · Technical, Tutorials, Javascript

Setting Up Cypress with WSL2 in Windows 11

The Windows Subsystem for Linux WSL2 has proven to be a game-changer for developers, allowing them to run a GNU/Linux environment directly on Windows, without the overhead of a traditional virtual machine. With Windows 11, WSL2 now supports

2019-06-11 · PHP

PHP

This is a collection of a few of the projects I've undertaken with PHP. Adding multilingual support and modernising a legacy application

2019-06-06 · Linux, Ubuntu, CentOS, RedHat, Windows, Pengwin, Docker, Kubernetes, k8s, Technical Tutorials

Thoughts on Linux

A briefish rambling of my experiences with Linux over the years I have been using Linux for over ten years, starting when I found a boxed version of RedHat 7 at a computer fair,

2017-04-14 · PHP, Ubuntu, Caddy, Technical Tutorials

Setting Up Caddy with PHP 7 on Ubuntu 16.04

Caddy seems like a Web Server that's going places, but unfortuantely there is still a need for more tutorials, and discussion. While there was nothing overly

2015-03-26 · Technical, Tutorials, Javascript

Handling Tasks With Grunt

So, what's this Grunt? Basically, it's a Javascript based task runner, which can be used for a huge

2014-09-03 · Linux

Apache Allura - My thoughts so far

First of all, Apache Allurahttps://allura.apache.org/ is an open source forge application, it was developed by

2014-09-03 · PHP, Laravel, Technical Tutorials

Logging in Laravel

Laravel includes MonoLog, which is a rfc5424http://tools.ietf.org/html/rfc5424 compatible logging library, which basically means you log in the same way as

2014-09-02 · PHP, Laravel, Technical Tutorials

Refactoring to MVC in Laravel

I've been working for quite some time to migrate an application from an old, very liniar, non-modular design to the point where it follows the MVC pattern fairly well.

2014-07-21 · User Guides

Browser Cache

While servers often cache files to allow them to serve them more quickly, so do web browsers. Most of the time this is great,

2014-07-21 · Nginx, PHP, Technical Tutorials

Distributed Concurrency in PHP using Nginx, PHP5-FPM and Memcache

An issue I've run into in the past is "how do we perform 5 calls to a 3rd party API, as quickly as possible?" The obvious answer is, make them all at once and wait until they've all come back!

2014-07-21 · PHP, Technical Tutorials

MySQL load data infile local with PHP 5.4

Incase you've not heard of it, MySQL's "load data infile local" is a really useful bit of functionality that allows you to load a file directly into a database table. The benefit of it is that the whole file is processed at once, so it's ve

2014-07-21 · PHP, Technical Tutorials

PHP Function to build API URLs

The following function is one I wrote to generate URLs for eBay APIs, but I took care to avoid making it vendor specific, hopefully it's of use to somebody, and as always, please get in touch with any feedback/contact/! /