I was asked to wipe and reinstall a MacBook Air (mid-2013) for work, which would normally be a simple task of booting into recovery mode, wiping the disk in the Disk Utility and using the “Reinstall” option to put back a blank copy of the OS. However, this particular MacBook Air seems to have an issue with the keyboard commands on boot.Read More
I’ve been working from home since August 2019, before it was made so popular by COVID-19, and as such, I take part in lots of video chats during my working week. At first, I was using the webcam built into my 2018 13″ Macbook Pro, however, due to my home office setup with two external 24″ monitors I tend to use the Macbook with the lid shut, so every time I want to use the webcam I had to open the Macbook up. Whilst this isn’t a big issue, it was a bit annoying and whilst macOS, on the whole, handles window positioning well when you add/remove a screen from the mix, sometimes it does end up moving windows into a different position, which can also be annoying. So I decided to invest in an external webcam, unfortunately, that was around the same time as everyone else did, so there was very little choice in stock so I plumped for a Wansview 1080P Webcam with Microphone from Amazon.Read More
A couple of months ago I wrote about password hashing in CFML (if you haven’t read that, I would suggest reading it before reading this) and in the post, I mentioned that Argon2 as being the currently recommended algorithm for password hashing but that, at the time of writing, neither Adobe ColdFusion or Lucee natively supported the Argon2 algorithm. I submitted an enhancement request to Lucee via their JIRA ticket system and at the end of August, it was reported on the ticket that it had been implemented and support was available in build 220.127.116.11 or higher. Currently, this build is only available on the SNAPSHOT branch, but it is available to download and use if you want it, so I thought I would give it a try.Read More
As we all know, or at least should know, if you are storing passwords in a database, they should only ever be stored as hashes and NEVER as plain text or using reversible encryption.
What is hashing?
By hashing the password, you are not storing the original password, only a calculated representation of the password, that given you know certain information about how the hash of the password was created, you can recreate the same hash from the password and compare the stored version to the newly hashed version for verification.Read More
Traefik is a great “cloud” router that is perfect for use in a development environment to route traffic to different Docker hosts, but when I came to try and add some self-signed certificates to it so that my development environment more realistically mirrored the staging and production environments I ran into some problems and the Traefik documentation, whilst good, unfortunately, is a little vague around the subject of certificates in a general, so it took some Googling and putting various different things together to come up with a final solution that works well.Read More
Disclaimer: I am not a medical professional and everything in this article is based on personal experience and is for informational purposes only.
My son, Jamie (aged 9), is a type 1 diabetic. He was diagnosed 3 years ago, just before his sixth birthday, and ever since then, we’ve been learning everything we can about it, the treatments and the technology that can help. The standard therapy for Type 1 Diabetes (T1D) is multiple daily injections (MDI), where the patient takes two different types of insulin, long-lasting insulin taken once a day and fast-acting insulin taken with meals, so for most patients, this means at least four injections per day.Read More
A question came up on the CFML Slack a couple of days ago where someone was asking about looping over a date range, e.g. from 1st August 2018 to today. He suggested he was going to “do it the old fashioned way using DateDiffs and DateAdds” so he could do it with “regular numbers”. In CFML, however, looping over dates is possible, like this:Read More
As I found it difficult to find the solution to this when I was charged with adding cross-domain measurement to some requests on a site this week, I thought I would put together a quick post to explain.Read More
Today I came across an issue which I’m sure I’ve had previously, many years ago, but I couldn’t remember how to solve it and what the correct way to handle it was.Read More
I’ve been programming in the ColdFusion Markup Language (CFML) since 2000 and every now and again I find out something which I didn’t know, which always surprises me. Yesterday, while working on something I accidentally found out that in CFML you can pass parameters to a function without those parameters actually being defined in the parameter list of the function.Read More