Looks quite a bit different than it did 8 years ago.

Made with 🧀 in Madison
Looks quite a bit different than it did 8 years ago.
Here’s a simple script I put together to rotate backup files in a given directory with decreasing resolution the further away we get from the current time.
#!/bin/bash
set -euo pipefail
DRYRUN=${DRYRUN:-1}
DIR=${DIR:-'/backups/mysql'}
HOURS=${HOURS:-48}
DAYS=${DAYS:-35}
MONTHS=${MONTHS:-24}
usage() {
echo "usage: DRYRUN=0 DIR=/backups HOURS=48 DAYS=30 MONTHS=24 $0"
exit 1
}
if [ $DRYRUN -eq 1 ]; then
echo "DRYRUN: No changes will be made"
fi
if [ "$HOURS" -lt 0 ] || [ "$DAYS" -lt 1 ] || [ "$MONTHS" -lt 1 ]; then
echo "ERROR: Cannot have negative rotation"
usage
fi
## Bail and cleanup if we exit early
cleanup() {
find $DIR -type f -execdir rename 's/.process$//g' '{}' \;
}
trap cleanup EXIT
trap cleanup SIGINT
## Flag all the files for processing
find $DIR -type f | grep -v '.process$' | xargs -I{} mv {}{,.process}
while [ $MONTHS -gt 0 ]; do
MONTHS=$(($MONTHS-1))
days=$(( ( $(date '+%s') - $(date -d "$MONTHS months ago" '+%s') ) / 86400 ))
file=$(find $DIR -type f -mtime "+$days" | sort -n | tail -n1)
if [ "$DRYRUN" -eq 0 ]; then
rename 's/.process$//g' "$file"
else
echo "MONTH: $MONTHS $file" | sed 's/.process$//'
fi
done
while [ $DAYS -gt 0 ]; do
DAYS=$(($DAYS-1))
file=$(find $DIR -type f -mtime "+$DAYS" | sort -n | tail -n1)
if [ "$DRYRUN" -eq 0 ]; then
rename 's/.process$//g' "$file"
else
echo "DAY: $DAYS $file" | sed 's/.process$//'
fi
done
while [ $HOURS -gt 0 ]; do
HOURS=$(($HOURS-1))
minutes=$(($HOURS*60))
file=$(find $DIR -type f -mmin "+$minutes" | sort -n | tail -n1)
if [ "$DRYRUN" -eq 0 ]; then
rename 's/.process$//g' "$file"
else
echo "HOUR: $HOURS $file" | sed 's/.process$//'
fi
done
## Delete all remaining files
[ "$DRYRUN" -eq 0 ] && rm "$DIR"/*.process 2> /dev/null
There should be an “Overview” dashboard for your infrastructure that gives you a quick, high level view of how everything is working. The idea isn’t to necessarily use this for diagnosing problems, but for knowing where to look next. Here’s a quick one I put together for fun.
I’ve been listening to Radio Milwaukee a lot lately. They play it at a lot of my favorite coffee shops in Milwaukee that I haven’t been able to visit for a while.
I like to listen to music in the Music app (previously iTunes) because I have AirPlay speakers in my office and around the house. This script opens the Radio Milwaukee stream and hides the Music app.
tell application "Music"
open location "https://wyms.streamguys1.com/live?platform=88nine"
play
set visible of every window to false
end tell
The Friday before the 2016 Presidential Election, I was at the same coffee shop that I had been going to almost every day for years. At one point I looked up from my laptop and noticed someone with an ear piece standing outside the window. After working for a while longer, I remembered that Vice President Biden was speaking in Madison that morning, campaigning for Hillary Clinton and Russ Feingold, who was running for his old Senate seat again.
A little while later, I noticed that Secret Service had actually stopped letting people in without Press credentials and there were many reporters inside and outside the cafe.
The next thing I remember is the motorcade coming around the corner and stopping right in front of Colectivo. I just found the moment in Slack where I was in the middle of a conversation when I said:
brb, joe biden is here
i think he’s literally walking into Colectivo
he is
First Russ Feingold came in. I had been sitting in the front of the cafe when all this started, so I was one of the first people to shake his hand when he walked in the door. (It probably didn’t hurt that I had a huge Russ Feindgold bumper sticker on the cover of my laptop 🙃)
Then Joe Biden came in and shook everyone’s hand. He noticed someone with a Green Bay Packers phone cover and told a story about how he got out of school early on Mondays if the Packers won. Then he walked into the middle of the restaurant and announced, “I’m Joe Biden and I work for Russ Feingold.”
I think about this day a lot when I encounter people that are less than enthusiastic about the idea of a President Biden. He wasn’t my first choice in the Democratic primary, but he is qualified to be President, he’s a good person, and he would make things better for most people instead of worse. In a lot of ways, he’s the opposite of our current President.