Updating Shift Touchtyping

I was pointed to Steve Losh’s blog post about helping improve touch typing. Steve used Karabiner Elements (then KeyRemap4MacBook) to disable the incorrect shift key combinations (i.e. for capital “P” the left shift must be used). His example code is now out of date, and the equivalent code must be used.


Elegance is a tough concept to define. Each person may think different things are elegant.

Rust in 2020

Wow what a year for Rust. 2019 has flown by (in real life as well), with so many developments since the beginning of 2019. The 2018 edition has brought so many quality of life improvements to day to day Rust development, particularly the more intuitive module system, NLL, and proc-macros. Rust 2020 has a lot to live up to! Well… My thoughts for Rust 2020 are perhaps a little less aimed at new features I want to see than some other roadmaps, but more towards continuing the quality of life improvements, and expanding the ecosystem.

Jupyter client library

TL;DR I have been thinking about alternative frontends to the Jupyter notebook. The first step is to abstract communications with Jupyter kernels. I have started writing one of these. Project repository I am a huge fan of the Jupyter notebook environment. It is a fantastic way to explore a new data analysis approach, and keep results together with the implementation and explanation. I wanted to understand how the Jupyter notebook/lab frontend interacts with the Kernel backends, and as such have started writing a client library.