Skip to content

Instantly share code, notes, and snippets.

@natanlao
natanlao / caffeine.md
Created September 15, 2019 18:49
Caffeinating a process that is already running

bash-3.2$ caffeinate -d $(while true; do if ! kill -0 $PID; then sleep 5; exit; fi; done)

@natanlao
natanlao / readyshare.md
Last active March 22, 2020 16:57
A non-comprehensive list of bugs with NETGEAR ReadySHARE
  • ReadySHARE only supports drives up to 4TB in size. Some routers have an even smaller limit.
  • If you are using a drive with multiple partitions, ReadySHARE can, between firmware upgrades (or maybe reboots?) switch which partition is presented in which Samba folder.
  • ReadySHARE seems to change the mount point / "share name" of attached devices based on the the current phase of the moon.
@natanlao
natanlao / data.tsv
Last active March 22, 2020 18:51
NearlyFreeSpeechNET deposit scraping
payment grossfee rebate netfee deposit
$0.50 -$4.00 +$3.58 -$0.42 $0.08
$0.51 -$4.00 +$3.58 -$0.42 $0.09
$0.52 -$4.00 +$3.58 -$0.42 $0.10
$0.53 -$4.00 +$3.58 -$0.42 $0.11
$0.54 -$4.00 +$3.58 -$0.42 $0.12
$0.55 -$4.00 +$3.58 -$0.42 $0.13
$0.56 -$4.00 +$3.58 -$0.42 $0.14
$0.57 -$4.00 +$3.58 -$0.42 $0.15
$0.58 -$4.00 +$3.58 -$0.42 $0.16
@natanlao
natanlao / genius.py
Last active March 22, 2020 20:25
Sticker genius quote crawler
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
# Get quotes from Sticker Genius for the kind of sticker we are going to buy so that
# we can pay less money for more stickers.
# Should be easy enough to tweak this code for different products - I used Firefox
# developer tools to inspect requests made to getPrice.php.
from decimal import Decimal, ROUND_05UP
import time
import requests
@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
@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 / 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 / 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 / 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 / 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