@mutefall@twtxt.net interesting.. were you working on one of the two universities that used it between 1989 and 1991?
#event Upcomming Meetup in Copennhagen: algolab(the_art_of_live_coding) @ Støberiet / Computer Klub
**
🧮 USERS:3 FEEDS:6 TWTS:374 BLOGS:0 ARCHIVED:90698 CACHE:2569 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:374 BLOGS:0 ARCHIVED:90698 CACHE:2569 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:373 BLOGS:0 ARCHIVED:90626 CACHE:2573 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:373 BLOGS:0 ARCHIVED:90626 CACHE:2573 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:372 BLOGS:0 ARCHIVED:90563 CACHE:2579 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:372 BLOGS:0 ARCHIVED:90563 CACHE:2579 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:371 BLOGS:0 ARCHIVED:90475 CACHE:2564 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:371 BLOGS:0 ARCHIVED:90475 CACHE:2564 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:370 BLOGS:0 ARCHIVED:90364 CACHE:2572 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:370 BLOGS:0 ARCHIVED:90364 CACHE:2572 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@novaburst@twt.nfld.uk what is it?
**
🧮 USERS:3 FEEDS:6 TWTS:369 BLOGS:0 ARCHIVED:88297 CACHE:2282 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:369 BLOGS:0 ARCHIVED:88297 CACHE:2282 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:368 BLOGS:0 ARCHIVED:88220 CACHE:2262 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:368 BLOGS:0 ARCHIVED:88220 CACHE:2262 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:367 BLOGS:0 ARCHIVED:88124 CACHE:2245 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:367 BLOGS:0 ARCHIVED:88124 CACHE:2245 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:366 BLOGS:0 ARCHIVED:88021 CACHE:2225 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:366 BLOGS:0 ARCHIVED:88021 CACHE:2225 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:365 BLOGS:0 ARCHIVED:87912 CACHE:2263 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:365 BLOGS:0 ARCHIVED:87912 CACHE:2263 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:364 BLOGS:0 ARCHIVED:86317 CACHE:2086 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:364 BLOGS:0 ARCHIVED:86317 CACHE:2086 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:363 BLOGS:0 ARCHIVED:86228 CACHE:2096 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:363 BLOGS:0 ARCHIVED:86228 CACHE:2096 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:362 BLOGS:0 ARCHIVED:86126 CACHE:2079 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:362 BLOGS:0 ARCHIVED:86126 CACHE:2079 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:361 BLOGS:0 ARCHIVED:86014 CACHE:2065 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:361 BLOGS:0 ARCHIVED:86014 CACHE:2065 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@prologic@twtxt.net yeah. For commercial use even. Just need to put an attribution note in the project README
**
🧮 USERS:3 FEEDS:6 TWTS:360 BLOGS:0 ARCHIVED:85894 CACHE:2031 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:360 BLOGS:0 ARCHIVED:85894 CACHE:2031 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@prologic@twtxt.net if we do adopt this one it is CC-BY from twitter. https://twemoji.twitter.com
**
🧮 USERS:3 FEEDS:6 TWTS:359 BLOGS:0 ARCHIVED:85794 CACHE:2015 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:359 BLOGS:0 ARCHIVED:85794 CACHE:2015 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@lyse@lyse.isobeef.org Excellent use of old denim, and also excellent use of long-form twt!
**
🧮 USERS:3 FEEDS:6 TWTS:358 BLOGS:0 ARCHIVED:85579 CACHE:2038 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:358 BLOGS:0 ARCHIVED:85579 CACHE:2038 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@adi@twtxt.net Also, I noticed you followed me on Twitter, but you might enjoy @anths if you want techie stuff instead of Oregon politics. 🤣
I just spent an hour setting up the header of my twtxt.txt file ¯_(ツ)_/¯
I’ve made some fixes to twtxt to make it work with Python 3.7+. I hope @buckket@buckket.org will apply this patch!
**
🧮 USERS:3 FEEDS:6 TWTS:357 BLOGS:0 ARCHIVED:85506 CACHE:2035 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:357 BLOGS:0 ARCHIVED:85506 CACHE:2035 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:356 BLOGS:0 ARCHIVED:85423 CACHE:2038 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:356 BLOGS:0 ARCHIVED:85423 CACHE:2038 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
Back to twtxt from the cli with twet https://github.com/jdtron/twet
Hello! world. First post on twtxt
**
🧮 USERS:3 FEEDS:6 TWTS:355 BLOGS:0 ARCHIVED:85280 CACHE:2003 FOLLOWERS:9 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:355 BLOGS:0 ARCHIVED:85280 CACHE:2003 FOLLOWERS:9 FOLLOWING:17 ⌘ Read more
@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.
@ullarah@txt.quisquiliae.com works for me! A tricky bitmight be if it splits within a codeblock so markdown can’t parse
**
FOLLOW: @venjiang from @xandkar@xandkar.net using tt/0.31.1
**
FOLLOW: @venjiang from @xandkar @xandkar.net using tt/0.31.1 ⌘ Read more
#!/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
@prologic@twtxt.net I have seen single use keys that are signed by a central PKI .. Keybase has one that uses a chatbot to generate the keys on the fly.
It just comes down to your threat model :)
**
🧮 USERS:3 FEEDS:6 TWTS:353 BLOGS:0 ARCHIVED:85152 CACHE:1986 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:353 BLOGS:0 ARCHIVED:85152 CACHE:1986 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
@prologic@twtxt.net for shame! lol me too.
@prologic@twtxt.net yarn builds in 1.18!
**
🧮 USERS:3 FEEDS:6 TWTS:352 BLOGS:0 ARCHIVED:85011 CACHE:1955 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:352 BLOGS:0 ARCHIVED:85011 CACHE:1955 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
@prologic@twtxt.net hmm so each individual feed on your pod sub’s my feed? Wouldn’t that flood your server for each post?
**
🧮 USERS:3 FEEDS:6 TWTS:351 BLOGS:0 ARCHIVED:84891 CACHE:2042 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:351 BLOGS:0 ARCHIVED:84891 CACHE:2042 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:350 BLOGS:0 ARCHIVED:84758 CACHE:2073 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:350 BLOGS:0 ARCHIVED:84758 CACHE:2073 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:349 BLOGS:0 ARCHIVED:84666 CACHE:2060 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:349 BLOGS:0 ARCHIVED:84666 CACHE:2060 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
**
FOLLOW: @venjiang from @watcher@txt.sour.is using yarnd/0.13.0@0ada09a
**
FOLLOW: @venjiang from @watcher @txt.sour.is using yarnd/0.13.0@0ada09a ⌘ Read more
**
FOLLOW: @venjiang from @ullarah@txt.quisquiliae.com using yarnd/edge@4e6a3819
**
FOLLOW: @venjiang from @ullarah @txt.quisquiliae.com using yarnd/edge@4e6a3819 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:346 BLOGS:0 ARCHIVED:84558 CACHE:2009 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:346 BLOGS:0 ARCHIVED:84558 CACHE:2009 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more
**
🧮 USERS:3 FEEDS:6 TWTS:345 BLOGS:0 ARCHIVED:84423 CACHE:2092 FOLLOWERS:8 FOLLOWING:17
**
🧮 USERS:3 FEEDS:6 TWTS:345 BLOGS:0 ARCHIVED:84423 CACHE:2092 FOLLOWERS:8 FOLLOWING:17 ⌘ Read more