Posts

2021
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. It’s no wonder then that CI is often associated with Test Driven Development (TDD), which mandates that you write your tests first, working backwards to the write the minimal code that should pass each test.
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. The armr project aims to do this with parallel processing and Rstudio server docker images running on the raspberry pi but this is a work in progress currently, chiefly due to having to build Rstudio server from source.
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 made a custom split keyboard (based on the lily58) and also tackled an ortholinear keyboard called the plaid, made using through-hole components.
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. In order to do this you will need jupyter and nbconvert packages installed.
2020
Earlier in the year I wrote about using systemd in the context of setting up a service for temperature logging and visualisation on a Raspberry Pi. Whilst the project has been stable for a long time, I’m now releasing it publically. Here it is. Key features include:
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. It does this by ensuring values for all variables are as uncorrelated and widely varying as possible (over the range of permitted values).