Skip to content

Instantly share code, notes, and snippets.

@natanlao
natanlao / gist:411ca6567540fc4aa0b2facbf257a3e0
Created April 26, 2021 02:53
Notes on mounting an external ZFS pool with NixOS
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
@natanlao
natanlao / recovery-codes.md
Last active April 25, 2021 22:16
Managing multifactor authentication recovery codes

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

@natanlao
natanlao / ccpa.md
Last active April 14, 2021 18:14
CCPA wall of shame

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.

Sift

Signed me up for marketing emails using the email address I provided for my CCPA request.

Equifax

The worst one of them yet.

@natanlao
natanlao / dokku.md
Last active March 30, 2021 22:35
Dokku reference

I host side projects on a DigitalOcean droplet running Dokku. For reference:

One-time setup of Lets Encrypt

$ 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

Creating an app

@natanlao
natanlao / uc-dcp.md
Last active January 20, 2021 07:25
Guide to the Defined Contribution Plan for UCSC undergraduates

Guide to the Defined Contribution Plan for UCSC undergraduates

First, a disclaimer: I am neither a lawyer nor a financial adviser, and if I were, I wouldn't be your lawyer or financial adviser. This is neither financial advice nor legal advice. I didn't even study this stuff.

That said, I've provided sources where appropriate. In particular, I'll refer to these documents:

  • this UCSC Career Center [Defined Contribution Plan documentation][cc], which
@natanlao
natanlao / vanilla.md
Created November 28, 2020 23:45
Warning about Vanilla eGift Cards

If you receive a Vanilla eGift Card, you should know that the link to the page with your eGift card details will expire after some weeks. The link can supposedly be reissued, but it must be requested by the person who purchased you the eGift card over the phone. So, best to save the card details somewhere once you receive them.

The eGift Card funds are advertised as never expiring. It's not clear to me if that guarantee holds for funds left inactive for a long period of time.

@natanlao
natanlao / reminders.md
Created September 29, 2020 06:24
Tracking recurring reminders

I use my Fastmail calendar to track recurring reminders, like regular maintenance, or scheduling a doctor's appointment, or requesting a credit report, etc. I create each reminder as an all-day event on a calendar only for reminders, and configure each event to send me an email reminder on the day of the event.

This approach is simple and flexible:

  • Recurrence rules make it trivial to configure a task to repeat at any interval, whether it be on the nth day of the month every m months, or every other year, etc.
  • With an Inbox Zero approach, reminders stay out of the way until they're relevant, and can be
@natanlao
natanlao / s3cmd.md
Last active August 11, 2020 05:12
Tips for working with s3cmd on rsync.net

Working with s3cmd on rsync.net

This document lists some problems I encountered using s3cmd on rsync.net and how I solved them.

Uploading with the ONEZONE_IA class

s3cmd sync doesn't support the --storage-class argument, and even that doesn't support the ONEZONE_IA storage class. You can still upload objects to that class by specifying the x-amz-storage-class header, but s3cmd sync will ignore that. The best solution I have is to upload your files as you normally would, then use s3cmd modify to set the storage class after upload.

@natanlao
natanlao / perl-multistage.md
Created August 8, 2020 00:25
Multi-stage Dockerfiles with perl and perl-slim

The benefits of using multi-stage Docker builds is well-known. Using multi-stage builds with a pure Perl setup is trivial -- all it involves is copying the /usr/local/lib/perl5 directory:

FROM perl:5.28 as builder
COPY cpanfile cpanfile
RUN cpanm --installdeps .
@natanlao
natanlao / candidates.tsv
Last active May 30, 2020 17:48
UC Santa Cruz Student Union Assembly elections history (1999-2020)
We can make this file beautiful and searchable if this error is corrected: It looks like row 7 should actually have 10 columns, instead of 9. in line 6.
Election Term Position Function Name Votes Proportion Winner Links Comments/Notes
1999 1999 - 2000 Campus Office Director Internal Affairs Eric Gonzalez 2046 100 TRUE https://deanofstudents.ucsc.edu/elections/pdf/ballots-results/1999-campus-elections-results.pdf
1999 1999 - 2000 Chair President Maria Catalina 720 28.1 FALSE https://deanofstudents.ucsc.edu/elections/pdf/ballots-results/1999-campus-elections-results.pdf
1999 1999 - 2000 Chair President Dylan Smith 881 34.4 FALSE https://deanofstudents.ucsc.edu/elections/pdf/ballots-results/1999-campus-elections-results.pdf
1999 1999 - 2000 Chair President Kirti Srivastava 957 37.4 TRUE https://deanofstudents.ucsc.edu/elections/pdf/ballots-results/1999-campus-elections-results.pdf
1999 1999 - 2000 Lobby Corps Director External Affairs Carolyn Boyd 655 30.4 FALSE https://deanofstudents.ucsc.edu/elections/pdf/ballots-results/1999-campus-elections-results.pdf
1999 1999 - 2000 Lobby Corps Director External Affairs Patrick McHugh 522 24.2 FALSE https://deanofstu