Latest Blog Posts

Presenting half finished projects for feedback

In my job, I tend to work as a sole developer, and quite often in a project there comes a stage where I need feedback on a specific feature, before the rest of the project is in a presentable state. When working on something tricky I will disable...

How to make responsive Likert scales in CSS (like Qualtrics)

At work I’ve been updating many forms to be responsive and work on mobile. This is not as exciting as it sounds - but like any boring but necessary task, there is fun to be had searching for an optimal solution. Psychology is just full o...

How to block pinterest in Google searches without a plugin in Chrome

TLDR: Add custom search terms to your search engine setting in the browser

It’s a running bad joke how annoying pinterest is in search results for the average non-pinterest user. Every now and then I look at pinterest for ideas,...

Home garden office - Self build - Part 1

We are having a baby soon! That and the likelihood that I will continue to need a room to work from home, we decided that it was worth looking at getting a garden office, if it can be done within a budget. Both pre-made off-the-shelf buildings, ...

My new semi-static website and blog

Inspired by this and this (both sourced from Adactio’s website who I sometimes play irish ...

Too much wine during lockdown?

I think he's trying to tell me I am drinking a little too much. Well, it's Christmas and it's just been 2020, what does he expect!

My white and ginger cat with tail around wine glass

...

Live updates during PHP dev - without React or Watchify

Recently I decided to go back to basics and rewrite my site and blog in as minimal format as possible. No libraries or frameworks, no database, all hand coded, fast loading and clean etc. However, one of the things I really missed from developing ...

Embedding a Qualtrics survey in another site

Qualtrics is used widely throughout academia to administer surveys and gather data. It is easy to set up surveys, which automatically look good and the data is stored reliably and is easily exportable.  And ...

Automatic longitudinal survey distribution with PHP, email and Qualtrics

With the outbreak of Covid-19, researchers at Sussex decided to move swiftly to measure the psychological impact of lockdown over the course of the pandemic. We had to move quickly using the tools we had: But we had a problem, the surveys were on ...

Modelling Personal Finance in Python

This is for people who want to understand how to make choices in personal finance and know how to program.  Normally, it's easy enough to use rules of thumb, and to just follow advice / well trodden paths in finance - but if you're inclined you c...

Building a project for iOS or OSX with Armadillo in Xcode

Armadillo is a superb linear algebra library for C++, that makes doing things which are easy in MATLAB, almost as easy in C++ . I recently had to port a fairly complex curve fitting algorithm from MATLAB ...

Reading CVPixelBuffer in Objective-C

I wanted to inspect individual pixels in a CVPixelBuffer, which is the format provided by default on iOS's camera callbacks - but I couldn't find a recipe online, so after figuring it out, here it is. You can adjust this code to iterate through t...

Python in SPSS

Using Python in SPSS is great if you want to do any complex calculations, without having to leave the SPSS environment. Python is much more flexible than SPSS syntax, and it's actually very easy to use. It is especially useful when you are colla...

Draggable Piechart JS class

For a recent project I made a draggable pie chart. I thought this might be useful, so I have made it open source for others to use. There are many off the shelf libraries for doing charts, but only the extremely heavyweight ones are c...

Random non-overlapping circles in MATLAB

For a recent project I had to generate a stimulus set consisting of random non-overlapping circles in MATLAB.  My solution was to keep a list of the outside of a gradually increasing outer ring of circles, and add new ones, expanding the ring.  ...

A Simple Introduction to Core Audio

I had to learn Core Audio for a project recently, which despite being notoriously difficult, has been great fun. Starting out, I would have killed for a basic example audio player that didn’t have any unnecessary bells and whistles to ju...