Archiving 500k records (500GB) in one flat folder

I recently had to archive an old website which contain around 500k user uploaded files, totalling around 500GB. Due to the design of the application, the files were all in one folder with no subfolders.

I had assumed I would just take a backup, stick it on an external drive and provide it to the archiver.

Oh ye of little learning.

(more…)

The Holy Grail: Cypress.io, Browsersync automatically rerun tests

Cypress is an amazing front-end JavaScript test runner and framework. It simultaneously simplifies the set-up and test creation whilst providing a more useful features than most alternatives.

(more…)

How to lazy load custom field images in wordpress

Lazy load text

WP Rocket is a great, paid-for module for improving the performance of WordPress. Their Lazy Load module improves perfomance further by online preloading images above the page fold.

(more…)

How to share contacts between Current RMS and Pipedrive

Current RMS is a great Rental Management System (RMS) providing all the tools needed to run a product rental business, including inventory management, invoicing, reporting and Customer Relationship Management (CRM). It also has an awesome API for building integrations with other systems.

Current RMS screenshot

Whilst it is a one-stop shop for rental management, features such as the CRM don’t provide the breadth of functional as dedicated systems. Eventually, you may find yourself wanting to use a separate CRM such as Pipedrive.

(more…)

BDD with Visual Studio – part 2: First scenario and first test

In this second part of this series, we look at creating a first scenario and step definitions.

BDD in Visual Studio – part 1: introduction

As a natural extension of Test Driven Development (TDD), BDD takes things a stage further.

TDD focuses on the use of Unit Tests to drive out a specification for your code and to guide your development. The nature of unit tests means that they are mainly practical for use by developers and, as the name suggests, only for unit testing.

(more…)

A guide to SRP, Open/Closed, Dependency Injection, Interfaces, Unit Testing and Mocks

This video is a guide for developers to help them understand what changes need to be made to code to make it testable and sustainable. It uses parts of the SOLID principles to refine an example class.

Topics covered:

  • Single Responsibility Principle (SRP)
  • Open/Closed principle
  • Dependency Injection
  • Interfaces
  • Unit Testing
  • Mocks

Geospatial search using MongoDB and PHP

A short tutorial showing how to use MongoDB to create a geospatial index.

Seeing the big picture

Image of Dubai from the Burj Khalifa

26 Brains is a response to seeing a significant level of failure on technology projects. Whether it is the UK’s NHS IT programme or a small business website, there are too many examples where something that should have made a positive difference ended up doing the opposite.

The reasons are varied and, in my experience, seldom involve the quality of an individual’s code. Most of the failings I have observed can be linked back to poor communications and/or a mismatch of expectations.

Sometimes a client might have unrealistic expectations and a supplier might be unwilling to rock the boat and deal with that situation – this rarely ends well for either party. Sometimes a client wants X, but the supplier wants to sell Y – a sure fire way to end a project with disappointment. Sometimes project go in unexpected directions – sometimes good, sometimes bad – but either way, you need to take stakeholders on that journey. I am yet to find a situation where clarity and honesty have not gain the support of clients and stakeholders.

Even in times of failure, honesty, and a coherent plan of action will beat covering something up.

With 26 Brains, I want to promote best practice software development and IT implementation. I want to show that expectations can be met and even exceeded with the right planning and communication and when the vision is shared across all parties – whether the interest is financial, technical, administrative, user-based or design-based.