07 May 2023... The following, including the references, was generated by ChatGPT during a conversation I had with it about management. I started with a simple prompt and refined it until I was happy with the output. I then asked it to provide references for its response. It is not intended to be... Read more »
11 Feb 2023... In this series of posts I am describing the infrastructure that hosts all of my websites and development projects. Part 1: Hosting and Configuration Part 2: Nomad Configuration Part 3: Nomad Jobs Part 4: Continuous Delivery Part 5: Eliminating the Downtime Summary In the Outstanding Issues section of part 4... Read more »
04 Jan 2023... In this series of posts I am describing the infrastructure that hosts all of my websites and development projects. Part 1: Hosting and Configuration Part 2: Nomad Configuration Part 3: Nomad Jobs Part 4: Continuous Delivery Part 5: Eliminating the Downtime Summary All services exist in their own GitHub repository.... Read more »
03 Jan 2023... In this series of posts I am describing the infrastructure that hosts all of my websites and development projects. Part 1: Hosting and Configuration Part 2: Nomad Configuration Part 3: Nomad Jobs Part 4: Continuous Delivery Part 5: Eliminating the Downtime Summary All services I currently run are deployed as... Read more »
02 Jan 2023... In this series of posts I am describing the infrastructure that hosts all of my websites and development projects. Part 1: Hosting and Configuration Part 2: Nomad Configuration Part 3: Nomad Jobs Part 4: Continuous Delivery Part 5: Eliminating the Downtime Summary Each server runs Nomad in both client and... Read more »
01 Jan 2023... In this series of posts I will describe the infrastructure that hosts all of my websites and development projects. Part 1: Hosting and Configuration Part 2: Nomad Configuration Part 3: Nomad Jobs Part 4: Continuous Delivery Part 5: Eliminating the Downtime Summary Hosted at Scaleway. 3 cheap development-grade virtual servers.... Read more »
03 Dec 2012... I own nearly 100 domain names, which is a pretty modest number against some people and organisations I know. Most of them are currently registered with Gandi.net and I’ve always found their service to be good value for money and that’s still true today. Most of the DNS for those... Read more »
11 Nov 2012... HTTP authentication is the easiest way to make a page or area of a website secure. It’s very easy to accomplish with pure PHP, so no web server configuration is required making it a lot more portable. This function implements a very simple HTTP Basic Auth authentication system. Simply call... Read more »
12 Nov 2011... Twitter sends notifications of new followers and direct messages by email. While you can use the API to keep track of those things it wastes hits and it’s incredibly inefficient especially for accounts with minimal activity. I run several Twitter-based services but they all share the same email address. This... Read more »
16 Aug 2011... When I get bored while working I choose something from a list of things I want to have a go at someday. Some things are “read this blog post”, or “learn about this technology”, but most are along the lines of “make this”. Today I picked a “make this” item…... Read more »
12 Apr 2011... A common logic pattern that’s seen when dealing with GET and POST parameters in PHP is to check whether the array element exists, then set another variable to that or a default. It usually looks something like this… $var = (isset($_GET['var']) ? $_GET['var']) : ''); If you don’t develop with... Read more »
13 Mar 2011... A couple of days ago, Ryan Sarver of Twitter sent an email to the API developers mailing list notifying us of changes to their terms of service. As per usual the community have exaggerated the implications of these changes to the point where it’s now pure comedy. As has happened... Read more »
24 Jan 2011... My thoughts on ISPs and how they’re whiney little kids who like to throw their toys out of the pram have been previously documented on this site. Apparently the advertising industry is set to get involved, and, according to NMA, is poised to ask the public for their thoughts on... Read more »
19 Feb 2010... The other day I was continuing my long-term quest to sort through all the flotsam and jetsam of accumulated crap on my hard drive when I came across the following video (click through if you don’t see the video below). Recorded in April 2009, it shows the first version of... Read more »
29 May 2009... One of the pillars of a scalable website is ensuring that only activity which is required to build a page should be performed during the processing of a page request. Activities that fall under this category commonly include sending emails, recording statistics and general housekeeping such as removing temporary files.... Read more »
31 Jan 2009... A couple of days ago I released a new TwitApps tool called Follows. I know I haven’t talked about TwitApps on this blog yet – that post is coming – but if you follow me on Twitter you should be aware of it. The Follows service monitors your followers on... Read more »
24 Jan 2009... Twitter promised OAuth support a l-o-o-ong time ago, and it would appear to finally be here. Alex Payne sent a “Call for OAuth beta participants” to the developers list yesterday and had an overwhelming response. This predictably triggered a deluge of tweets and blog posts, but the one that caught... Read more »
17 Dec 2008... My latest project went live on Monday this week. It’s another Twitter-based toy along the same lines as hotornot but it uses your Twitter account and profile picture. Since launch it’s proved very successful and has spread quickly due to its viral nature. The site is called Twitorfit and was... Read more »
28 Oct 2008... Several templating systems exist for PHP, but since PHP was originally created as a templating language I’ve never understood why more developers don’t use pure PHP in their view layer. The following snippet is a small function that facilitates precisely that. The only setup required is to simply define TPL_DIR... Read more »
23 Oct 2008... Really short snippet today – a password generator. Not much to say about this one since it’s pretty simple. Pass it the length of password you want and optionally a string of valid characters it can use and it’ll give you a random string back. function GeneratePassword($len, $allowedchars = false)... Read more »
20 Oct 2008... Today’s snippet describes the singleton pattern. The singleton pattern is a method of creating a class that statically maintains an instance of itself and ensures that no other instances can be created. This is useful for classes that implement app-wide services such as logging, DB access and other shared resources.... Read more »
17 Oct 2008... Pretty boring snippet today, but I find it immensely useful. My time class provides representations of periods from OneMinute to OneYear. It only has one method which will calculate an absolute time by adding a given time period to the current time. You can optionally provide a format intended for... Read more »
16 Oct 2008... Today’s snippet is a complete class for normalising cookie usage. In addition to providing methods to set and get cookies you can also check to see if a cookie exists, is empty and delete them without needing to concern yourself with more detail than necessary. Features include… Cookies Set during... Read more »
15 Oct 2008... This is the first of what I hope will be a series of posts showing snippets of code from my personal library. My intention is to highlight useful techniques I’ve developed or picked up over the years. Comments, questions, suggestions and requests are welcomed. This first snippet is a simple... Read more »
26 Jul 2008... Ok, so the title is a little misleading, but hopefully only until I explain what I mean. The first session refers to PHP sessions, and the second refers to the concept of sessions. Maybe it needs a little more explanation than that. Do what? There aren’t many PHP applications (or... Read more »
18 Jun 2008... TLDR: If you’re using PHP you want PHPMailer. If you’re using something else there’s probably an equivalent library (Google is your friend). However, regardless of how you do it you should always consider the impact of your email activities on your users. Unwanted email is one of the biggest problems... Read more »
13 Apr 2008... While catching up on Twitter this morning I came across a blog post by David Cushman on the simplicity of riding a bicycle compared to using ebay or iTunes. I kinda see what he’s saying, but as he points out I think it has more to do with what people... Read more »
09 Apr 2008... This is really daft. It’s been widely covered recently that the BBC iPlayer service is taking off in a big way which is great news for the future of TV. Unfortunately some ISPs are throwing their toys out of the pram and complaining that the increased bandwidth usage is costing... Read more »
11 Nov 2007... It is with great regret that I must inform you that SharedServer.net will cease trading at the end of this year. This has been a difficult decision to make, but for various reasons it is not practical to continue. Me, In An Email To My Customers, Early November 2007 I... Read more »
10 Oct 2007... One thought keeps spinning round my head and has been for a while now. There are too many social networks for global participation to be practical. The core problem is that each site has their own list of your friends. This list is usually referred to as the social map... Read more »
09 Oct 2007... Amazon have announced an SLA for their S3 service which is, you know, good news. But like every other company on the planet they place responsibility for monitoring whether they meet it on the customer. By definition an SLA is a company committing to a level of service. If they... Read more »