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="..." |
Mircea Cărtărescu - Solenoid (2015) {840pp / 34h4m} [Goodreads link]
Presented as the fragmented manuscript of a failed writer, Solenoid pulls us into the rhythms of an ordinary life, before veering into something altogether stranger. Set in 1970s communist Romania, it’s a surreal, sprawling journey by way of a tuberculosis preventoria, anti-death protests, dream-detecting societies and even via the lives of dust mites on a microscope slide. Mircea Cărtărescu’s novel is huge in scale and anything but straightforward, blending sci-fi, philosophy and autobiography in looping, labyrinthine prose. ‘It’s a mind-boggling, bravura and ceaselessly entertaining book, unlike anything else,’ said the International Booker Prize judges, when it was longlisted in 2025, adding that it transports readers ‘to the far sci-fi reaches of the imagination and back again’.
Ian McEwan - What We Can Know (2025) {303pp / 11h38m} [[Goodreads link]](https://www.goo
| 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 |