Blog
- Jun, 2023
- MPI from R - Part One - The Basics
- Symbolic differentiation in a few lines of code
- May, 2023
- Conditionally running Ingest Pipelines with Filebeat, Docker and Elastic
- Mar, 2023
- Frictionless Data Package Validation in R
- Oct, 2022
- Continuous Delivery with Buildkite
- Jul, 2021
- R Markdown Internationalisation
- Jun, 2021
- Orderly 1.3.0 released to CRAN
- Debugging memory errors with valgrind and gdb
- Mar, 2021
- Creating project templates using Cookiecutter
- Feb, 2021
- Aggregating logs from services deployed with Docker
- Aug, 2020
- Sheffield/NVIDIA GPU hackathon
- Jul, 2020
- A warning about warning()
- Shades of meaning: visualising geographical data with colour in a data-driven web application
- Apr, 2020
- We're hiring: Full-stack web developer
- Mar, 2020
- Gotta catch 'em all
- cyphr 1.1.0
- Feb, 2020
- Front-end Javascript Frameworks - A Beginner's Guide
- RSlondonSE 2020
- Jan, 2020
- Handling long arrays performantly in Vue.js
- Debugging and Fixing CRAN's 'Additional Checks' errors
- My most used keyboard shortcuts
- Dec, 2019
- A custom directive for translations in Vue.js
- Nov, 2019
- Experiments in transforming Excel into R
- Oct, 2019
- orderly 1.0.1 released to CRAN
- gotchaR - Bumps in the road for the learneR driver.
- Sep, 2019
- All carrot, no stick - virtuous circles and useful tools
- Aug, 2019
- Querying for foreign key constraints
- Deferring errors with R
- Jul, 2019
- We're hiring: R/C++/Malaria Developer
- Jun, 2019
- jsonvalidate 1.1.0
- jQuery TreeTables 1.1.1
- May, 2019
- dde 1.0.0
- vaultr 1.0.2
- Debugging at the edge of reason
- Apr, 2019
- Integrating YouTrack and GitHub workflows
- cinterpolate 1.0.0
- odin 0.2.0
- Metrics at Imperial*