Making machines sweat.

Lightning works on Alpine Linux

This is a proof of C-Lightning passing all the checks (though with Valgrind turned off) on Alpine Linux. See lightning-auto-test repository. Read more →

Bitcoin and other Crypto Currencies

Let me share with you my view of cryptocurrencies and some publicly accessible data that may help you chose if and what crypto currency to invest into. Bitcoin is obviously the first thing. Read about it. Mainly the Bitcoin Paper and Michael Nielsen’s article. In case you noticed information about LBC (Large Bitcoin Collider), read following article. For any information about Bitcoin, make sure you read either bitcoin.org or bitcoin.it. It will be explained below. Read more →

Recovering data from Android phone with a broken screen

Here are my quick notes in order to share and remember. There was an XiaoMi 4 phone with a broken screen and data on it. First prepare a cable to connect the phone with the computer. Then download the right recovery image for the phone and boot it by switching the phone into fastboot mode (hold volume-down button while turning on) using fastboot boot recovery.img. Then use adb to connect to the shell. Read more →

POSIX shell-only dirname replacement

For many years I have been using a snippet that worked well for all purposes I tried: a="/$0"; a=${a%/*}; a=${a#/}; a=${a:-.}; BINDIR=$(cd "$a"; pwd) But today I realized it does not play well with /, i.e. if the script is placed in /script.sh, the BINDIR will contain current directory (whatever it is) instead of /. TL;DR; the answer is a="/$0"; a=${a%/*}; a=${a:-.}; a=${a#/}/; BINDIR=$(cd "$a"; pwd) Tested with busybox sh (1. Read more →