10 August, 2026
1 min read
88 words
Ad-free Australian salary, tax and mortgage calculators that run entirely in your browser.
20 May, 2026
7 min read
1400 words
Sentry events vanished from a Fargate Node app because Happy Eyeballs stalls on IPv6 with no route. Forcing IPv4 in the transport fixes it.
7 May, 2026
6 min read
1072 words
Lambda caps environment variables at 4 KB. An AWS_LAMBDA_EXEC_WRAPPER binary that pulls SSM params at cold start gets around it.
9 October, 2025
2 min read
336 words
AWS charges $3,000 a month for CloudFront Anycast IP. Testing shows it is a small static IP set, not anycast in any meaningful sense.
4 July, 2025
1 min read
136 words
Free Australian mobile numbers for receiving SMS one-time passcodes, built on the Telstra Messaging API's free receiving numbers.
14 March, 2025
2 min read
415 words
Setting up WireGuard end to end: interface, key pairs, IP forwarding, config files and a systemd unit for auto start.
24 February, 2025
1 min read
158 words
A free Australian tax invoice generator that creates compliant PDF invoices in the browser, GST included, with nothing stored.
5 February, 2025
1 min read
91 words
Using CloudFront Functions to dynamically change the origin to another CloudFront distribution via updateRequestOrigin.
4 January, 2024
1 min read
139 words
Running Home Assistant Supervisor on DSM 7 with docker-compose, including the privileged flags and share paths it needs.
27 October, 2023
1 min read
67 words
When Gatekeeper blocks kubectl debug, kubectl run gets you the same throwaway shell, service account and all.
12 October, 2022
1 min read
66 words
Tee stderr to a file for the next command while keeping the original exit code through PIPESTATUS, then annotate the build with it.
6 September, 2022
1 min read
180 words
CDK findResources cannot match a KMS key by alias. Tag the key policy statement with an sid and assert on that instead.
25 June, 2021
1 min read
96 words
Extracting the registrable domain in bash with a short awk expression, so .com and .co.uk both come out right.
24 June, 2021
1 min read
82 words
A free web app that deletes your old tweets on a schedule, with no subscription and no local Python or OAuth setup.
1 June, 2021
1 min read
206 words
Adding the HTTP basic auth username to Envoy access logs with a Lua filter that base64 decodes the Authorization header.
8 April, 2021
1 min read
107 words
Static like wind noise from one cup of a six month old WH-1000XM4, an RMA that found nothing, and the silica gel fix from Reddit.
18 January, 2021
1 min read
72 words
Fargate images have no curl, so the task definition health check uses wget, plus the jsonencode catch in Terraform templates.
21 December, 2020
1 min read
114 words
Gradle Jacoco fails when a subproject has no test execution data. Filter the test tasks instead of finalising all of them.
29 June, 2020
1 min read
69 words
Installing Acronis True Image on an unsupported DS918+ by hex editing the package arch string, then ignoring the CRC warning.
22 June, 2020
1 min read
82 words
A bash function that stamps out the same YAML build step for every environment, so the pipeline file stays short.