Blog

Go directly to the browser. Do not pass GO, do not collect $200

Go directly to the browser. Do not pass GO, do not collect $200

Recently I needed to provide a simple CSV export function which allowed users to download some dynamic data. I wanted to use PHPs inbuilt fputcsv function so I didn't have to think about...

Read more

GDPR: can we justify third-party scripts?

GDPR: can we justify third-party scripts?

I’ve written before about how managing privacy on websites is bigger than just deciding whether you need a cookie banner. In this post, we look in more detail at how websites process PII, how it...

Read more

Sometimes You Don't Need A Dependency

Sometimes You Don't Need A Dependency

When developing new features it is all too easy to go immediately to packagist.org and see if that wheel has already been invented. Most of the time this is the right approach. We don't need new...

Read more

Livewire Testing: Undefined array key "fingerprint" Error

Livewire Testing: Undefined array key "fingerprint" Error

Recently I've been using Filament CMS quite a lot. It makes use of Livewire through out and as with any new technology I've been exploring what it can do. While writing a component test I ran...

Read more

Completely Hiding The Wordpress Version Is Hard

Completely Hiding The Wordpress Version Is Hard

We develop and maintain a couple of WordPress sites. There are a number of things we will do as standard to secure each site. One of these is running WPScan. It checks for all kinds of things but...

Read more

Automatically Find The Best Image Compression

Automatically Find The Best Image Compression

Recently I was tweaking the default quality values used to compress images on one of our sites. The quality value is a number between 0 and 100. 100 produces a large file size and has high...

Read more

Data Transfer Objects In PHP 8

Data Transfer Objects In PHP 8

Data transfer objects (DTOs for short) are simple PHP classes which have one job: Store some data. Until recently the spatie/data-transfer-object package was our go-to when creating DTOs. This...

Read more

Keeping Up With Web Dev

Keeping Up With Web Dev

The internet moves fast. New libraries, new tools, major updates to existing tools, security vulnerabilites etc. To keep up with this we created a #learning channel in Slack. This serves two...

Read more

Asking for help

Asking for help

Sometime back in the summer just gone, I got a bit stuck. I’d been running this business for something like eight years, and somehow I’d lost track of where we were going. A lot of things that...

Read more

Testing With Laravel In Maintenance Mode

Testing With Laravel In Maintenance Mode

It is standard in our projects to include simple routes which are used to signify if the application is alive and working. They are primarily polled by Kubernetes liveness probes. The tests are...

Read more