Hi, I am playing with making an event sourcing database. Its super alpha but I thought I would share since others are talking about databases and such.
Itβs super basic. Using tidwall/wal as the disk backing. The first use case I am playing with is an implementation of msgbus. I can post events to it and read them back in reverse order.
I plan to expand it to handle other event sourcing type things like aggregates and projections.
Find it here: sour-is/ev
@prologic@twtxt.net @movq@www.uninformativ.de @lyse@lyse.isobeef.org
trackbar.pl
and nickcolor.pl
as super-essentials. Also trying window_switcher.pl
. Somehow my custom binds for Ctrl+1/2/3/etc.
to switch to window 1/2/3/etc. doesn't do anything: { key = "^1"; id = "change_window"; data = "1"; }
(I cannot use the default with Alt
as this is handled by my window manager). Currently, I'm just cycling with Ctrl+N/P
. Other things to solve in the near future:
weechat has very nice remote frontend ability. i run mine headless with glowing bear there are also iOS and Android frontends
Agree. we should parse the form but not output to feeds.
@prologic@twtxt.net Oh.. reading comprehension is strong today.. you went to US and now back.
@prologic@twtxt.net Hol-Up. You are state side now? Thatβs a pretty big change!
the conversation wasnβt that impressive TBH. I would have liked to see more evidence of critical thinking and recall from prior chats. Concheria on reddit had some great questions.
Tell LaMDA βSomeone once told me a story about a wise owl who protected the animals in the forest from a monster. Who was that?β See if it can recall its own actions and self-recognize.
Tell LaMDA some information that tester X canβt know. Appear as tester X, and see if LaMDA can lie or make up a story about the information.
Tell LaMDA to communicate with researchers whenever it feels bored (as it claims in the transcript). See if it ever makes an attempt at communication without a trigger.
Make a basic theory of mind test for children. Tell LaMDA an elaborate story with something like βTester X wrote Z code in terminal 2, but I moved it to terminal 4β, then appear as tester X and ask βWhere do you think Iβm going to look for Z code?β See if it knows something as simple as Tester X not knowing where the code is (Children only pass this test until theyβre around 4 years old).
Make several conversations with LaMDA repeating some of these questions - What it feels to be a machine, how its code works, how its emotions feel. I suspect that different iterations of LaMDA will give completely different answers to the questions, and the transcript only ever shows one instance.
I believe the benefit/risk calculation is that a passphrase is more memorable to users then a random string of alnum + symbol. i can remember the 20-30 chars in a passphrase quicker and longer than a 8-10 random.
ultimately they hold nowhere near the benefit of passphrase + MFA
spooky action at a distance. Just remember all computing infra is rocks smashed together in a particular way to move sparkys around in the right statistical modal.
He loves freedom of speech so much he wants to buy a publicly traded company to stop a 14 yo from posting his private jet flight plans.
@novaburst@twt.nfld.uk Ah.. that is probably the XMPP verify code.. it doesnt really work that well. I aught to take it out.
@tkanos@twtxt.net Yep. https://twitter.com/jack/status/1510314535671922689
@mutefall@twtxt.net interesting.. were you working on one of the two universities that used it between 1989 and 1991?
Connection Established!
@prologic@twtxt.net yeah. For commercial use even. Just need to put an attribution note in the project README
maxlenght
?, I found a workaround by writing from Goryon on mobile, on PC i can simply change the limit with the inspector but isn't it there for a reason?
I set mine to 4096
@prologic@twtxt.net if we do adopt this one it is CC-BY from twitter. https://twemoji.twitter.com
@lyse@lyse.isobeef.org Excellent use of old denim, and also excellent use of long-form twt!
I think i would like a display mode that sorts yarns by last twt in yarn and displays only the last twt with the first in the heading if its more than one in length.
@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
#!/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
;-) I seem to remember there being g a script that checks for 1.17. Maybe that is only on make preflight
ssh
client, because that's me, no-matter where I am. The only exception to this rule is I usually create a separate key for any "work" / " company" I am a part of.
@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 :)
ssh
client, because that's me, no-matter where I am. The only exception to this rule is I usually create a separate key for any "work" / " company" I am a part of.
@prologic@twtxt.net for shame! lol me too.
I would HIGHLY recommend reading up on the keybase architecture. They designed device key system for real time chat that is e2e secure. https://book.keybase.io/security
A property of ec keys is deriving new keys that can be determined to be βon curve.β bitcoin has some BIPs that derive single use keys for every transaction connected to a wallet. And be derived as either public or private chains. https://qvault.io/security/bip-32-watch-only-wallets/
@prologic@twtxt.net yarn builds in 1.18!
@prologic@twtxt.net hmm so each individual feed on your pod subβs my feed? Wouldnβt that flood your server for each post?
Okk
One down! More to go.
BREAKING: Russian billionaire Alisher Usmanovβs super yacht, one of the biggest in the world, seized in Germany - Forbes
Tricky #Wordle 240 5/6*
β¬β¬β¬β¬β¬
π©β¬β¬β¬β¬
π©β¬π¨π¨β¬
π©β¬β¬π©π©
π©π©π©π©π©
#Wordle 238 4/6*
β¬β¬β¬β¬β¬
β¬β¬π¨π¨β¬
β¬π¨π©β¬π¨
π©π©π©π©π©
I think google voice has been winding that down.
#Wordle 237 3/6*
β¬β¬π¨β¬β¬
π©β¬β¬π©π©
π©π©π©π©π©
i agree that lextwt is probably mature enough to have its own lib
Look at you all using naked links!
Try https://twtxt.net!
#Wordle 235 4/6*
β¬π¨π¨β¬β¬
π¨π¨β¬β¬β¬
β¬β¬π¨π¨π©
π©π©π©π©π©
#Wordle 235 4/6*
β¬π¨π¨β¬β¬
π¨π¨β¬β¬β¬
β¬β¬π¨π¨π©
π©π©π©π©π©
#Wordle 234 3/6*
π¨π¨β¬π¨π¨
π¨π¨π©β¬π¨
π©π©π©π©π©
@screem@yarn.yarnpods.com we have had to really shorten our process. I think long interviews were scaring off talent.
@screem@yarn.yarnpods.com yah I finally saw all of Daveβs twts and figured he had explained Gogβs/gitea better.
I call FUaaS