Technology
- 0001-01-01: Chat rooms vs Twitter: how I communicate now
- 2016-04-01: Wiring my web
- 2016-05-07: Fairphone 2: initial thoughts on the original ethical smartphone
- 2016-08-16: What happened to the original Software Carpentry?
- 2016-08-19: Software Carpentry: SC Build; or making a better make
- 2016-08-26: Software Carpentry: SC Config; write once, compile anywhere
- 2016-09-12: Software Carpentry: SC Track; hunt those bugs!
- 2016-09-15: Tools for collaborative markdown editing
- 2016-10-06: Software Carpentry: SC Test; does your software do what you meant?
- 2016-10-27: Implementing Yesterbox in emacs with mu4e
- 2017-03-27: Introducing PyRefine: OpenRefine meets Python
- 2017-11-29: Advent of Code 2017: introduction
- 2017-12-01: Inverse Captcha — Coconut — #adventofcode Day 1
- 2017-12-02: Corruption Checksum — Python — #adventofcode Day 2
- 2017-12-05: Spiral Memory — Go — #adventofcode Day 3
- 2017-12-05: High Entropy Passphrases — Python — #adventofcode Day 4
- 2017-12-06: A Maze of Twisty Trampolines — C++ — #adventofcode Day 5
- 2017-12-09: Memory Reallocation — Python — #adventofcode Day 6
- 2017-12-10: Recursive Circus — Ruby — #adventofcode Day 7
- 2017-12-10: I Heard You Like Registers — Python — #adventofcode Day 8
- 2017-12-10: Stream Processing — Haskell — #adventofcode Day 9
- 2017-12-10: Knot Hash — Haskell — #adventofcode Day 10
- 2017-12-11: Hex Ed — Python — #adventofcode Day 11
- 2017-12-12: Digital Plumber — Python — #adventofcode Day 12
- 2017-12-15: Packet Scanners — Haskell — #adventofcode Day 13
- 2017-12-15: Disk Defragmentation — Haskell — #adventofcode Day 14
- 2017-12-15: Dueling Generators — Rust — #adventofcode Day 15
- 2017-12-16: Permutation Promenade — Julia — #adventofcode Day 16
- 2017-12-17: Spinlock — Rust/Python — #adventofcode Day 17
- 2017-12-24: Duet — Haskell — #adventofcode Day 18
- 2017-12-24: A Series of Tubes — Rust — #adventofcode Day 19
- 2017-12-24: Particle Swarm — Python — #adventofcode Day 20
- 2017-12-24: Fractal Art — Python — #adventofcode Day 21
- 2017-12-24: Sporifica Virus — Rust — #adventofcode Day 22
- 2017-12-24: Coprocessor Conflagration — Haskell — #adventofcode Day 23
- 2017-12-24: Electromagnetic Moat — Rust — #adventofcode Day 24
- 2018-01-02: The Halting Problem — Python — #adventofcode Day 25
- 2018-01-02: Reflections on #aoc2017
- 2019-03-14: Using Pipfile in Binder
- 2019-11-25: Bridging Carpentries Slack channels to Matrix
- 2021-01-25: Training a model to recognise my own handwriting
- 2021-02-06: Remarkable blogging
- 2021-03-12: Matrix self-hosting
- 2021-04-05: Collaborations Workshop 2021: talks & panel session
- 2021-04-07: Collaborations Workshop 2021: collaborative ideas & hackday
- 2023-08-29: Training my handwriting model: an update