Archives

All Posts
Helix, language servers, and Python virtual environments
How to Use Vim’s Built-in Package Manager
How I Use Bitwarden
How to Make Your Own Encrypted Backup of Your Bitwarden Vault
Todo.txt
How to Publish a Python Package from GitHub Actions
How I Use Restic to Back up My Files to Backblaze B2
How to Backup Your Fastmail & Gmail Accounts with isync
Change Between Light and Dark Themes in tmux
Browser-like Search Shortcuts for tmux
How to Make tmux’s “Windows” Behave like Browser Tabs
Binding Keys in tmux
Setting Options in tmux
Copy and Paste in tmux
Operate on an Indented Block of Lines with vim-indent-object
How to Use Vim’s Built-in Help
Comment and Uncomment Lines with commentary.vim
Breadcrumbs in Jekyll
Liquid Templating Crash Course
Designing Python Exception Classes
Python Web App Code Design at Hypothesis
An Opinionated tox.ini File
Managing a Project’s Virtualenvs with tox
Unattended Upgrades on Ubuntu
Mozilla Thunderbird Keyboard Shortcuts
PDF Fingerprinting
Matcher Objects in Python Tests
When and When Not to Use Mocks
Python’s unittest.mock
Hypothesis’s patch Fixture
sentinel: Unique Objects for Tests
The Problem with Mocks
usefixtures as a Class Decorator
Advanced pytest Fixtures
Basic pytest Fixtures
Parametrizing Python Tests
Arrange, Act, Assert
Python Test Factories with factory_boy
Testing that an Exception is Raised with pytest.raises
Debugging Failing Tests with pytest
Writing Simple Python Unit Tests
Running the Hypothesis Python Tests
Python Unit Tests at Hypothesis
Code Review
Pyblosxom on Ubuntu with Gunicorn & Nginx
git-crypt
Background Tasks as Simple Web Services
A Broken Link Checker Plugin for CKAN
Functional Core, Imperative Shell
The Network as the Database
The Open Knowledge Data Packager
SuperDuper & FileVault on OS X Lion
A Mozilla Persona Plugin for CKAN