Blog

Why You Should Always Give Lazily Loaded Images A Width & Height

Why You Should Always Give Lazily Loaded Images A Width & Height

When images are set to load lazily they will only be downloaded when they come into view but what counts as "in view"? It seems Google Chrome only takes the vertical scroll position into account...

Read more

Persisting Data Between Steps In BitBucket Pipeline Builds

Persisting Data Between Steps In BitBucket Pipeline Builds

When using a build pipeline it is common to create some kind of value, like a path, container ID, auth token etc in one step which is then needed in a subsequent step but the whole point of steps...

Read more

Using FallbackResource with Apache Header Expressions Causes Weirdness

Using FallbackResource with Apache Header Expressions Causes Weirdness

Recently we needed to set one of our Apache servers to output a HTTP header for a specific URL, a simple task right? Well it turns out it can be a right pain... The server is pretty standard,...

Read more

Hunting For Zombie Pods

Hunting For Zombie Pods

At almost exactly 0300 (UTC) on the morning of 22/05 our monitoring systems started sending alerts for a handful of websites. They had begun to respond slower. This was very strange, the sites...

Read more

Satis Queue Worker

Satis Queue Worker

As part of a recent server migration we had to move a Satis instance. The server it was being moved from was a baremetal server, the server it was going to was a Kubernetes cluster, quite...

Read more

On server migrations…

On server migrations…

Server migration:  there’s a term bound to strike fear into the heart. Horror stories of downtime and lost data abound. This post looks at the good and bad of our migration from dedicated to Cloud...

Read more

Misleading Validation Messages When Creating BitBucket Pipeline Variables

Misleading Validation Messages When Creating BitBucket Pipeline Variables

Just in case anyone else finds themselves wrestling with this:  I was recently attempting to create BitBucket Pipeline variables via BitBuckets API using curl: curl -X POST --data...

Read more

Protecting Against Textfile Collector Script Failure

Protecting Against Textfile Collector Script Failure

Monitoring bespoke metrics with Prometheus textfile collector scripts can fail in such a way that all your monitors look fine but actually there is a problem. Here's how to prevent that. When...

Read more

Spreadsheet hell: there has to be a better way!

Spreadsheet hell: there has to be a better way!

Businesses run on data. And there are some really good systems available to manage some of that data. Your financial data might live in Xero or Quickbooks or Sage. And your customer data lives in...

Read more

At Montacute again

At Montacute again

Last year we didn't quite manage to achieve all of our volunteering goals - the weather and our workload conspired against us - so this year we've made a strong start early on with a second...

Read more