Downtime was down for a day or two because I’d started but not enabled the DHCPCD service so enp0s3 wasn’t getting an IP on reboot – and then I forgot to remove a test ‘index.html’ in the server root.

While this was why it was down, the reason it stayed down is that I’m trying to finish my PhD at the moment while also working full time – so as you might imagine, this hobbyist website is one of the last fires to put out when everything is on fire.

Normal service (of old content) is now resumed.

On the upside, my new research paper “SoniFight: Software to provide additional sonification cues to video games for visually impaired players.” (DOI: 10.1007/s40869-018-0059-6) should be published soon in The Computer Games Journal special issue on accessibility.

If you’d like to know more then please feel free to hit up the SoniFight Github repo.

How To: Compress web page data transfer with mod_deflate and mod_headers

Since I rebuilt my VPS the other day there a number of tweaks and changes I need to make which can speed up the website – one of the easiest ones with the biggest effect on pageload time is to have apache serve compressed versions of pages to users. Here’s how to do it, and test that it’s working.

Enabling mod_deflate and mod_headers

Chances are good that you already have mod_deflate and mod_header on your server (they typically come with the apache install) – so all you need to do is enable them. To do so, open your main apache config (for example, on mine it’s /etc/httpd/conf/httpd.conf and uncomment the LoadModule lines for each module, so that they end up like this:

LoadModule deflate_module modules/
LoadModule headers_module modules/

With that done, you can head down to the bottom of the config file and add the following section to enable compression of all html, css, js, xml and such.

<IfModule mod_deflate.c>
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

Restarting apache and testing it out

With those changes made, save the file, restart apache (for example, via: sudo systemctl restart httpd.service if you’re on a systemd-using machine), and then go to:

Plug in your URL and hit submit, and you should see some good news similar to this:

A page saying that we are successfully serving compressed webpages.

Very nice =D

Many thanks to: for the original article this one is based on.

Stray random quotes plugin refresh fix


Back in the day, I decided to use the stray random quotes plugin to place a random quote at the bottom of each page. It worked, and still does. Only, if you clicked on a quote it didn’t refresh – instead it said ‘Loading…’ and then placed an error in my web server log like this (not that it looked like you could even click on a quote anyway – the mouse cursor didn’t change to the ‘pointy-finger’):

PHP Fatal error:  Call to undefined function get_stray_quotes() in <path>/stray_ajax.php

I’ve known it didn’t work for ages, but not especially cared, and then this morning I’m putting off doing actual work, so I fixed it.

The Fix

The problem was that like many people, I’ve moved the file wp-config.php outside of the web-facing folder, so instead of living in /var/www/ it actually lives in /var/. Stray_random_quotes tells you that if you’ve moved your wp-config.php then you need to provide the modified path in stray_ajax.php itself, right near the top – so do so!

The first two lines of stray_ajax.php should now read:

// If your 'wp-content' directory is not in the default location you have to enter the path to your blog here. Example: '/home/www/public_html/wp'
$changedDir = '/var/';

That should do ‘er – now, stray_ajax.php should be able to call wp-config, which will allow it to call get_stray_quotes().


When monkeying with wp-config, I saw that it was calling wp-settings, but the call was failing because they expect to be in the same folder, only as mentioned – wp-config.php is up a level from wp-settings.php (which holds no credentials), so, to fix this:

– Edit /var/wp-settings.php and right at the bottom, change the path to the wp-config.php file to be:

/** WordPress absolute path to the Wordpress directory. */
if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/www/');   <------ changed this from '/' to '/www/' 
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

How To: Disable the Proofreader in WordPress

I liked the WordPress proofreading service at first, but then it started telling me that basically everything I wrote was wrong, and that I should dumb down every single post to include only words which lifetime readers of the Sunday Sport would understand. So I wanted to disable it – only I couldn’t find the option…

It’s under Users > Your-Profile

WordPress Proofreading Settings

If I’d thought of it as a per-user setting I’d have looked there – and admittedly, it makes sense for it to be a per-user setting.

But damned if I could find it.

One Million Hits – Hot Dang! - one million hits - WordPress Stats summary - Oct 2011
When I relaunched this blog on WordPress from the ashes of its PHP-Nuke incarnation back in April 2009, it was just meant to be a place where I could throw some notes about how to go about doing things, so if I ever need to do them again it’s all documented, and if it helps anyone else out whose in the same predicament then all the better. And you know what? That strategy seems to be working out pretty well! - Google Analytics - Oct 2011 - Google Analytics - Oct 2011
I don’t blog about what I had for dinner, I just post up some notes and how-to’s, along with some pictures and music, and maybe some life related stuff if I think it might be interesting to others, or if I just want to keep a record of what’s going on. And now, 31 months after launch, I’ve reached seven figures worth of hits (not including my own visits) according to WordPress Stats – Woo-Hoo!! Even Google Analytics‘ stats (which I’ve generally found to be lower than the WordPress Stats figures) shows just over a million page views – so maybe I really hit the magic number a couple of days back, but either way I’m absolutely psyched that I’ve managed to get to this point!

As for traffic sources, a large part of that has been driven by StumbleUpon throwing visitors my way, which is something I would never have guessed would happen. When I started up I thought the majority traffic would come from search or links in forums, and I do get a fair amount of that, but the real figures, all the massive spikes you can see below? All from StumbleUpon… blog stats - October 2011. StumbleUpon kicks like a mule...

All this isn’t to say that the 1,000,000 page views means 1,000,000 articles read – I’m sure at least half of it all has been people just clicking through Stumble!/Stumble!/Stumble! – and if you look at the Analytics data top-left you can see some interesting trends such as with higher traffic comes lower Time-on-Site (as a result of stumbling here, and not being interested!) – but at least some of it, maybe 10% to 15%, has been directed search, i.e. people looking for something, and finding it. And that’s still a large number! Even skipping over the outliers you can see a definite upward trend of views against time…

So where next? Onward and upward, I guess! I’ll try to post interesting, useful things – and I’ll see if anyone reads them! There’s a whole heap of JSP/Servlet coding to be done over the coming months, as well as trying to put the Stanford AI knowledge to use, and no doubt I’ll be adding a whole heap of random that I couldn’t possibly predict right now. So yeah… it’s all very build it and they will come ;)

To wrap up, I’d just like to give my thanks to everyone who knows and supports me, whether family or friends, and to anyone who’s found or learnt or enjoyed something I’ve put up on this site: This exists for you, whoever and wherever you are.

And finally, the only song I could possibly place in a post like this…

More hits than playing blackjack with a deck of twos! Love it! ;) [ lyrics ]