Password Protecting Staging Sites on Laravel Forge Using htpasswd
If you’re using Laravel Forge to host your sites, then you’re probably also using it to host staging sites that are being testing before they go live. It’s usually a good idea to put such sites behind a basic authentication to prevent the likes of Google prying on your pre-production work.
Resolving post-install Issue with MariaDB Install via Homebrew
I have been attempting to install MariaDB on a new MacBook with Catalina installed using Homebrew. However, I hit an issue with the post-install step failing which meant the installation didn’t work. I’m sharing how I managed to successfully install MariaDB here for anyone else that hits a similar problem.
Joining Related Salesforce Objects in SOQL
Objects in Salesforce can be related to one another via a parent-child relationship. For example, the Account object is the parent to the child Contact object; an Account record can have one or many Contact records. Much like in SQL, the child has a field that acts as a foreign key to the parent record. One way of thinking of this is with the analogy that a child has the DNA of the parent that we can use to relate the child back to them.
Happy New Year
Ten years ago I started working full-time as a web developer, leaving behind my career in Physics. It is a decision I have never regretted. For the last decade I have been able to spend my days working on what, for a long time, was mostly a hobby. My passion for developing websites continues today.
Sort Git Tags by Ascending and Descending Semver
Semver is a popular way of versioning applications and software libraries. However, if you use git tag
to list out all your tagged versions of a Git repository you’ll probably find the tags returned are not listed in the expected order. That’s because by default Git uses lexicographic order, also known as dictionary or alphabetical order. Therefore, 1.10.0
will come before 1.2.0
when listing the tags in ascending order.
void in JavaScript and TypeScript
Nice little runthrough of what void
means in JavaScript and TypeScript by Stefan Baumgartner.
Auto-Correct Git Commands
Did you know that if you mistype a Git command you can automatically run the suggested fix? I’ve been using Git for many years now and only just come across this feature today. To enable it you need to assign a value to the config setting help.autocorrect
.
Why I'm Loving TablePlus

For the last few months I’ve been using a great app for working with databases called TablePlus. I want to share with you some of the reasons why I like it. Just to be clear, this is a personal piece; I have not been paid to write this and have no affiliation with TablePlus or its developers. I simply love using it and here’s why.
Your first performance budget with Lighthouse
Ire Aderinokun explains how you can set a performance budget for your website and check that it is conforming to it using Lighthouse. As she points out, Lighthouse can be run from the command line which means we can incorporate the audit into our continuous integration process.
This is a great idea and definitely something I want to develop into my own workflow going forward.
Commenting Your Regex
Emily Shaffer has written a great post proposing commenting regular expressions by each individual atom.