Create three directories. For the sake of this tutorial, they will be:
c:\image
- holds the contents of the ISO filec:\mount
- mount point for the install.wim filec:\updates
- holds the update files
[Interface] | |
PrivateKey = <REDACTED> | |
Address = 10.19.84.2/32,fd07:d3fc:8a02::2/128 | |
DNS = 10.19.84.1,fd07:d3fc:8a02::1 | |
MTU = 1280 | |
[Peer] | |
PublicKey = <REDACTED> | |
PresharedKey = <REDACTED> | |
AllowedIPs = 0.0.0.0/0,::/0 |
Daily systemd timer to backup the contents of my filesystem to Backblaze B2. As-written, it will keep up to a year's worth of backups, performing one full backup every month. This script was tested with duplicity 2.1.0.
Create a B2 bucket and an application key with read/write permissions to that bucket. Configure object lock with a sufficiently long period (I use 3x the full backup period) to ensure that ransomware won't be able to nuke your backups. Also ensure the 'list all bucket names' option is enabled (unless you want to use the
This documents how to install Arch Linux on a ThinkPad T450s, with full disk encryption and UEFI secure boot. It assumes you're familiar with installing Arch Linux, but new to encryption/secure boot. It does not install a bootloader (UEFI comes with one built in), and assumes you are not going to dual boot another OS.
(The instructions here should work fine for other devices too - just ignore the ThinkPad-specific bits)
My T450s has issues with using hdparm
to wipe the disk, so instead we will use the drive erase utility provided by Lenovo. This section is mostly copied from this tutorial.
// This is a documented version of the build.gradle file from RemotePreferences: | |
// https://github.com/apsun/RemotePreferences/blob/master/library/build.gradle.kts | |
// | |
// It aims to explain exactly WTF is going on when you inevitably copy-paste | |
// someone's build.gradle from the internet and can't figure out why it's not | |
// working. | |
// | |
// It contains, to the best of my knowledge, the best practices as of Oct 2023 for | |
// building an Android library and publishing it to OSSRH (Maven Central). | |
// |
#!/bin/sh | |
# | |
# Sync photos from iPhone to Linux using libimobiledevice + ifuse | |
set -euo pipefail | |
if [ $# -ne 1 ]; then | |
echo "usage: $0 <dest dir>" | |
exit 1 | |
fi |
#!/bin/sh | |
# | |
# Sync music from Linux to iPhone using libimobiledevice + ifuse | |
# Only works with apps that can read songs from iTunes file sharing (e.g. Doppi) | |
set -euo pipefail | |
if [ $# -ne 1 ]; then | |
echo "usage: $0 <src dir>" | |
exit 1 |
// Converts images into PNG format with the top-left corner transparent. | |
// Signal treats images sent via the keyboard with a transparent top-left | |
// corner as actual stickers, skipping one button click. This script | |
// automates batch conversion into this "sticker" format, for use with | |
// uSticker. Currently doesn't work with animated GIFs. | |
package main | |
import ( | |
"flag" |