stateDiagram-v2
state BisqMusigProtocol {
[*] --> SigningOfTxs
SigningOfTxs --> [*]: Cancelled
state "DepositTxBroadcast w/ Seller's deposit & trade amount [TR key spend: P'] and Buyer's deposit [TR key spend: Q']" as DepositTxBroadcast
SigningOfTxs --> DepositTxBroadcast
DepositTxBroadcast --> TradersExchangeSecretKeysForP'
DepositTxBroadcast --> SellerBroadcastsSwapTx
DepositTxBroadcast --> SellerOrBuyerBroadcastWarningTxstateDiagram-v2
state BuyerAsTaker {
[*] --> TakerSentTakeOfferRequest
TakerSentTakeOfferRequest --> TakerReceivedOfferResponse: Option 1 - Buyer receives take offer response, then account details can be exchanged in any order.
TakerReceivedOfferResponse --> BuyerSentBtcAddress: Option 1.1 - Buyer sends btc address first, then seller sends account data.
TakerSentTakeOfferRequest --> TakerDidNotReceiveOfferResponse: Option 2 - Buyer takes offer and sends btc address right after that. Then receives take offer response and finally seller's account data.
TakerReceivedOfferResponse --> BuyerReceivedAccountData: Option 1.2 - Seller sends account data first, then buyer sends btc address.
BuyerReceivedAccountData --> BuyerSentBtcAddressAndReceivedAccountData
BuyerSentBtcAddress --> BuyerSentBtcAddressAndReceivedAccountData| -- Individual wallets | |
| SELECT wallets.name AS wallet_name, SUM(apipayments.amount - ABS(apipayments.fee)) AS balance FROM apipayments | |
| INNER JOIN wallets ON apipayments.wallet = wallets.id | |
| WHERE ((wallets.deleted = FALSE) OR (wallets.deleted IS NULL)) AND | |
| (((apipayments.status = 'success') AND (apipayments.amount > 0)) OR | |
| ((apipayments.status IN ('success', 'pending')) AND (apipayments.amount < 0))) | |
| GROUP BY wallets.name; | |
| -- Total | |
| SELECT SUM(COALESCE(apipayments.amount, 0) - COALESCE(ABS(apipayments.fee), 0)) AS total_balance FROM apipayments |
| #!/bin/bash | |
| [[ "${1^^}" == "GET" || "${1^^}" == "POST" ]] && [[ "${2}" =~ ^/.*$ ]] || exit 2 | |
| urlencode () { | |
| [[ -n "${1}" ]] && echo -n "${1}" | perl -p -e 's/([^A-Za-z0-9-._~])/sprintf("%%%02X", ord($1))/seg' | |
| } | |
| #oauth1 vars | |
| consumer_key="..." |
Maximilian Kasy - The Means of Prediction: How AI Really Works (and Who Benefits) (2026) {224pp / 7h43m} [Goodreads link]
Having been a faithful follower of this book club, I think the contents of this book is unsurprising. But, as the phrase goes: While history does not repeat itself, it often does rhyme. Thus, it might be interesting to read about how power shapes progress this time, with artificial intelligence. The author promises to offer an elegant framework both for understanding AI’s capabilities and for designing its public control. He makes a compelling case for democratic control over AI objectives as the answer to mounting concerns about AI's risks and harms. The Means of Prediction is a revelation, both an expert undressing of a technology that has masqueraded as more complicated and a compelling call for public oversight of this transformative technology. Likely a somewhat grim read, but with th
| function pdmn-ps() { | |
| # With this one can do like, given a container called tor-client, | |
| # kill -HUP $(pdmn-ps tor-client | \ | |
| # grep -F ' tor -f /config/torrc --defaults-torrc /config/torrc.custom.default' | \ | |
| # awk '{ print $2 }') | |
| # Useful for when one has both a client and a relay, and has a smaller overhead than exec-ing into the container. | |
| local container_pid | |
| [[ -n "${1}" ]] && podman container exists "${1}" && { \ | |
| container_pid=$(podman inspect --format '{{.State.Pid}}' "${1}") | |
| ps -o 'user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,time,command' \ |
| #!/bin/sh | |
| # Intermittently, the routing of WireGuard datagrams seem to become confused, leading to temporarily hung connections. | |
| # This script aims to remedy this - assuming that the OpenWRT system is a | |
| # WireGuard peer that uses the port(s) listed in WG_PORTS. E.g. (/etc/config/network): | |
| # config interface 'wg0' | |
| # option proto 'wireguard' | |
| # option listen_port '51820' | |
| # ... | |
| # |
| function ln-fee-info() { | |
| pgrep -u lightning -f '^/usr/bin/lightningd\s.*' &> /dev/null && { \ | |
| function o() { | |
| if [[ "${1}" =~ ^.*1$ ]]; then echo "st" | |
| elif [[ "${1}" =~ ^.*2$ ]]; then echo "nd" | |
| elif [[ "${1}" =~ ^.*3$ ]]; then echo "rd" | |
| else echo "th"; fi | |
| } | |
| local -i M N f n p x; local percentile j j_c t x_v; local -A T | |
| local b=$(/usr/bin/timeout -k 35s 30s /usr/bin/lightning-cli --rpc-file=/run/lightning/lightningd.rpc getinfo | jq -r .blockheight) |
| { | |
| "# version": "23.05-gentoo-r0", | |
| "conf": "/etc/lightning/lightningd.conf", | |
| "lightning-dir": "/var/lib/lightning", | |
| "network": "bitcoin", | |
| "allow-deprecated-apis": true, | |
| "rpc-file": "/run/lightning/lightningd.rpc", | |
| "plugins": [ | |
| { | |
| "path": "/usr/bin/clboss", |
| ipc-namespace | |
| dbus-user.talk org.freedesktop.portal.Fcitx | |
| dbus-user.talk org.freedesktop.portal.Background | |
| dbus-user.talk org.freedesktop.Notifications | |
| dbus-user.talk org.kde.StatusNotifierWatcher | |
| dbus-user.own org.kde.* | |
| env SIGNAL_DISABLE_GPU=0 | |
| env SIGNAL_DISABLE_GPU_SANDBOX=0 |