Recently Updated Pages
NeoVim
NeoVim is a new super configurable version of the VIM editor. I've been learning to configure and...
Hugo Static Site Generation
I use Hugo to maintain most of my websites. Extended Edition Hugo has an extended version which i...
Firefox on Ubuntu 22.04 Non Snap
In the latest Ubuntu they made Firefox a snap instead of just installing via deb. This walkthru t...
Online Reading and Feeds
RSS I use FreshRSS to manage my feeds for me and the associated Android client for on the go. On ...
Security
- The OWASP API Top 10 security measures may be a good place to start when trying to decide what ...
Intro to Microcosm
Warning: This page is very much a work in progress Microcosm is a tiny and lightweight micropub s...
Planning
Move configuration out into yaml file - the mishmash of environment variables is pretty gross Ad...
Being a CTO
Being a CTO is interesting and is probably different in every company. It is also a role that cha...
Handling non-string DAG parameters
You may need to pass a dag parameter to an operator using templates - however, it may be importan...
TriggerDAGRunOperator
You can use wait_for_completion=True and it will detect whether the dag passed or failed. If y...
Installing Airflow Locally
Install Script # Airflow needs a home. `~/airflow` is the default, but you can put it # somewhe...
Angle Brackets (Greater Than, Less Than) show as upside down question and exclaimation marks
This is an issue when <> render incorrectly, it can look very weird. Check your encoding Accord...
Zellij
Zellij is a Golang terminal workspace + multiplexer - its a bit like tmux on steroids Feat...
Comprehensive Impact
Comprehensive Impact, as opposed to Academic Impact is an umbrella term for the impact of scienti...
Tools and Metrics for Comprehensive Impact
Research Excellence Framework (UK) ResearchFish (UK) ResearchFish is a tool used by many fund...