btcinfo  

Hic inserere motto

Trivial bash shell for common lisp

December 11, 2024 — shinohai

I recently acquired a fresh laptop, and in the process of setting up sbcl I thought I best polish this little lisp function for my .sbclrc. I shall publish it here lest I forget it, and on the off chance another reader finds it useful.

(defun sh (cmd)
  "Run a shell command and return standard output if successful."
  (multiple-value-bind (stdout stderr exit)
      (uiop:run-program
       (format nil "~A" cmd)
       :output :string
       :error-output :string
       :ignore-error-status t)
    (if (zerop exit)
        stdout
        (format nil "Command failed with exit code ~A. Error: ~A" exit stderr))))

Happy holidays to all!

Tags: Lisp, Linux

smalpest-95K quickstart guide

March 04, 2024 — shinohai

I am doing some experiments with jonsykkel's smalpest on some Android devices, and whipped up this post in case my memory fails me as I attempt to run this on yet another smol device. I will update with the termux build instructions for android below.

Start your smalpest instance inside a GNU screen instance:

screen -S smalpest -dm /usr/sbin/smalpest -u $USER -p $PASS -i 6697 -q 7778

Now connect to localhost:6697 from your irc client, and you can populate a pestnet wot:

Add a handle for PEER:

%PEER $PEER

Then add a KEY for PEER:

%KEY $PEER $KEY

Update the AT (Address Table) for PEER:

%AT $PEER $IP:$PORT

Start chatting and see if you appear in the bitdash logs.

Termux build instructions:

PLACEHOLDER

Tags: News, UNIX, Tools

Building awt's akris pestnet client on Gentoo

July 28, 2023 — shinohai

awt recently released a new station and client library dubbed "akris" for use with the pestnet protocol. Detailed instructions for installing it using various methods are detailed on alethepedia, but here I am documenting how I built on Gentoo in a virtual environment using Python 3.11 and esthlos-v.

I started by creating the python virtual environment in my /devel/ directory, making sure I specified my py interpreter since akris-desktop requires Python >= 3.11. Then we switch to the newly created directory and activate the venv.

python3.11 -m venv pest 
cd pest/ && source bin/activate

Now we make a directory for akris and grab the vpatches and seals:

mkdir -p akris && cd $_
mkdir -p patches/ seals/ wot/
wget http://v.alethepedia.com/akris/akris-genesis-99999.vpatch -P patches/
wget http://v.alethepedia.com/akris/akris-genesis-99999.vpatch.thimbronion.sig -P seals/
wget http://wot.deedbot.org/57512CE78CF08BB25FE277A4B16136257FB8FBDD.asc -O wot/thimbrion.asc

After obtaining the needed ingredients, we can now press using V:

v press akris-genesis-99999.vpatch .

When the press completes successfully, we can install the akris station library to our venv using pip:

pip install -e .

Now we can move back to the root 'pest' directory and make a new directory to install the desktop components in:

cd ~/devel/pest
mkdir -p gui && cd $_
mkdir -p patches/ seals/ wot/

Grab the patches and seals much like we did above for the station library:

wget http://v.alethepedia.com/akris_desktop/akris-desktop-genesis-99999.vpatch -P patches/
wget http://v.alethepedia.com/akris_desktop/akris-desktop-genesis-99999.vpatch.thimbronion.sig -P seals/
wget http://wot.deedbot.org/57512CE78CF08BB25FE277A4B16136257FB8FBDD.asc -O wot/thimbrion.asc

Press it, again using `V`:

v press akris-desktop-genesis-99999 .

akris-desktop requires tk, so you might need to install it from portage:

emerge -av dev-python/tk

Once that completes, you will have to manually install icons and imagery for the gui client, since `vdiff` does not handle binary files:

cd akris-desktop/
wget http://v.alethepedia.com/akris_desktop/images.tar.gz
wget http://v.alethepedia.com/akris_desktop/images.tar.gz.thimbronion.sig

Verify the signatures before untarring, because you aren't a heathen:

gpg-1.4.10 --verify images.tar.gz.thimbronion.sig images.tar.gz

gpg: Signature made Tue Jul 25 10:54:59 2023 EDT
gpg:                using RSA key 0xB16136257FB8FBDD
gpg: Good signature from "Thimbronion " [unknown]
Primary key fingerprint: 5751 2CE7 8CF0 8BB2 5FE2  77A4 B161 3625 7FB8 FBDD

Now we have verified sigs, decompress and clean up:

tar zxf images.tar.gz
rm -f images.tar.gz images.tar.gz.thimbronion.sig

Then install akris-desktop using pip:

cd ..
pip install -e .

Now we're almost done. Go back to the root pest directory:

cd ~/devel/pest

Create a little start script called "start-gui" for ease of use containing the following:

#!/usr/bin/env bash
python gui/bin/main.py

Now you can easily start your pest station and client from the virtual environment by running `./start-gui`. If all goes well, you'll be greeted with a screen like this:

For more information, visit alethepedia: akris and akris-desktop.

Tags: News, Linux, Tools

Suckless st regrind

April 19, 2023 — shinohai

This is just a redo of the original st vpatch with a tweak that allows drawing of images directly to the terminal. Much like the patch listed in the st FAQ this version does not cancel double-buffering, thereby doing away with the flickering that I observed when I first tried this. While not perfect, it does render images well with w3m for me, and by abusing the w3m image display doubles as a simple image viewer with a little bash-foo. Here's how you do that:

#!/bin/bash

if [ -z $1 ]; then
    echo
    echo "USAGE: timg "
    echo
    exit 0;
fi

W3MIMGDISPLAY="/usr/local/bin/w3mimgdisplay"
FILENAME=$1
FONTH=14
FONTW=8
COLUMNS=`tput cols`
LINES=`tput lines`

read width height <<< `echo -e "5;$FILENAME" | $W3MIMGDISPLAY`

max_width=$(($FONTW * $COLUMNS))
max_height=$(($FONTH * $(($LINES - 2))))

if test $width -gt $max_width; then
height=$(($height * $max_width / $width))
width=$max_width
fi
if test $height -gt $max_height; then
width=$(($width * $max_height / $height))
height=$max_height
fi

w3m_command="0;1;0;0;$width;$height;;;;;$FILENAME\n4;\n3;"

tput cup $(($height/$FONTH)) 0
echo -e $w3m_command|$W3MIMGDISPLAY

st vpatch and seals

Tags: News, Linux, Tools

A Charlie Brown Christmas (1965)

December 24, 2022 — shinohai

Depressed at the commercialism he sees around him (such as Apple buying rights to this special and then refusing to air it), Charlie Brown tries to find a deeper meaning to Christmas.

Tags: Movies, Music, Warez

A rainy Saturday in the lab

December 17, 2022 — shinohai

I recently obtained an esp32 based smartwatch and have succeeded in building a stable firmware that runs freebasic. While I did get jurov's recipe for ulisp working, I wanted to still be able to use the gui when lisp is running, so enter fb-lisp.

tl;dr - I mirrored the freebasic code here.

Working:

Wifi no longer crashes webserver, so triggering screenshots via wget is possible again. Time and BTC to local fiat price sync operational.

Also this past week I finally shut down the server running busybot to pestnet. I can't justify the server for it and want to focus on making something more stable in the bot arena so it can read me logs back, etc.

Meanwhile on Pestnet, Lord cringe makes an appearance, so hurr-durr read-only for now!

Blatta performance on the pogoplug is sub-optimal, but runs much more efficiently under termux (as does smalpest) so I will switch back over when I have time to chroot the armv7 device again.

Besides, it's a rainy Saturday morning and I'd rather play blackjack on the mc10 anyway.

Tags: Bitcoin, News, UNIX

The lightning experiment, or LN is a shitcoin

August 23, 2022 — shinohai

Back in 2020, I was casually reading the logs one morning when Joe Rodgers (WoT:joerodgers), Bitcoin Magazine alumni, decided to pop into chat and link a rss aggregator "powered by Lightning" for those assembled to view. Up to this point I had never touched a single satoshi powered by it so the conversation started thus:

shinohai: I had nfi anyone was even using Lightning Network. Still trying to solve 30 cent problems instead of $3000 ones I guess.
asciilifeform: shinohai: 99% of the work (if can dare to use word 'work'...) of a shitcoin perpetrator, is to create a synthetic appearance of 'use'
asciilifeform: is how they get it into goxes, pump up exch rate, etc
joerodgers: Are you suggesting LN is a shitcoin?
asciilifeform: joerodgers: it is. albeit with slightly more than the usual amt of 'bitcoin flavouring' added
asciilifeform: joerodgers: if anything, it's the most cynically fraudulent type of shitcoin, in that it purports to be equivalent somehow to actual bitcoin (y'know, the kind where tx follows the 2009 format, and gets mined into actual blocks..)
asciilifeform: while in actuality, it ain't
joerodgers: Ok, thanks for sharing.
asciilifeform: this isn't some kinda mega-revelation. if you read the docs, will become entirely clear what it is
joerodgers: I need to read the LN docs to see where it explains this
asciilifeform: in other lulz .
shinohai: joerodgers: https://lightning.network/docs/ "whereby transactions are sent over a network of micropayment channels ... whose transfer of value occurs off-blockchain."
joerodgers: Are you opposed to any development off the main chain? No L2/sidechains?
shinohai: Kinda defeats the purpose of a blockchain, neh?
shinohai: lel asciilifeform "Plox to mirror it FOR ME"
asciilifeform: joerodgers: can't speak for other people, but i'm opposed to fraud. and folx who push a paypal-like item as 'equiv. of bitcoin' are committing fraud.
joerodgers: It provides a trustless scaling solution?
joerodgers: fair enough
asciilifeform: joerodgers: somehow i was under the impression that you've eaten years of #t logs. and therefore familiar with the favourite strategy of the enemy over past decade, i.e. pushing baroque crocks of shit under banner of 'scale bitcoin'
joerodgers: Paypal takes custody of your funds and asks for KYC, I don't see how LN is that.

The conversation carries on in the logs, which you can read here but I decided to go slum it with the LN evangelists on twitter/telegram and see what they were up to. My curiosity often leads me to filthy places what can I say?

I shan't bore folks with the details of all the services and things I tried but here's the tl;dr:

How much of the network is actually using Lightning? Statistics site 1ml.com shows that there are currently around 4595 BTC in LN channels, or about 0.0219% of all Bitcoin that will ever exist. Indeed it's still a micro economy at this stage of development and from my perspective is just an ouroboros, as mentioned above.

And thus ends my participation in the Lightning experiment - I'll just stick to actual Bitcoin (address in footer if you are so inclined!) for now, thank you very much. I've deleted all LN apps from my device that were used during this exercise but on the off-chance someone happens to send me something on Telegram, I'll likely automatically send it back. You probably need that ten cents more than me.

UPDATE: It has come to my attention that some folx refuse to read the links in this piece and would rather make angry NPC noises instead. I'll break out the crayons for these people. Here's a simple flowchart:

That's all folks!

Tags: News, Bitcoin, Fiat

Ana Vidovic - Recuerdos de la Alhambra

July 14, 2022 — shinohai

Here's a video of a great performance of Recuerdos de la Alhambra so I can test my peering with scoopbot on pestnet.

Tags: News, Music, Warez