Systemd Timer Calendar Validation

I wanted to schedule a recurring action on my Linux machine recently and was reminded that timers have replaced crontab as the tool of choice. They’re really powerful, but I always have to look up how to use them.

I edit these so rarely, I have to look up the syntax for specifying when I’d like an action to happen. The last time I did this, I came across a handy one liner to help crafting these:

systemd-analyze calendar $CALENDAR_SPEC

This command is useful to “Validate repetitive calendar time events”

For example:

$ systemd-analyze calendar "*-*-* 01/4:49:00"
Normalized form: *-*-* 01/4:49:00
    Next elapse: Thu 2022-08-04 17:49:00 EDT
       (in UTC): Thu 2022-08-04 21:49:00 UTC
       From now: 2h 46min left

If that makes sense for the goal of the timer, you can safely put it in an OnCalendar statement! Make sure you remember to run systemctl --user daemon-reload to pick up the changes.

To check your configured timers, run: systemctl --user list-timers

If Politics is Like Football 🏉

If politics is like football, defeating Donald Trump feels more like a successful goalline stand than a victory. We need to move very deliberately in the immediate term and then press hard.

The single largest thing holding back progress in America is First Past the Pole (&, by proxy the Electoral College). Ranked Choice is our best hope to rend power from exorbitantly-funded special interests. It’s like a salary cap.

The more Democrats serve the proletariat the better they’ll fare in future elections. If they kowtow to capitalists, Trump 2.0 Xtreme Edition will dominate in 24 (including down-ticket). It’s time to fake right and go left!

Git “feature branch” alias

git aliases are useful command-line shortcuts to save a minute or two here and there while working with your version-controlled source code (or other data).

Here’s one I’ve been using recently in case it saves you time too. It creates and checks out a new branch based on the latest code in the configured HEAD / upstream branch on the origin remote.

To use it, just add the following line to your `~/.gitconfig`

fb = "!git fetch origin && git checkout -t $(git symbolic-ref --short refs/remotes/origin/HEAD) -b"

To use: git fb try/some-new-feature

`fb` is short for “feature branch

EDITED 2020-07-21 to continue to work with repositories that have moved away from calling the default branch master (Github is changing the default).


When we lost our elder cat last year, we planted a tree that goes by many names to honor his memory.

My brother’s family adopted a kitty from the same litter as we did and they named her Kiri. We followed suit calling ours a name that means “Tangerine” in Japanese. Mikan was a deeply-vibrant shade of orange and Stacy and I are both long-time Led Zeppelin fans, so the name was pretty fitting.

We bought the tree from spectacular local nursery / landscape designer, Earth Works, and it has done really well where we planted it.

Stacy mentioned yesterday that she saw some small tangerines on the tree. I’ve read that you are supposed to trim the fruit for the first few years so the roots can take and the plant can spend its energy developing a strong canopy, so I dutifully went out to trim them. I was truly surprised to see how many fruits there were!

Hopefully, it’ll be “big enough” next year to convince me to leave a few to ripen! If this was any indication, there should be a lot of them.

It’s not a complete loss, though, as I discovered that the tiny citrus makes a nice, zesty garnish for sparkling water 😻