Skip to content

Instantly share code, notes, and snippets.

View balupton's full-sized avatar
🧙‍♀️
Working on Dorothy, a dotfile ecosystem

Benjamin Lupton balupton

🧙‍♀️
Working on Dorothy, a dotfile ecosystem
View GitHub Profile
@balupton
balupton / environment.bash
Last active February 24, 2025 19:56
Caching of `setup-environment-commands` using Dorothy User Configuration's `$DOROTHY/user/config/envrionment.bash`
#!/usr/bin/env bash
cache_validity_seconds=600 # six hundred seconds in ten minutes
cache_checksum_tool='/opt/homebrew/bin/xxhsum' # xxhsum and b2sum are equivalent in speed, then openssl sha256, then b3sum
if [[ -n "$cache_validity_seconds" && -x "$cache_checksum_tool" ]]; then
ppid=$$
now_env="$(env -u TERM_SESSION_ID | sort)"
context_id="$shell-$("$cache_checksum_tool" <<<"$now_env" | cut -f1 -d ' ')"
lock_file="$XDG_CACHE_HOME/dorothy-environment-$context_id.lock" # this file is the process id that has the lock
result_file="$XDG_CACHE_HOME/dorothy-environment-$context_id.result" # this file is the environment modifications for the environment vars we are valid for
@balupton
balupton / 04-multi-experiments
Created February 11, 2025 22:30
Understanding order of bash redirections, rightmost inwards
#!/usr/bin/env bash
out="$(mktemp)"
rm -f "$out"
clear
# results in jumbled lines: printf '%s\n' "stdout" > >(cat >> "$out"; echo a >> "$out") > >(cat >> "$out"; echo b >> "$out")
# this works, from rightmost to leftmost, >>/dev/tty has no effect
echo "=== $LINENO ==="
@balupton
balupton / 000-readme.md
Last active February 11, 2025 22:45
Why does MacOS always append to a redirected file descriptor even when told to overwrite? Ubuntu only appends when strictly told to append

Given the following code:

out="$(mktemp)"
rm -f "$out"
clear

printf '%s\n' 0 >"$out"
{
	printf '%s\n' '1' >/dev/stdout
@balupton
balupton / Greatness.txt
Last active October 31, 2024 03:23
Defining Greatness, within the context of the humanities, on how it is about recognition of the ethereal and eternal, and not prideful deification
All Things Added, James Allen
https://james-allen.in1woord.nl/?text=all-these-things-added
9. Greatness And Goodness
GOODNESS, simplicity, greatness — these three are one, and this trinity of perfection cannot be separated. All greatness springs from goodness, and all goodness is profoundly simple, Without goodness there is no greatness. Some men pass through the world as destructive forces, like the tornado or the avalanche, but they are not great; they are to greatness as the avalanche is to the mountain. The work of greatness is enduring and preservative, and not violent and destructive. The greatest souls are the most gentle.
Greatness is never obtrusive. It works in silence, seeking no recognition. This is why it is not easily perceived and recognized. Like the mountain, it towers up in its vastness, so that those in its immediate vicinity, who receive its shelter and shade, do not see it. Its sublime grandeur is only beheld as they recede from it. The great man is not seen by his contemporaries; the
@balupton
balupton / bloc-party-another-weekend-in-the-city-secret-alarm.txt
Last active March 2, 2024 11:30
Bloc Party — Another Weekend in the City / Bloc Party - Secret Alarm
Posted on https://www.last.fm/music/Bloc+Party/Another+Weekend+In+The+City/+shoutbox?sort=popular
I was an original compiler of this, though track listing changed.
https://web.archive.org/web/20100914172131/https://www.last.fm/user/balupton links a 2017 journal entry where I shared my track listing (the actual entry was not archived, my llast.fm account was deleted when last.fm was acquired by CBS, and the computer with the full track listing crashed)
From fragments of various backups, I compiled two albums
My incomplete track listing for "Another Weekend in the City”
01 England
02 Emma Kate's Accident
@balupton
balupton / inter.html
Last active December 9, 2023 06:35
Load Inter Font on Every Webpage
<link rel="preconnect" href="https://rsms.me/" />
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
<style>
:root,
html,
body
article,
p,
h1,
h2,
@balupton
balupton / README.md
Last active March 2, 2025 22:12
Upload a File to Cloudflare R2 Instructions
@balupton
balupton / bash-input-output-testing.bash
Created August 30, 2023 13:24
Bash Input Output Testing
# test input/output availability, accurately but noisely
(: </dev/stdin || printf '%s\n' 'cannot read stdin') || :
(: >/dev/stdin || printf '%s\n' 'cannot write stdin') || :
(: </dev/stdout || printf '%s\n' 'cannot read stdout') || :
(: >/dev/stdout || printf '%s\n' 'cannot write stdout') || :
(: </dev/stderr || printf '%s\n' 'cannot read stderr') || :
(: >/dev/stderr || printf '%s\n' 'cannot write stderr') || :
(: </dev/tty || printf '%s\n' 'cannot read tty') || :
(: >/dev/tty || printf '%s\n' 'cannot write tty') || :
@balupton
balupton / README.md
Last active September 1, 2023 20:22
Stack Overflow Question 76861137 — How to prevent nested function failures being missed in bash?

Exit Status and Bash

I'm @balupton, author of dorothy which is the largest public bash codebase that I am aware of.

Dorothy is coded using set -e (errexit) to avoid || return $? statements on every single one of its thousands of lines of code, for the most part this has worked well, however I was suprised when the down command would report a failure via:

However it would also report a success within the called function:

@balupton
balupton / README.md
Last active January 7, 2023 18:05
Keyboard Layouts for Karabiner Elements

Various key mappings for your macOS machine via Karabiner Elements.

To apply copy the configuration into the simple_modifications section of your $HOME/.config/karabiner/karabiner.json file.