🧮 USERS:1 FEEDS:2 TWTS:181 ARCHIVED:29313 CACHE:1609 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 912, Archived: 630213, Cache: 119633, Followers: 29, and Following: 695.
🧮 USERS:1 FEEDS:2 TWTS:180 ARCHIVED:29291 CACHE:1613 FOLLOWERS:13 FOLLOWING:14
I am really not looking forward to this 7h flight on Monday, 2 night buses to the airport
🧮 Users: 2, Feeds: 6, Twts: 910, Archived: 627509, Cache: 118365, Followers: 29, and Following: 694.
🧮 USERS:1 FEEDS:2 TWTS:179 ARCHIVED:29261 CACHE:1606 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 909, Archived: 624648, Cache: 118506, Followers: 29, and Following: 694.
🧮 USERS:1 FEEDS:2 TWTS:178 ARCHIVED:29230 CACHE:1606 FOLLOWERS:13 FOLLOWING:14
[47°09′58″S, 126°43′03″W] Raw reading: 0x62343C01, offset +/-2
🧮 Users: 2, Feeds: 6, Twts: 908, Archived: 621137, Cache: 117607, Followers: 29, and Following: 694.
🧮 USERS:1 FEEDS:2 TWTS:177 ARCHIVED:29184 CACHE:1600 FOLLOWERS:13 FOLLOWING:14
[47°09′01″S, 126°43′26″W] Raw reading: 0x62336911, offset +/-2
@novaburst@twt.nfld.uk I doubt there will ever be a 2.0 … It may end up like java and they strip off the 1.
@novaburst@twt.nfld.uk I doubt there will ever be a 2.0 … It may end up like java and they strip off the 1.
🧮 Users: 2, Feeds: 6, Twts: 904, Archived: 617041, Cache: 116360, Followers: 29, and Following: 693.
🧮 USERS:1 FEEDS:2 TWTS:176 ARCHIVED:28545 CACHE:1331 FOLLOWERS:13 FOLLOWING:14
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
🧮 Users: 2, Feeds: 6, Twts: 896, Archived: 612694, Cache: 116796, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:175 ARCHIVED:28444 CACHE:1319 FOLLOWERS:13 FOLLOWING:14
Only 14% of Canadians “strongly approve” of Trudeau’s pandemic response: poll
🧮 Users: 2, Feeds: 6, Twts: 894, Archived: 608801, Cache: 116652, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:174 ARCHIVED:28367 CACHE:1308 FOLLOWERS:13 FOLLOWING:14
B.C. premier John Horgan all insults toward Victoria protests
Nix 2.7.0 released
We’re pleased to announce the availability of Nix 2.7.0. It will be
available from
NixOS - Getting Nix / NixOS.
Here are the release notes:
Nix will now make some helpful suggestions when you mistype something
on the command line. For instance, if you type nix build
nixpkgs#thunderbrd, it will suggest
thunderbird.A number of “default” flake output attributes have been renamed.
These are:defaultPackage.<system></system>→packag ... ⌘ [Read more](https://nixos.org/blog/announcements.html#nix-2.7.0)
🧮 Users: 2, Feeds: 6, Twts: 893, Archived: 605268, Cache: 117237, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:173 ARCHIVED:28300 CACHE:1294 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 890, Archived: 600434, Cache: 115510, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:172 ARCHIVED:28195 CACHE:1267 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 889, Archived: 597820, Cache: 116365, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:171 ARCHIVED:28142 CACHE:1221 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 888, Archived: 594362, Cache: 115687, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:170 ARCHIVED:28094 CACHE:1187 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 887, Archived: 590673, Cache: 120516, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:169 ARCHIVED:28023 CACHE:1275 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 886, Archived: 586766, Cache: 122750, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:168 ARCHIVED:27961 CACHE:1282 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 885, Archived: 582908, Cache: 123830, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:167 ARCHIVED:27885 CACHE:1281 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 884, Archived: 577849, Cache: 117751, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:166 ARCHIVED:27841 CACHE:1284 FOLLOWERS:13 FOLLOWING:14
I Shouldn’t Complain
⌘ Read more
🧮 Users: 2, Feeds: 6, Twts: 883, Archived: 574931, Cache: 118313, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:165 ARCHIVED:27813 CACHE:1281 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 882, Archived: 571821, Cache: 116323, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:164 ARCHIVED:27770 CACHE:1298 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 881, Archived: 568245, Cache: 115806, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:163 ARCHIVED:27722 CACHE:1303 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 880, Archived: 564294, Cache: 116226, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:162 ARCHIVED:27671 CACHE:1300 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 878, Archived: 560167, Cache: 119801, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:161 ARCHIVED:27612 CACHE:1316 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 877, Archived: 556175, Cache: 118013, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:160 ARCHIVED:27548 CACHE:1318 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 876, Archived: 552449, Cache: 117417, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:159 ARCHIVED:27509 CACHE:1335 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 875, Archived: 549094, Cache: 114935, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:158 ARCHIVED:27460 CACHE:1324 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 874, Archived: 546076, Cache: 115553, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:157 ARCHIVED:27424 CACHE:1324 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 873, Archived: 542398, Cache: 114135, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:156 ARCHIVED:27379 CACHE:1322 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 872, Archived: 538449, Cache: 119525, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:155 ARCHIVED:27247 CACHE:1310 FOLLOWERS:13 FOLLOWING:14
[47°09′07″S, 126°43′33″W] Raw reading: 0x6215CD61, offset +/-2
🧮 Users: 2, Feeds: 6, Twts: 871, Archived: 534815, Cache: 117320, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:154 ARCHIVED:27169 CACHE:1291 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 870, Archived: 530905, Cache: 117324, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:153 ARCHIVED:26961 CACHE:1251 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 869, Archived: 527186, Cache: 115912, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:152 ARCHIVED:24970 CACHE:1221 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 868, Archived: 524170, Cache: 113233, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:151 ARCHIVED:24686 CACHE:1066 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 866, Archived: 521490, Cache: 112941, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:150 ARCHIVED:24663 CACHE:1065 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 865, Archived: 517960, Cache: 114426, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:149 ARCHIVED:24125 CACHE:822 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 864, Archived: 514189, Cache: 114829, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:148 ARCHIVED:24069 CACHE:818 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 863, Archived: 510380, Cache: 120985, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:147 ARCHIVED:24025 CACHE:815 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 861, Archived: 506690, Cache: 118366, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:146 ARCHIVED:23995 CACHE:853 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 860, Archived: 502956, Cache: 116652, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:145 ARCHIVED:23956 CACHE:847 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 858, Archived: 500014, Cache: 118940, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:144 ARCHIVED:23909 CACHE:857 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 856, Archived: 497282, Cache: 120140, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:143 ARCHIVED:23883 CACHE:862 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 854, Archived: 493720, Cache: 118815, Followers: 29, and Following: 692.
🧮 USERS:1 FEEDS:2 TWTS:142 ARCHIVED:23845 CACHE:858 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 849, Archived: 489757, Cache: 119798, Followers: 29, and Following: 690.
🧮 USERS:1 FEEDS:2 TWTS:141 ARCHIVED:23771 CACHE:861 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 846, Archived: 485956, Cache: 117339, Followers: 29, and Following: 690.
🧮 USERS:1 FEEDS:2 TWTS:140 ARCHIVED:23686 CACHE:853 FOLLOWERS:13 FOLLOWING:14
🧮 Users: 2, Feeds: 6, Twts: 844, Archived: 482288, Cache: 117274, Followers: 29, and Following: 690.
🧮 USERS:1 FEEDS:2 TWTS:139 ARCHIVED:23649 CACHE:864 FOLLOWERS:13 FOLLOWING:14
Had my 2nd interview yesterday. Here’s hoping it went well 🤞 should hear back within 2 weeks, which is only a short agonising wait 😅
🧮 Users: 2, Feeds: 6, Twts: 843, Archived: 478619, Cache: 116265, Followers: 29, and Following: 690.
🧮 USERS:1 FEEDS:2 TWTS:138 ARCHIVED:23584 CACHE:881 FOLLOWERS:13 FOLLOWING:14