Searching We Love Privacy Club

Twts matching #GO
Sort by: Newest, Oldest, Most Relevant

rereading the wikipedia page on ramanujan, we should absolutely clone him and von Neumann, and have them talk to each other. this is either going to destroy the world or usher in utopia, not sure which

⤋ Read More

not the best move on the side of the red cross to call me and tell me it’s because of my blood donation — i nearly had a panic attack for the 10 seconds that they didn’t tell me it was all fine (why would you call me then‽ and why speak as if you’re going to tell me i’ll be dead in a month‽)

⤋ Read More

@prologic@twtxt.net

#!/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

⤋ Read More

update-golang 0.24 - easily fetch and install new Golang releases
update-golang is a script to easily fetch and install new Golang releases with minimum system intrusion.

When you need to quickly boot up a Golang binary release into a system.

The script can automatically detect the latest Golang release.

This release updates the URL for retrieving Go release list.

Full details: https://github.com/udhos/update-golang 1 point … ⌘ Read more

⤋ Read More

Event: Generics in Go 1.18 - Introduced using a practical example
Go 1.18 is about to be released (or it is already depending when you’re reading this). One of the big things in it are generics. Axel Wagner will introduce us to generics using a practical example. 1 points posted by Sascha Andres ⌘ Read more

⤋ Read More

Writing free software is like painting. You should do it if you feel like it, or if you, yourself, get something out of it. The moment you start to feel that you are owed something is the moment that you should stop doing it, because what you do from then on is probably not going to be any good. Is it even worth working on FOSS anymore? | Hacker News

⤋ Read More

The Go 1.18 generics landscape
A fairly complete presentation about Go 1.18 generics including examples, planned changes for future releases, writing generics code, defining constraints, new library packages, and generics examples for generics Map() / Reduce() / Filter()  and a type-safe Set implementation. 1 points posted by FGM ⌘ Read more

⤋ Read More

Finally sleeping better 😴
I have a very light sleep. The first brightness in the morning makes me wake up, noise from the neighbors in the evening does not let me fall asleep. No matter how late or early I go to bed, no matter how little I slept in total. ⌘ Read more

⤋ Read More

** Chess Rules **
I love when folks say stuff like“there are only a finite number of states a chessboard can occupy, therefore a computer can play chess.”

To the folks who say such things — I wish you to play chess with my 6 year old.

Be not confined by rules! The only things governing chess in this house here are the laws of physics!

…and even then, not all need apply.

For instance, during a recent game the opposing kings left the board in order to go out on an adventure. They returned later with a large, plastic dragon. The dra … ⌘ Read more

⤋ Read More

For me, it always makes me feel better to look at the CVs of similar bloggers and see how little they’ve accomplished in comparison. I’m proud of my posts and my accomplishments, and I’m not going to h

⤋ Read More