Notes
Los Caminantes
The guy known as Bald and Bankrupt (a travel vlogger known for exploration of ex-soviet countries) delivered an absolute gem of gonzo journalism.
In 2023, with another travel vlogger called Timmy Karter, they challenged themselves to follow the migrant trail from Venezuela to Mexico. The Venezuelan population is hit by a severe crisis , forcing individuals to flee the country for hopes of a better life.
In a three-part video series, Bald and Bankrupt gives us a window on the extreme dangers these people face. We also witness their immense desire to build a better life, and the bravery they are made of.
What will these people become? How will these migrant child grow up? There are tons of unanswered questions coming out of this must watch documentary.
Counter-Print Books
I've let my passion for graphic design slide for far too long, and now I'm on a mission to rekindle that flame. A finely crafted design has always had the ability to catch my eye in a way nothing else does. I'm incredibly thankful to have stumbled upon some stellar graphic design books from UK publisher Counter-Print during a casual wander through a museum library. I snagged two books: Optic, and Colour Clash.
Optic zeroes in on the optical effects in graphic design, exploring techniques that were first pioneered in the 1960s.
Colour Clash explores unexpected colour palettes that, against all odds, just work. It's a concept that's somewhat elusive to me since, in my mind, this is how things should naturally be.
These books? Pure visual and intellectual candy. They're a rich well of inspiration, creativity, and joy.
Graphic Design infiltrates every aspect of our lives, and I'm convinced we'd all benefit from a higher standard of it. The aesthetic of the web has disappointed us in many ways. Just like a city can embody a unique design signature, I'm eagerly awaiting the dawn of a bolder era in web design.
Steve Jobs on Branding
Marketing is about values.In a very noisy world, we have to be very clear in what we want the world to know about us.One of the greatest jobs of marketing is Nike. Remember: Nike sells a commodity. They sell shoes. And yet, when you think of Nike, you feel something different than a shoe company. And their ads, as you know, they don't ever talk about the product. Where's Nike doing their advertising? They honors great athletes and they honor great athletics. That's who they are. That's what they are about.Our customers want to know what is Apple and what is it that we stand for. Where do we fit in this world? What we're about isn't making boxes for people to get their job done, although we do that well. But Apple is about something more than that. Apple, at the core, it's core value is that we believe that people with passion can change the world for the better.Those people that are crazy enough to think they can change the world are the ones that actually do.Values and core values. Those things shouldn't change. The things that Apple believed in at its core are the same things that Apple really stand for today.
Jay Vogt: Facilitation is changing the way the world meet
I had this unbelievable insight. The way you design a meeting shapes the behavior of participants. If you design it for democratic values, for collaboration and mutuality in exchange, that what you get. If you design it (or don't design it) in another way, you get discord and conflict and hierarchy. The key is in the meeting facilitator.
When I facilitate meetings, I'm designing a temporary environment in which work gets done. So, I'm really thinking like an architect. When I design an agenda to help an individual see the world in new ways, I'm really thinking like a psychologist. When I design a series of meetings over time to help an organization change its culture, I'm really thinking like an anthropologist.
Winston Churchill said: "We shape our buildings and they in turn shape us.". I'm fond of saying "We shape our meetings, and they in turn shape us."
A backup solution with restic, systemd, and backblaze
Linux’s beauty lies in being coerced to learn a shitload of stuff to administrate your own system. I must admit I feel I’ve been dumbed down by all these years of blissful macOS usage. Last year I built myself a Linux desktop, and since then, I’ve been taking my digital sovereignty more seriously.
I still use cloud services for sure, but I don’t trust them anymore with my data. My Music library was absolutely crushed by Apple Music. Also, data is leaking everywhere, and what is supposed to be trusted shouldn’t be (I’m looking at you, Apple, and your dubious encryption claims.)
That said. Let’s talk about backups. Due to some rave reviews here and there on the internet, I decided to use restic as my backup solution. I want to back up my important files to a USB-connected disk and regularly upload them to an object-storage service for an easy and cheap off-site solution. I just needed a way to automatize its use.
First, a little bit of background:
- All my computer’s disks are encrypted and decrypted at boot.
- My USB disk is also encrypted and decrypted at boot.
- The USB disk is not auto-mounted by systemd when the disk is first accessed, like this:
/dev/mapper/backup_crypt /backup ext4 defaults,noauto,user,x-systemd.automount,x-systemd.requires=systemd-cryptsetup@backup_crypt.service 0 2
To back up, I initially wrote a script that was run through some cronjobs, but it had the awful tendency to crash. I suspect the mix of systemd automount and restic wasn’t successful, but I did not investigate in that direction.
Instead, I searched for a way to have systemd manage this fun zoo. That way, the unit could depend on the disk being mounted and ensure that the /backup mount would be already available before the backup process. Plus, having a learning opportunity always makes things more fun for me. Instead of going through the analytical route, I went through the learning one.
As always when it comes to system administration, the Arch Wiki delivers. Systemd offers a Timers primitive that can replace crons. It works a bit differently, and it’s interesting.
# /etc/backup/backup.sh
#!/bin/bash
set -e -o pipefail
DIR="/etc/backup"
BACKUP=$1
if [ -z $BACKUP ]
then
>&2 echo "Please define backup name through the BACKUP environment variable."
exit 1
fi
BACKUP_RETENTION_DAYS=7
BACKUP_RETENTION_WEEKS=4
BACKUP_RETENTION_MONTHS=6
BACKUP_RETENTION_YEARS=2
BACKUP_ENV="${DIR}/${BACKUP}.env"
BACKUP_FILES="${DIR}/${BACKUP}.files"
BACKUP_IEXCLUDE="${DIR}/${BACKUP}.iexclude"
BACKUP_OPTS=""
source /etc/backup/${BACKUP}.env
if [ ! -f "${BACKUP_ENV}" ]
then
>&2 echo "[$BACKUP] ${BACKUP_ENV} does not exist. Exiting."
exit 1
fi
if [ ! -f "${BACKUP_FILES}" ]
then
>&2 echo "[$BACKUP] ${BACKUP_FILES} does not exist. Exiting."
exit 1
fi
if [ -f $BACKUP_IEXCLUDE ]
then
BACKUP_OPTS="--iexclude-file $BACKUP_IEXCLUDE ${OPTS}"
fi
if [ ! -d $RESTIC_REPOSITORY ]
then
restic init &
wait $!
fi
# Remove locks in case other stale processes kept them in
restic unlock &
wait $!
# Do the actual backup
restic backup \
--exclude-caches \
$BACKUP_OPTS \
--files-from $BACKUP_FILES &
wait $!
# Removing old snapshots
restic forget \
--verbose \
--prune \
--keep-daily $BACKUP_RETENTION_DAYS \
--keep-weekly $BACKUP_RETENTION_WEEKS \
--keep-monthly $BACKUP_RETENTION_MONTHS \
--keep-yearly $BACKUP_RETENTION_YEARS &
wait $!
# Verifying data integrity
restic check --read-data &
wait $!
>&2 echo "[$BACKUP] Backup done"The above script is executed like that: backup.sh name. It looks for different files allowing to configure restic execution (environment variables, etc.). Once it has found everything, it runs the backup and data verification process.
Now, it is needed to create a template unit file for systemd:
# /etc/systemd/system/[email protected]. [Unit] Description=Backup with Restic (%i) # Do not run in case another backup is already running [email protected] # This service requires the backup disk to be mounted Requires=backup.automount [Service] Type=simple Nice=10 ExecStart=/etc/backup/backup.sh %i Environment="HOME=/root" [Install] WantedBy=multi-user.target
and
# /etc/systemd/system/[email protected]. [Unit] Description=Backup Nas Configuration [Timer] # Run everyday at 2:15am OnCalendar=*-*-* 2:15:00 # My assumption: This should allow the job to start later if it wasn't started due to a conflict Persistent=True [Install] WantedBy=timers.target
Now we run:
systemctl daemon-reload systemctl enable [email protected] systemctl start [email protected]
And voila! It’s ready. Now we can repeat the same solution for sending backup to an off-site location. Also, the good thing is, it is possible to have execution logs with journalctl -f -u [email protected]