Need some server help? You can reach me at @DanielLockyer or email@example.com.
- keeping your server up due to traffic?
- speeding up your backend?
- managing your VPS security?
- moving from Heroku/PAAS to a managed VPS?
PHP Flame GraphsIn my quest to optimise the PHP sites I work on, I found that the Flame Graph repository contains a script to convert XDebug traces. Flame graphs, created by Brendan Gregg, visualize the most frequently hit code from profiled software. The x-axis represents the profiled stack traces, ordered alphabetically, and the y-axis is the stack depth. Functions taking up more CPU time are wider.
What I'm currently running inMy run gear changes all the time. I’m currently travelling minimally so I only have one of everything. I wash them after use and they’re dry by the next day.
My university marksI recently finished 4 years at the University of Southampton, studying MEng Computer Science. I kept a spreadsheet recording all my university marks and this post briefly looks into some of my numbers.
Project: Server HelpA couple of months ago I created Server Help, a Telegram group to help indie makers with any server issues. It’s not a big group but people come to ask questions they have about DNS, web server configurations and hosting services. I started it because I knew people were facing these issues and their questions ended up getting lost in these large, general chat groups.
Deleting InstagramI just finished watching the live stream episode of Joe Rogan and Elon Musk. Elon briefly discussed his thoughts on social media and how he deleted his Instagram account. I have also been evaluating my use of social media and how it affects my thinking.
Going to Chiang MaiA couple of weeks after going to Bangkok, I decided to move on towards Chiang Mai. I had seen YouTube videos and blogs describing the experience and I thought it looked great. My friend also decided to come along so it was nice to share the experience with someone.
Arriving in BangkokMy flight from Heathrow to Cologne was over before I even had a chance to get my headphones out. I’ve never taken such a short flight before so it was quite weird to be landing within an hour.
How to find slow PHP scriptsIt is important to keep a website fast so users have a good experience. Some pages on your website may be slower than others, possibly due to slow backend code. I use this super simple method to find the slowest loading PHP scripts and fix them.
DispatchedYesterday I left my hometown of Nuneaton, UK to begin my journey to South-East Asia. I had breakfast with my family and said goodbye to my grandparents. I collected my bag and my dad took me to the train station. It was quite emotional leaving everyone – not knowing when I’ll see them next. I waited at the train station for 30 minutes, to catch a train to Coventry which is my closest city.
Going up TeideWhilst on holiday in Tenerife, my brother and I took an organised trip up the volcano Teide.
Update to my phoneA short while ago I wrote about my beloved Nexus 5. Since then, I’ve switched to a Xiaomi Redmi Note 4X. My Nexus 5 was still working but I kept experiencing monumental slow-downs and it became unusable. I wanted to sort my phone situation out before I leave so I asked around and my dad recommended the phone he had.
Travelling lessons from TenerifeI wanted to write about some of the things I’m taking away from my week in Tenerife in regards to travelling.
GraduationOn July 19th 2018 I graduated from the University of Southampton with First Class Honours in MEng Computer Science.
Using RSS to kick my addictionI used to spend hours refreshing my YouTube subscription feed, browsing through recommended videos and generally wasting time. I realised I would check it dozens of times a day, even though I only subscribed to around 30 people and a handful uploaded daily. It was getting out of control so I looked for a solution.
The next two monthsI am writing this post with just over a week left living in my house in Southampton, UK. I finished my university exams at the end of May and I’ve been living in this city for 4 years. It’s been a crazy time but it seems to have flown by. My lease is nearly up so I’m moving back home to my parents’ for about 2 months. From mid-August, I’ll be packing everything I own into 1 rucksack and nomading around South-East Asia. I have several things to do before I leave.
Automating gym bookingsMy gym uses an online system to take gym class bookings. People often book way in advance and then cancel on the day. There’s no waiting list so if you want to grab a last minute spot, you have to be lucky enough to try and book in when it’s free.
IPv6 weirdnessWe have a weird rise in incoming IPv6 traffic for 12 hours a day between 1900 and 0700 UTC. It’s an almost sudden rise so it doesn’t seem to be due to a certain geographical region waking up. According to tcpdump, it is directed at port 443 but nothing out of the ordinary turns up in the nginx logs. There is no discernable rise in outgoing traffic so it doesn’t seem like a scraper that activates at certain times of the day. Here are some graphs demonstrating the traffic:
Paris tripIn April 2018 I travelled to Paris to take part in the marathon. I went with my uncle and 2 family friends who are in my triathlon group. Three of us were running, with the fourth recovering from knee surgery. I will write a specific post on the marathon soon. For this post, I would just like to share my experience of Paris.
Scuba divingIn 2014 I went on holiday to Fuerteventura with my then girlfriend. The start of the holiday wasn’t great as we were put in a different hotel to that which we had paid for. The food was unbelievably bad, and we had noisy neighbours arguing until the early hours of the morning.
Backing up my filesI think I am pretty proactive when it comes to backing up my personal data and I think that is how everyone should be. My mindset is “what if I completely lost my computer right now?”. What would be the worst things to lose? What am I being lax about? I think it is too easy for your hard drive to suddenly die or to lose your laptop. I would just like to share my current strategy.
How I started programmingI learned to program in June 2011, at the age of 15, during my summer holidays. I had just finished my penultimate year of high school and wanted to learn something to do with my interest of computers. I think that was also when I decided I wanted to study Computer Science at university. I played Minecraft a lot, and ran a small server with a couple of friends. Somehow I discovered Bukkit and all the plugins it supported which could customise the gameplay. I saw these incredibly complex tools that people were creating and wanted to make my own.
My Nexus 5I have had my Nexus 5 since December 2013, two months after it was first released, and I still love it. I have no intention of replacing it until it is completely dead.
Server monitoringThis post is about how we monitor Nomad List, Remote OK and others. Over the years, Pieter and I have built up a set of tools to run and inform us when the sites may be experiencing an issue.
Experimenting with no duvetOver the last 2 months I have been experimenting with getting rid of my duvet for sleeping. I’d been thinking about it for a while and decided to trial sleeping with a blanket. A few days ago I deemed the experiment a success and got rid of my duvet completely.
Tips for waking up earlyI’d like to make it clear that this isn’t a guide on how to sleep 2 hours a day. Sleep is very important so make sure your body gets the hours it needs.
How to fuzz a rust programManish Goregaokar wrote a brilliant blog post about cargo-fuzz and its use in fuzzing Rust programs.
Levi Ben Gershon theoremThe following theorem is taken from Levi Ben Gershon’s manuscript Maaseh Hoshev (The Art of Calculation), 1321.
StreASMAs part of our project for Programming Language Concepts at the University of Southampton, Jet Holt and I made StreASM, a stream processing language based upon Assembly.
Passive network topology scanningBack in April 2017 I was assigned a networking coursework for my Computer Science degree. It required us to choose a topic in computer networking that interested us and conduct a research experiment.
Cooperative coevolution typoWhilst re-implementing the paper “A Cooperative Coevolutionary Approach to Function Optimization” by Mitchell Potter and Kenneth De Jong for a Computer Science assignment, I noticed a typo in one of the benchmark functions.
Profiling PHP appsPart of my job at Nomad List, Remote OK et al. is to keep the sites fast and responsive, even from an influx of traffic to Pieter’s latest app. Launches are usually kept controlled by exporting the pages to static HTML files and serving using Nginx. However, in the best interest of server CPU load, processing time and futureproofing, I’ve recently begun profiling our PHP code and optimising out any issues.
|Aug '18||Team Chapter Ultra 52|
|Apr '18||Paris Marathon|
|Oct '17||SUTRI Freshers' Aquathlon|
|Sep '17||Velo Birmingham|
|Sep '17||IRONMAN Weymouth 70.3|
|Aug '17||Badgers' Atherstone 10k|
|Aug '17||Midnight Man 70.3|
|May '17||Lichfield Half Marathon|
|Apr '17||Southampton Half Marathon|
|Mar '17||Fradley 10k|