I host side projects on a DigitalOcean droplet running Dokku. For reference:
$ ssh root@platform.natan.la sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
$ ssh dokku@platform.natan.la dokku letsencrypt:cron-job --add
Over the last few months, I've been cleaning up after myself and filing CCPA requests where I can. Here are some of the less-friendly companies that I've encountered in this process.
Signed me up for marketing emails using the email address I provided for my CCPA request.
The worst one of them yet.
I store my multifactor authentication recovery codes in plaintext on a flash drive. The flash drive is stored in a safe place that can only realistically be accessed by me. I periodically generate a PDF from these codes and print it.
There's a good amount of reading on ways that other people manage this:
In choosing this approach, I considered not only the possibility that I would need to recover access to an MFA-protected account, but also the possibility
Going to come back to this at some point far in the future, forgot to keep track while I was doing it. | |
1. Add `zfs` to `environment.systemPackages` | |
2. Set `networking.hostId`, do `boot.supportedFilesystems = [ "zfs" ];` | |
3. Force import pool | |
4. Reboot | |
5. Things work |
Some people recommend sending follow-up emails after submitting job applications to improve your chances of getting a response. This /r/cscareerquestions thread comes to mind: I raised the response rate to my applications from 14% to 50% just by sending follow-up emails.
Here's a list of techniques I use when writing follow-up emails. YMMV.
If, when doing something like docker-compose up
, you run into an error like this:
ERROR: Named volume "server/db:/usr/share/nginx/html/db:rw" is used in service "web" but no declaration was found in the volumes section.
You're missing a leading ./
, so, for example:
volumes:
- 'server/db:/usr/share/nginx/html/db'
It turns out that the order of the --exclude
and --include
flags passed to aws s3 sync
and aws s3 cp
matters, so
aws s3 sync 's3://my-bucket' . --include '*' --exclude '*.png'
won't download anything but
aws s3 sync 's3://my-bucket' . --exclude '*' --include '*.png'
The best way I've found to automatically merge Dependabot PRs is to use
actions/github-script to comment
@dependabot merge
on Dependabot PRs. There are a few reasons why I think this
approach makes sense:
Commenting @dependabot merge
on a Dependabot PR instructs Dependabot to
merge the PR after tests (if any) pass, so we don't need to encode that
dependency in a workflow file.
Unlike using an auto-merge action, nothing happens if the workflow runs on a
Fastmail offers an automated Google Contacts [import feature][import], and also supports importing contacts by CSV and vCard. Unfortunately, I've noticed that all of these import features are lossy. Regardless of import method:
''
) phone numbers are sometimes added to contacts. (This issue may
have been a result of me trying to fix the two issues above, and not Fastmail