Running 250km in a month

At some point after I publish this blog post, I'm going to go out for a run and tick over 250km for the month. This is the most I've ever ran and it's not a lot, but it's a good step to training for my ultramarathons. Before December, the most…

Why I haven't upgraded to PHP 7.3 yet

I've been going on about PHP 7.3 for a long time now. There's even a sticker of me talking about it in the WIP Telegram group. And it was finally released at the beginning of December. But I don't think it's ready to switch to just yet. We upgraded…

Stop obsessing over PageSpeed Insights score

I've had several clients come to me asking to help with their website performance, insisting that they must get a PageSpeed Insights score of 100. I have quite a reserved opinion on this. Yes, Google PageSpeed Insights is incredible useful and lists a lot of easy performance gains but it's…

A pet peeve

I've spent the last month and a half in Chiang Mai and something has really started to irritate me. Since deleting Instagram, it feels even more prevalent that everywhere I look I notice people are creating these fake versions of their life to post online. It's just constant photo taking…

Visa extension in Chiang Mai

I recently had to extend my 30 day visa exemption by another 30 days. Last time I was here, I went to Promenada mall on the south east side of Chiang Mai. As of September 2018, Promenada mall immigration office closed down and replaced with one by the airport. It's…

Hiding your Linode server IP with Cloudflare

Over at Nomad List and Remote OK, we recently switched our server IP to protect against DDoS attacks. Whilst the main sites had been on Cloudflare for a couple of months, the server IP was easily findable on Google and we had experienced several DDoS attacks. The server is hosted…

Google Analytics has an anti-tracking problem

We've always known Google Analytics would be susceptible to anti-tracking extensions like AdBlock and uBlock Origin. I never really thought about how big that difference would be. It was only when we started using Cloudflare on Nomad List and Remote OK that I started taking a look. What I found…

Working out with music

For a long time, I would always workout with music. It kept away the boredom and gave something to jam along to. The problem I discovered is you're not present with the activity you're doing. Your mind is just floating in this beat-infused bubble. When I'm running, I want to…

Lessons from David Goggins

I was recently listening to the latest David Goggins episode on the Joe Rogan Experience podcast. He was promoting his new book, Can't Hurt Me, but also appeared on JRE 10 months ago. I'd really recommend listening to both episodes. In case you don't know who David Goggins is, here…

Twenty-three

Today is my 23rd birthday. It's a good time to reflect on the things that have happened in the last year. Anyone who knows me well knows I don't like to celebrate my birthday. I tend to just go out and eat a meal with friends, but I'd rather just…

Static apnea

I recently took up static apnea as a hobby. On my first day, I managed to get 3:00. I figured this was pretty good so I wanted to keep a list of my static apnea personal records over time. 2018-12-18 4:00 2018-12-11 3:35 2018-12-06 3:10 2018-12-01…

Setting up a limited company

After 6 months of consulting and freelancing, I recently decided to switch from sole trader status to a limited company. This is hardly an exciting thing but I wanted to write this post to congratulate the UK government and its digital services for such a great experience. I assumed that…

Easy VPS deployment for Jekyll

My blog is generated by Jekyll and hosted on a Linode VPS. This is how I set up Git to allow me to instantly deploy updates. My setup has gone through a few iterations over the years, as I changed technologies and tried to make it easier. I used to…

Creating a PHP response time dashboard

Following my previous post about creating histograms from PHP response times, I made a small dashboard so I could see those histograms across each site. It was fairly simple to make -- I just looped over the last 50000 lines in the log file, checked if each line contained a…

Generating response time histograms for PHP

Whilst debugging an issue related to response times on Nomad List and Remote OK, I started to think about what kind of data we have available to analyse. We keep access logs for all requests coming through the PHP-FPM engine. I briefly wrote about how I use these to find…

Overnight in DMK

In order to get from Da Nang to Phuket, I had two options: arrive late at night or sleep in the airport. The first option would have gotten me to Phuket Airport at 22:30, which wasn't ideal and made getting to a hotel at a reasonable time unlikely. The…

Spectating the Laguna Phuket Triathlon

Aside from seeing Phuket, I went there to spectate the Laguna Phuket Triathlon. The day before I ran the charity 5km fun run so I was in a good mood and excited to see the triathlon. It was the 25th year and they had a sprint distance race as well.…

Narrowly avoiding theft

This is a little story about an experience I had in Ho Chi Minh City, Vietnam nearly 2 months ago. It's not meant to provoke fear about travelling but I think there are some important lessons to be taken away. I was staying in a hostel in the backpacker-rich District…

Laguna Phuket 5k

I travelled to Phuket to spectate the Laguna Phuket Triathlon. Having not ran a competitive 5km for a long time, and there being an opportunity to do so on the Saturday, I decided to enter the event. It was technically a charity fun run -- something the locals could participate…

On owning little

"Is that all you own?"I've lost count of the number of times I've been asked that question. My parents, family, friends, people in hostels, receptionists in hotels and airport attendants have all asked me that question. They are amazed at the size of my bag is, and surprised when…