August 30, 2017

Leaving Facebook is easy. Here's how.

Facebook is awful.

  1. It chews up too much time.
  2. It’s watching you on every website you visit, all the time. It’s basically a massive surveillance operation. How does this work? In short, using those innocent looking 👍 buttons that...
Read More

February 27, 2017

Blankz - a Mad-Libs™ like game that you can play online

For my newest side-project I wanted to use Google App engine. I find PaaS systems to be very alluring for two reasons. Firstly, the fact that (in theory) the system requires zero maintenance or system administration. Secondly, they scale seamlessly....

Read More

January 14, 2017

Getting hit by an app store penalty

I recently experienced what I can only assume is a penalty on the Google Play app store. One of my apps has around 250 downloads per day. These are purely organic installs and I have not run any campaigns...

Read More

October 11, 2016

Creating an online scoreboard with Python Flask.

I recently wanted to learn something new and decided to make a webapp using Python Flask. Webapps are often under-appreciated next to their native cousins, especially when some kind of user collaboration is required. Not only are webapps an order...

Read More

May 9, 2016

Replacing Launchrock with Flask

'Lovely landing page'

I’ve being playing around with Python Flask recently and my first project is a self-hosted replacement for Launchrock. All it does is throw up a landing page and a signup form. Get the...

Read More

May 2, 2016

Z-shell in Ubuntu 16.04

'Beautiful Z-Shell'

All the cool kids are using z-shell instead of bash these days. I won’t go into details here, other than saying:

  • zsh has much better tab completion behavior than bash
  • it makes working...
Read More

March 1, 2016

A tool to present user stories

The legendary computer scientist Donald E. Knuth was in the middle of writing a series of books, when he realised that the typesetting systems of the day weren’t to his satisfaction. So he did what any tinkerer in his...

Read More

February 26, 2016

Ubuntu development has stagnated

Last year I ranted about the state of Ubuntu and claimed that it had a general smell of decay and abandonment. This time I decided to try and find some concrete evidence to back up my claim and wondered...

Read More

February 21, 2016

How to test if your adblocker is working

So you’ve installed an adblocker (or a “content” blocker if you’re on iOS). But how do your actually know that it works?

I created a very simple page that will test your adblocker: Adblock detector. The code is available...

Read More

March 23, 2015

Android In App Billing Howto

Here’s how I implemented in App Billing in my app(s).

My goal was to implement a donate feature for my wallpaper apps so I set about reading the documentation on the Google developer pages.

Events took a familiar...

Read More

March 10, 2015

Using Python to find domains; finding out if a domain is registered

I made a Python script to create domain names and then check if they are free. It uses a python whois module.

Here’s what you need to do.

1. Checkout the code

This bit is quite easy

Read More


February 8, 2015

Hello World

This is my first post with Github Pages and Jekyll and I’m just futzing around.

I will import some earlier posts from another blog, so it will look like this isn’t the first, but it is, believe me.

Here’s an...

Read More

June 22, 2014

Chromedriver error on Ubuntu

I was seeing the following error when running Chromedriver on Ubuntu

/usr/lib/chromium-browser/chromedriver: error while loading shared libraries: libgfx.so: cannot open shared object file: No such file or directory 

This can be simply fixed by placing the...

Read More

November 26, 2013

How to take daily automatic screenshots in Ubuntu / Linux using the command line

For some reason you may want to automatically take screenshots every day. Maybe you want to spy on someone, maybe you want to keep a visual diary of what you’re doing on your computer, maybe you just really really love...

Read More

November 9, 2013

Leverage browser caching in Google App Engine

I’m working on a project that allows friends to work out who owes cash to whom after a joint event: it’s called Kittysplit and is built in Java / Google App Engine.

Running the site through Google’s wonderful page...

Read More