Switching between multiple ssh keys for git

Problem Recently my company has switched code repositories, from Gitlab to GitHub. I already have a personal GitHub account so I find myself in a position where I have two GitHub accounts.

Extract features from CAD documents Part 2: Using ezdxf

In this second part of the series of posts on extracting objects from a CAD document, I’ll go through the process of using the ezdxf package to implement the extraction strategy discussed in part one.

Extract features from CAD documents Part 1: A primer

This is the first part of a series of posts describing my experience of extracting objects from a CAD document. Motivation Recently at work a project came up that involved the optimisation of building occupancy during the refit of a 16 floor central London office block.

Building a CI pipeline for R packages in gitlab

Continuous Integration (CI) is not a tool but a practice of continually merging in new behaviour/features into a released product. To facilitate this practice without exposing end users to unstable behaviour and bugs, testing needs to be standardised and automated.

Using Rstudio Server with docker

It’s taking a long time to run my genetic algorithm optimisation models recently. So much so that I’ve been looking at offloading processes to other computers lying idle on the network.

How to burn the Plaid keyboard bootloader using Arduino Nano

About six months ago I was bitten by the mechanical keyboard bug and made a numpad (a yampad to be precise). Too much time and money later, I have modified a pcb to make a custom split keyboard and also tackled an ortholinear keyboard called the plaid, made using through-hole components.

How to convert Jupyter notebooks to python script

Jupyter notebooks are great for experimentation, reporting and sharing. In a project there are often times when you need to transition from this activity to production ready code. The easiest first step is to convert your notebook to a script.

Latin Hypercube Sampling

What is LHS? Latin hypercube sampling aims to bring the best of both worlds: the unbiased random sampling of monte carlo simulation; and the even coverage of a grid search over the decision space.

Reporting with Rmarkdown

Rmarkdown was a revelation to me when I was first introduced to it in SEAMS (now Arcadis Gen). I’d used Jupyter notebooks before for Python and loved the live lab notebook feel of them.

Configuring resilient programs with systemd

Ever since a week before lockdown in mid-March, I’ve been holed up in my conservatory working from home. The wild swings in temperature have provided ample motivation to build a temperature probe and live dashboard to track patterns, open windows in good time or cope with the lead time that my pitiful electric heater requires.