Tags
Yep, a tag cloud.
1Password
Alexa
Alfred
APT
Asana
Aurora
AWS
Bash
Bear
Browsers
Chess
Chrome
CircleCI
Command-line tools
Ctags
Debugging
Discourse
Django
Docker
Documentation
FactoryBoy
fd
Flake8
G-Suite
Git
Github
Gotchas
Helm
Home networking
Hugo
iOS
iTerm2
Javascript
Jekyll
JQ
JSON
Kubernetes
Linux
Loggly
MacOS
Markdown
mypy
Open-source
OpenDNS
OpenSSH
PostgreSQL
Productivity
Pytest
Python
Recruitment
regex
ripgrep
Ruby
Rust
SASS
Security
Sentinel
Sentry
Slack
SSH
Standards
systemd
Terminology
Terraform
Testing
Timezones
Twitter
Ubuntu
Unix
Vale
Vim
Virgin Media
Websites
YAML
And here's all posts broken down by tag:
1Password
- You can easily share 1Password items via a link on
- The keyboard shortcut for grabbing a MFA code in 1PW on
Alexa
Alfred
- You can display the typed text in Alfred in a huge typeface on
- How to configure Alfred’s Bear workflow to open notes in the main window on
- About Alfred’s clipboard history feature on
- About Alfred’s snippet collections on
APT
Asana
Aurora
AWS
- That AWS Aurora clusters have two types of storage on
-
How to use
aws-mfa-v2
to avoid entering so many MFA tokens on - You can have SSH sessions via AWS Session Manager on
- How to use AWS profiles that require MFA on
- AWS ASGs have an ‘instance refresh’ feature on
- There’s a Chrome extension for switching AWS IAM roles on
- AWS Availability Zones have counter-intuitive IDs on
-
Where authentication for the
ubuntu
user on a EC2 instance is defined on
Bash
- How to join an array in Bash on
-
About Bash’s
$SECONDS
shell variable on -
About Ubuntu’s
alert
Bash alias on -
About
readonly
Bash variables on -
About
shellcheck
on - About Bash’s DEBUG signal on
Bear
Browsers
Chess
Chrome
- About Chrome’s named windows on
- Chrome has a flags page for enabling experimental features on
- You can take screenshots with Chrome DevTools on
- There’s a Chrome extension for switching AWS IAM roles on
CircleCI
Command-line tools
- About delta, a viewer for Git and diff output on
-
How to search for fixed strings with
grep
andripgrep
on -
You can define custom file-type filters in
ripgrep
on -
You can specify the file-type for
bat
on -
About
envsubst
on -
How to set per-project
ripgrep
andfzf
exclude rules on - Exuberant-ctags has been superceded by Universal-ctags on
-
About
column
on -
fd
has an option for searching filepaths on -
How to use
xargs
withprintf
on -
About
pngcrush
on
Ctags
- Universal Ctags can index more things than I realised on
-
How to configure
ctags
to parse Terraform files on
Debugging
Discourse
Django
- You can’t use Django’s generic foreign key field with objects stored in a separate database on
-
About Django’s
setup
method for generic view classes on - Django settings prefixed with an underscore are private on
- Django doesn’t flush caches between tests on
- How Django’s management commands need to be type hinted on
Docker
- Docker for Mac stores all containers and images in a single disk image on
- How to list the mounts of a running Docker container on
- How to enable Docker BuildKit in MacOS Docker Desktop on
- How to run Jekyll in a Docker container on
Documentation
FactoryBoy
fd
Flake8
G-Suite
- Google Groups can be nested on
- GSuite’s “Groups Admin” role can read any group email on
- You can hide night-time hours in Google calendar on
Git
- How to continue a Git rebase and skip editing the commit message on
- How to find the files from a commit that deleted a given pattern on
-
About Git’s
diff.relative
config option on -
About
git merge-base
on - Git aliases that run an external command are run from the repository root on
-
About
git log -G
on -
That
vim-polyglot
conflicts with Hub when creating pull requests on -
About
git-absorb
on -
How to include the date in
git reflog
output on - About delta, a viewer for Git and diff output on
- You can use Git log to view the evolution of a function on
- How to resolve Git rebase conflicts on renamed files on
- How to count lines of code in a Git repo for a given commit on
Github
-
About Github’s
involves:$username
search filter on -
About Github’s
@me
search term on - How to embed markdown content in a Github code block on
Gotchas
Helm
Home networking
Hugo
iOS
iTerm2
Javascript
Jekyll
JQ
-
About
jq
’s--slurp
option on -
You can use
shuf
to take random samples of lines on - AWS Availability Zones have counter-intuitive IDs on
JSON
Kubernetes
Linux
-
About Ubuntu’s
alert
Bash alias on -
systemd sends SIGKILL signals after waiting for
TimeoutStopSec
seconds on - systemd timers can be stopped on
Loggly
MacOS
- How to easily copy annotated screenshots to the clipboard on macOS on
- The names for macOS keyboard meta-characters on
- About Chrome’s named windows on
- iTerm2’s “Cursor boost” feature will cause everything to appear dimmed on
- How to scroll horizontally with a mouse on
- How temporary files are removed on MacOS on
- About the difference between minimising and hiding windows in MacOS on
- The MacOS keybinds for en- and em-dashes on
- About the stationery pad feature in Finder on
- About Quitter on
-
About the MacOS
screencapture
utility on
Markdown
-
How to use
markdownlint
output in Vim’s quickfix list on - How to spell-check markdown repos on CircleCI on
- Vim-markdown has some useful commands on
- How to embed markdown content in a Github code block on
mypy
- How Django’s management commands need to be type hinted on
-
About
mypy
’s unreachable code functionality on -
About
mypy
’sreveal_type
andreveal_locals
functions on -
That
mypy
only type-checks functions that have at least one type annotation on -
A better way of configuring
mypy
on -
How to use type annotations with Python’s
csv
module on
Open-source
OpenDNS
OpenSSH
PostgreSQL
-
About a gotcha with
psycopg2
’s autocommit handling on - The correct sequence of SQL statements for dropping a role on
Productivity
Pytest
- That Pytest’s “keyword expression” filtering supports Python conditionals on
- You can have class-scoped autouse pytest fixtures on
- Pytest doesn’t play nicely with ipdb on
-
You can stack
pytest
’sparametrize
decorators on - You can label parameterized fixtures with pytest on
Python
-
How to inspect and clear Python’s
functools.lru_cache
on -
About Factory Boy’s
SelfAttribute
class on - You can’t use Django’s generic foreign key field with objects stored in a separate database on
-
About Django’s
setup
method for generic view classes on -
How to use
aws-mfa-v2
to avoid entering so many MFA tokens on -
About a gotcha with
psycopg2
’s autocommit handling on -
Python’s
envparse
library has counter-intuitive boolean casting on - Factory boy can be used to build dicts on
- Django settings prefixed with an underscore are private on
- Django doesn’t flush caches between tests on
- How Django’s management commands need to be type hinted on
- File-level flake8 comments ignore all errors on
- That Pytest’s “keyword expression” filtering supports Python conditionals on
-
That FreezeGun doesn’t work with Pytest fixtures (unless you use
pytest-freezegun
) on -
About
mypy
’s unreachable code functionality on -
About
mypy
’sreveal_type
andreveal_locals
functions on -
That
mypy
only type-checks functions that have at least one type annotation on -
Python’s
csv.writer
function defaults to Windows line endings on - You can have class-scoped autouse pytest fixtures on
-
pdbpp
has a useful ‘sticky’ mode on -
To prefer
dateutil
overpytz
on - Pytest doesn’t play nicely with ipdb on
- You can arbitrarily chain Python comparison operations on
-
You can stack
pytest
’sparametrize
decorators on - You can label parameterized fixtures with pytest on
-
A better way of configuring
mypy
on -
datetime.datetime
is a subclass ofdatetime.date
on -
About
pip-licenses
on - Python 3.7 supports postponed evaluation of annotations on
-
How to use type annotations with Python’s
csv
module on
Recruitment
regex
ripgrep
- How to use look-behind regex assertions with ripgrep on
- How to pipe an argument list into Vim on
-
How to search for fixed strings with
grep
andripgrep
on -
You can define custom file-type filters in
ripgrep
on -
How to set per-project
ripgrep
andfzf
exclude rules on -
You can run
:grep
without using parent shell process on
Ruby
Rust
SASS
Security
- Sensitive Terraform Cloud variables are included in Sentinel mocks on
- How to use Bandit with Vim’s quickfix list on
Sentinel
Sentry
Slack
- You can convert a Slack group direct message chat into a private channel on
-
You can change the font in Slack with
/slackfont $font
on
SSH
- How to reset an SSH session on
- You can have SSH sessions via AWS Session Manager on
- How to convert SSH2 public keys to OpenSSH format on
Standards
systemd
-
systemd sends SIGKILL signals after waiting for
TimeoutStopSec
seconds on - systemd timers can be stopped on
Terminology
Terraform
- Sensitive Terraform Cloud variables are included in Sentinel mocks on
- AWS ASGs have an ‘instance refresh’ feature on
- How to conditionally include items in a Terraform list on
- Renaming a Terraform module is dangerous on
Testing
-
About Factory Boy’s
SelfAttribute
class on - Factory boy can be used to build dicts on
- Django doesn’t flush caches between tests on
- That Pytest’s “keyword expression” filtering supports Python conditionals on
-
That FreezeGun doesn’t work with Pytest fixtures (unless you use
pytest-freezegun
) on - You can have class-scoped autouse pytest fixtures on
- Pytest doesn’t play nicely with ipdb on
- How to easily disable a CircleCI workflow on
-
You can stack
pytest
’sparametrize
decorators on - You can label parameterized fixtures with pytest on
Timezones
Ubuntu
-
About Ubuntu’s
alert
Bash alias on -
Where authentication for the
ubuntu
user on a EC2 instance is defined on
Unix
-
You can use
shuf
to take random samples of lines on -
About
xargs -t
on - What the sections of the Unix manual are on
-
The order of permissions matters with
chmod
on
Vale
Vim
- How to get Vale to work with Vim’s Ale plugin on
-
How to use
markdownlint
output in Vim’s quickfix list on - That Vim can transform replacement values when substituting on
- How to delete all buffers in Vim on
-
About the
:ALEInfo
command on - About Vim’s semi-colon search offset on
- That Vim’s uppercase marks are global and persistent on
-
That
vim-polyglot
conflicts with Hub when creating pull requests on -
How to use custom functions with
:cdo
on - How to pipe an argument list into Vim on
- How to copy the current filepath to the system clipboard in Vim on
- How to add project-specific Vim settings on
- Universal Ctags can index more things than I realised on
- Vim-markdown has some useful commands on
-
About how to use
keywordprg
effectively on -
How to configure
ctags
to parse Terraform files on - How to use Bandit with Vim’s quickfix list on
-
You can run
:grep
without using parent shell process on -
There’s a
QuickFixCmdPost
event in Vim on - You can jump to previous quickfix lists in Vim on
-
About
shellcheck
on - How to read from one buffer to another in Vim on
-
About Vim’s
:helpgrep
command on - Vim recommends using Emacs-style key bindings in command mode on
- Vim doesn’t create the persistent undo folder automatically on
- About better YAML file folding in Vim on
-
About
:help macvim
on -
About Vim’s
:diffthis
command on
Virgin Media
Websites
YAML
- JSON is valid YAML on
- About YAML’s node anchors and aliases on
- YAML has several string-parsing gotchas on
Browse all posts by month.