Trivial bash shell for common lisp
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!
smalpest-95K quickstart guide
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
Building awt's akris pestnet client on Gentoo
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
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.
Suckless st regrind
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
A Charlie Brown Christmas (1965)
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.
A rainy Saturday in the lab
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.
The lightning experiment, or LN is a shitcoin
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:
- It bears a remarkable similarity to things we've seen before.
- Using it will have you dancing in the streets for nickels. People will send you $1 worth of sats for maxint work and think they changed your life somehow.
- Poor design choices make it feel like the Rube Goldberg version of a spreadsheet.
- If you enjoy fun-filled evenings sifting amongst the couch cushions for loose change, then this is the system for you.
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!
Ana Vidovic - Recuerdos de la Alhambra
Here's a video of a great performance of Recuerdos de la Alhambra so I can test my peering with scoopbot on pestnet.