High dimensional space is weird and counter intuitive, and the higher the number of dimensions the weirder it gets.

## Math Notes: The Cosine Rule and Dot Product

This is a generalisation of Pythagoras’ theorem to apply to all triangles rather than just right angled ones. The cosine rule reduces to Pythagoras’ Theorem as well as providing the mathematical basis behind the usefulness of the dot product for establishing the extent to which two vectors are going in the same direction.

## Math Notes: Euclidean Distance

Euclidean Distance is the ‘ordinary’ straight line distance between two points in Euclidean Space. It can be seen in action as the frustrating difference in distance between how far away something is (the straight line distance) and how far you have to go to get there (the rather disappointingly named distance travelled).

## Machine Learning Notes: K-NN

k-Nearest Neighbours is probably the simplest of the classification techniques, it works by looping through the training dataset, checking each point to see how close it is to the sample you are trying to classify. Once it’s gone through all of them it returns a classification based on an arbitrary number of points (k) so if k is 1 it returns the class of the nearest point to the one you’re trying to classify, for values of k greater than 1 however it returns the class that the majority of the points belong to, so if you have two points from class a and one from class b it will assign the new point to class a.

## What Do You Mean A Comma Is An Illegal Format String Specifier?

Learning Java at university: life lessons. Sometimes it’s the silly things that have you stuck for longer than you’d like to admit.

## Welcome Week: Module Choices, Ice Breakers And Imposter Syndrome

My first week at university was somewhat different to the usual structure. I found myself reflecting on why I’m doing this and focusing myself very much on what I want to get out of it and how to get there.

## Super Simple NGINX Security

It’s super simple to put your site on lockdown using http basic authorisation and nginx. I mostly use this to allow clients to look at sites “live” without having the general public be able to see them until they’ve been signed off.

## Running wxPython Inside a Python3 VirtualEnv

wxPython is notoriously difficult to get running inside a VirtualEnv, where instructions exist they focus on Python2 and tend to be (or at least appear) long and complicated. After a

**lot**of fighting this is the simplest solution I came up with.