A decade gone, more to come

Ten years ago today the very first release of WordPress was released by Matt and Mike.  My WordPress story starts almost a year later with me searching for something to use for my first personal blog, finding WordPress and I falling in love straight away. The simplicity of the 5 minute install and the freedom to do what I wanted had me hooked.

Over the past ~9 years I have grown with WordPress contributing back in a number of different ways. My addiction to contribution started with the codex which soon led me to trac and sharing patches which fixed bug I found or other people reported. A while later I had the privilege of being invited to join the core team as a lead developer. A few years later this addiction even helped land me my dream job.

Around 1300 commits in, today I’m still contributing and looking forward to the next ten years and what surprises and adventures will be in store for us.

Setting up an Airport Express on Mountain Lion

The old style Airport Expresses are amazing and have been around a long time, they are great for extending your home network and also great for setting up impromptu networks when travelling.

However, as of Mountain Lion the Airport Utility (which is now pretty dumbed down) doesn’t support them which is kind of lame – I guess when the devices once had an expected life of 18 months that isn’t much of a surprise.

There is however still a solution, AirPort Utility 5.6 for Mac OS X Lion, which of course you can’t install on Mountain Lion until you find these excellent instructions.

From frustrated to happy in the space of 5 minutes, now I can get this Tiger running Mac Mini from 2006 back online alongside the new Mac Book Air that replaces it.

Now I just need to see if I can set the second one up for my in-laws too so they can get iPlayer on the TV 🙂

Finding “popular” IP addresses in access_log files

Every now and then I find myself needing to quickly analyse a set of access_log files to see who the most common visitors are so that I can decide if there are any abusers I should be blocking or poorly configured services running somewhere that I can try to get fixed.  I can never remember the quickest was to do this so I decided to write down the “one liner” that I cobbled together this time so I can hopefully find it next time and not have to reinvent the wheel again.

Here is the one-liner I used to find the top IPs this time:


sed -e 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*$/\1/' -e t -e d access.log | sort | uniq -c | egrep -v "\s([0-9]|[0-9][0-9]|[0-9][0-9][0-9]) "

Splitting this out we have:

  1. A call to <code>sed</code> to extract all the IP Addresses from the access_log file
  2. A call to <code>sort</code> to sort the list of IPs
  3. A call to <code>uniq</code> to create a list of unique IPs with counts
  4. A call to egrep to filter the unique list down to IPs we at least 1000 appearances – this will need tuning depending on the volume of requests / time period the file covers.

Scaling WordPress @ #wpldn

Last night I did a short presentation on Scaling WordPress using WordPress.com as an example giving an overview of the solutions we use for different scaling issues as well as highlighting some solutions that you can try out on smaller sites: