Archives
2022 1
2021 5
September 1
July 4
-
OpSec
Personal operational security, kept short: 2FA everywhere, FileVault, separate browsers for work and personal, SPF, and checking for leaks. -
GCP resource hierarchy
The same 200-person, 10-team problem on GCP — folders, projects, IAM inheritance and a single login page. -
KVM GPU passthrough Ubuntu 20.04
Passing an RTX 2080 Ti through to a KVM guest on Ubuntu 20.04: enabling IOMMU, checking the groups, and binding the card to VFIO. -
AWS resource hierarchy
Organising a 200-person, 10-team company across AWS accounts: organisation units, switching between teams, single sign-on and per-team billing.
2017 7
February 2
-
Rubocop - Ruby static code analyzer
Setting up RuboCop on a Rails project: which of the three shipped configs to start from, and the rules worth disabling. -
Concurrency vs parallelism
Rob Pike's distinction — dealing with many things at once against doing many at once — and the gopher example that makes it stick.
January 2
-
Preview file using send_file
Serving access-controlled uploads in Rails with send_file, what :disposition decides, and where CarrierWave's secure-upload setup fits. -
db/seeds for carrierwave
Writing db/seeds for a CarrierWave attachment, for one file and for several, with the sqlite string-column caveat.
2016 11
November 2
June 1
March 5
-
alignment and round number using & and ~
How glibc's MINSIZE macro rounds a size up to an alignment boundary with & and ~, found while tracing malloc.c. -
how python pass argument in function
Not call by value and not call by reference but call by assignment: what a name binds to, and what id() shows about it. -
qira introduction
QIRA, the timeless debugger built on QEMU — what it is, where it came from, and how to install it for other architectures. -
useful tools
Markdown editors, code formatters and other small tools worth keeping — HackMD, StackEdit and the rest. -
2016 review
A short 2016 list of what was read and built, and what was not.